<?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>217174</bug_id>
          
          <creation_ts>2020-10-01 04:16:18 -0700</creation_ts>
          <short_desc>WebDriver: add support for wheel actions</short_desc>
          <delta_ts>2020-10-21 05:36:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</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>
          
          <blocked>166679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1693709</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-01 04:16:18 -0700</bug_when>
    <thetext>https://w3c.github.io/webdriver/#wheel-actions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695835</commentid>
    <comment_count>1</comment_count>
      <attachid>410823</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-08 02:45:12 -0700</bug_when>
    <thetext>Created attachment 410823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695845</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-08 04:17:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/70087987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699631</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-20 00:59:11 -0700</bug_when>
    <thetext>Ping reviewers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699721</commentid>
    <comment_count>4</comment_count>
      <attachid>410823</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-20 08:25:18 -0700</bug_when>
    <thetext>Comment on attachment 410823
Patch

r=me, thanks Carlos. I&apos;ll look into adding support for safaridriver + macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700141</commentid>
    <comment_count>5</comment_count>
      <attachid>411972</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-21 04:52:51 -0700</bug_when>
    <thetext>Created attachment 411972
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700148</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-21 05:36:26 -0700</bug_when>
    <thetext>Committed r268793: &lt;https://trac.webkit.org/changeset/268793&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410823</attachid>
            <date>2020-10-08 02:45:12 -0700</date>
            <delta_ts>2020-10-21 04:52:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-wheel-actions.diff</filename>
            <type>text/plain</type>
            <size>46062</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMGU1MjcxNzYyYmMuLjUy
MGUyYWJlMzg4MCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGFkZCBzdXBwb3J0IGZvciB3aGVlbCBhY3Rp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcx
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFi
bGUgV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUyBmb3IgR1RLIGFuZCBXUEUgcG9ydHMuCisK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0
RmVhdHVyZXMuY21ha2U6CisKIDIwMjAtMTAtMDQgIFJ5YW4gSG9zdGV0bGVyICA8cmhvc3RAYXBw
bGUuY29tPgogCiAgICAgICAgIFN1Ym1pc3Npb24gZmFpbHVyZSB3aXRoICJtYWtlOiAqKiogTm8g
cnVsZSB0byBtYWtlIHRhcmdldCBgaW5zdGFsbHNyYycuIFN0b3AiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViRHJpdmVyL0FjdGlvbnMuaCBiL1NvdXJjZS9XZWJEcml2ZXIvQWN0aW9ucy5oCmluZGV4
IDY3MWY0YTIxMGY3OS4uMzAyNGYyZDAwY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVy
L0FjdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0FjdGlvbnMuaApAQCAtMzMsNyArMzMs
NyBAQCBlbnVtIGNsYXNzIE1vdXNlQnV0dG9uIHsgTm9uZSwgTGVmdCwgTWlkZGxlLCBSaWdodCB9
OwogZW51bSBjbGFzcyBQb2ludGVyVHlwZSB7IE1vdXNlLCBQZW4sIFRvdWNoIH07CiAKIHN0cnVj
dCBJbnB1dFNvdXJjZSB7Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgS2V5LCBQb2ludGVy
IH07CisgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgS2V5LCBQb2ludGVyLCBXaGVlbCB9Owog
CiAgICAgVHlwZSB0eXBlOwogICAgIE9wdGlvbmFsPFBvaW50ZXJUeXBlPiBwb2ludGVyVHlwZTsK
QEAgLTUxLDggKzUxLDggQEAgc3RydWN0IFBvaW50ZXJPcmlnaW4gewogfTsKIAogc3RydWN0IEFj
dGlvbiB7Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgS2V5LCBQb2ludGVyIH07Ci0gICAg
ZW51bSBjbGFzcyBTdWJ0eXBlIHsgUGF1c2UsIFBvaW50ZXJVcCwgUG9pbnRlckRvd24sIFBvaW50
ZXJNb3ZlLCBQb2ludGVyQ2FuY2VsLCBLZXlVcCwgS2V5RG93biB9OworICAgIGVudW0gY2xhc3Mg
VHlwZSB7IE5vbmUsIEtleSwgUG9pbnRlciwgV2hlZWwgfTsKKyAgICBlbnVtIGNsYXNzIFN1YnR5
cGUgeyBQYXVzZSwgUG9pbnRlclVwLCBQb2ludGVyRG93biwgUG9pbnRlck1vdmUsIFBvaW50ZXJD
YW5jZWwsIEtleVVwLCBLZXlEb3duLCBTY3JvbGwgfTsKIAogICAgIEFjdGlvbihjb25zdCBTdHJp
bmcmIGlkLCBUeXBlIHR5cGUsIFN1YnR5cGUgc3VidHlwZSkKICAgICAgICAgOiBpZChpZCkKQEAg
LTcxLDYgKzcxLDggQEAgc3RydWN0IEFjdGlvbiB7CiAgICAgT3B0aW9uYWw8UG9pbnRlck9yaWdp
bj4gb3JpZ2luOwogICAgIE9wdGlvbmFsPGludDY0X3Q+IHg7CiAgICAgT3B0aW9uYWw8aW50NjRf
dD4geTsKKyAgICBPcHRpb25hbDxpbnQ2NF90PiBkZWx0YVg7CisgICAgT3B0aW9uYWw8aW50NjRf
dD4gZGVsdGFZOwogCiAgICAgT3B0aW9uYWw8U3RyaW5nPiBrZXk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZwpp
bmRleCA3MmNjMTQzMDJkMDcuLmYxNjEzMWY3ZWE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRy
aXZlci9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAyMC0xMC0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBhZGQgc3VwcG9ydCBmb3Igd2hlZWwgYWN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MTc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGFuZGxl
IHdoZWVsIGFjdGlvbnMuCisKKyAgICAgICAgKiBBY3Rpb25zLmg6CisgICAgICAgICogU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OmF1dG9tYXRpb25Tb3VyY2VUeXBlKTogSGFuZGxl
IElucHV0U291cmNlOjpUeXBlOjpXaGVlbC4KKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6
cGVyZm9ybUFjdGlvbnMpOiBIYW5kbGUgQWN0aW9uOjpUeXBlOjpXaGVlbC4KKyAgICAgICAgKiBX
ZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc0tleUFjdGlv
bik6IEFzc2VydCBpZiBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbC4KKyAgICAgICAgKFdlYkRyaXZl
cjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKTogTW92ZSB0aGlzIGNvZGUgdG8gYSBoZWxwZXIg
dG8gYmUgdXNlZCBieSBib3RoIHBvaW50ZXIgbW92ZSBhbmQgc2Nyb2xsIGFjdGlvbnMuCisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyQWN0aW9uKTogVXNlIHByb2Nlc3NQb2ludGVy
TW92ZUFjdGlvbigpLgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzV2hlZWxBY3Rpb24pOiBD
YWxsIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbigpIGFuZCBwcm9jZXNzIHRoZSBzY3JvbGwgZGVs
dGEgdG9vLgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZSk6
IEhhbmRsZSBJbnB1dFNvdXJjZTo6VHlwZTo6V2hlZWwuCisKIDIwMjAtMTAtMDIgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYkRyaXZlcjog
YWRkIHN1cHBvcnQgZm9yIHNhbWUgc2l0ZSBjb29raWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCA2
YzVmYmRiNzA1MTUuLmI3ZTY0OTc3Y2FkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9T
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0yNjAxLDYg
KzI2MDEsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogYXV0b21hdGlvblNvdXJjZVR5cGUoSW5wdXRT
b3VyY2U6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuICJNb3VzZSI7CiAgICAgY2FzZSBJbnB1
dFNvdXJjZTo6VHlwZTo6S2V5OgogICAgICAgICByZXR1cm4gIktleWJvYXJkIjsKKyAgICBjYXNl
IElucHV0U291cmNlOjpUeXBlOjpXaGVlbDoKKyAgICAgICAgcmV0dXJuICJXaGVlbCI7CiAgICAg
fQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CkBAIC0yNjkxLDYgKzI2OTMs
NyBAQCB2b2lkIFNlc3Npb246OnBlcmZvcm1BY3Rpb25zKFZlY3RvcjxWZWN0b3I8QWN0aW9uPj4m
JiBhY3Rpb25zQnlUaWNrLCBGdW5jdGlvbjx2bwogICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlVcDoKICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFN0YXRlLnByZXNzZWRCdXR0b24pCkBAIC0y
NzI1LDYgKzI3MjgsNyBAQCB2b2lkIFNlc3Npb246OnBlcmZvcm1BY3Rpb25zKFZlY3RvcjxWZWN0
b3I8QWN0aW9uPj4mJiBhY3Rpb25zQnlUaWNrLCBGdW5jdGlvbjx2bwogICAgICAgICAgICAgICAg
ICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246CiAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyTW92ZToKICAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw6CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICBpZiAoY3VycmVudFN0YXRlLnByZXNzZWRLZXkpCkBAIC0yNzM3LDYgKzI3NDEs
MzYgQEAgdm9pZCBTZXNzaW9uOjpwZXJmb3JtQWN0aW9ucyhWZWN0b3I8VmVjdG9yPEFjdGlvbj4+
JiYgYWN0aW9uc0J5VGljaywgRnVuY3Rpb248dm8KICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRlLT5zZXRBcnJheSgicHJlc3NlZFZpcnR1YWxLZXlzIl9zLCBXVEZNb3ZlKHZpcnR1YWxLZXlz
KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgY2FzZSBBY3Rpb246OlR5cGU6OldoZWVsOgorICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGFjdGlvbi5zdWJ0eXBlKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl
LT5zZXRTdHJpbmcoIm9yaWdpbiJfcywgYXV0b21hdGlvbk9yaWdpblR5cGUoYWN0aW9uLm9yaWdp
bi0+dHlwZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IEpTT046
Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi0+c2V0
SW50ZWdlcigieCJfcywgYWN0aW9uLngudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbi0+c2V0SW50ZWdlcigieSJfcywgYWN0aW9uLnkudmFsdWUoKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS0+c2V0T2JqZWN0KCJsb2NhdGlvbiJfcywgV1RGTW92ZShs
b2NhdGlvbikpOworCisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGRlbHRhID0gSlNPTjo6
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhLT5zZXRJbnRl
Z2VyKCJ3aWR0aCJfcywgYWN0aW9uLmRlbHRhWC52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRlbHRhLT5zZXRJbnRlZ2VyKCJoZWlnaHQiX3MsIGFjdGlvbi5kZWx0YVkudmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c2V0T2JqZWN0KCJkZWx0YSJfcywg
V1RGTW92ZShkZWx0YSkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLm9y
aWdpbi0+dHlwZSA9PSBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlLT5zZXRTdHJpbmcoIm5vZGVIYW5kbGUiX3MsIGFjdGlvbi5v
cmlnaW4tPmVsZW1lbnRJRC52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZBTExU
SFJPVUdIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QWN0aW9uOjpTdWJ0eXBlOjpQYXVzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3Rp
b24uZHVyYXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnNldERvdWJs
ZSgiZHVyYXRpb24iX3MsIGFjdGlvbi5kdXJhdGlvbi52YWx1ZSgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlw
ZTo6UG9pbnRlclVwOgorICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6
UG9pbnRlckRvd246CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQ
b2ludGVyTW92ZToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBv
aW50ZXJDYW5jZWw6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpL
ZXlVcDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246
CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzdGF0ZXMt
PnB1c2hPYmplY3QoV1RGTW92ZShzdGF0ZSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
V2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggMjk0NDlmNWZmMWU0Li44Yjc5YWFlNGFkOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291
cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtMTkwOSw2ICsxOTA5LDcgQEAg
c3RhdGljIE9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlk
LCBKU09OOjpPYmplY3QmIGFjdGlvbkkKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRl
ckRvd246CiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJNb3ZlOgogICAgIGNhc2Ug
QWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOgorICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBl
OjpTY3JvbGw6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApAQCAtMTkz
MSw2ICsxOTMyLDYwIEBAIHN0YXRpYyBNb3VzZUJ1dHRvbiBhY3Rpb25Nb3VzZUJ1dHRvbih1bnNp
Z25lZCBidXR0b24pCiAgICAgcmV0dXJuIE1vdXNlQnV0dG9uOjpOb25lOwogfQogCitzdGF0aWMg
Ym9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgT3B0aW9uYWw8U3RyaW5nPiYgZXJyb3JNZXNzYWdlKQoreworICAgIGlm
IChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykp
IHsKKyAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUp
OworICAgICAgICBpZiAoIWR1cmF0aW9uKSB7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGFjdGlvbi5kdXJh
dGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CisgICAgfQorCisgICAgaWYgKGF1dG8gb3JpZ2luVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJvcmlnaW4iX3MpKSB7CisgICAgICAgIGlmIChhdXRv
IG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7CisgICAgICAgICAgICBh
dXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1l
bnRJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKKyAgICAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMg
bm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFjdGlvbi5vcmln
aW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVu
dElEIH07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIG9yaWdpbiA9IG9yaWdp
blZhbHVlLT5hc1N0cmluZygpOworICAgICAgICAgICAgaWYgKG9yaWdpbiA9PSAidmlld3BvcnQi
KQorICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRl
ck9yaWdpbjo6VHlwZTo6Vmlld3BvcnQsIFdURjo6bnVsbG9wdCB9OworICAgICAgICAgICAgZWxz
ZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKKyAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2lu
ID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIFdURjo6bnVs
bG9wdCB9OworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfSBlbHNlCisgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9p
bnRlck9yaWdpbjo6VHlwZTo6Vmlld3BvcnQsIFdURjo6bnVsbG9wdCB9OworCisgICAgaWYgKGF1
dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKKyAgICAgICAgYXV0byB4
ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CisgICAgICAgIGlmICgh
eCkgeworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4
JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKKyAgICB9CisKKyAgICBpZiAo
YXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5Il9zKSkgeworICAgICAgICBhdXRv
IHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJTlRfTUlOKTsKKyAgICAgICAgaWYg
KCF5KSB7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOworICAgIH0KKworICAgIHJl
dHVybiB0cnVlOworfQorCiBzdGF0aWMgT3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW1ldGVycyYgcGFyYW1ldGVycywgSlNP
Tjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBPcHRpb25hbDxTdHJpbmc+JiBlcnJvck1lc3NhZ2UpCiB7
CiAgICAgQWN0aW9uOjpTdWJ0eXBlIGFjdGlvblN1YnR5cGU7CkBAIC0xOTczLDYxICsyMDI4LDY5
IEBAIHN0YXRpYyBPcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0
cmluZyYgaWQsIFBvaW50ZXJQYXJhbWV0ZXJzCiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rp
b25Nb3VzZUJ1dHRvbihidXR0b24udmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlck1vdmU6IHsKLSAgICAgICAgaWYgKGF1dG8g
ZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewotICAg
ICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwot
ICAgICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcG9pbnRl
ciBtb3ZlIGFjdGlvbiIpOwotICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1
ZSgpOwotICAgICAgICB9CisgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJNb3ZlOgor
ICAgICAgICBpZiAoIXByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihhY3Rpb25JdGVtLCBhY3Rpb24s
IGVycm9yTWVzc2FnZSkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNlbDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleVVwOgorICAgIGNhc2UgQWN0
aW9uOjpTdWJ0eXBlOjpLZXlEb3duOgorICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIAotICAgICAgICBpZiAoYXV0
byBvcmlnaW5WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIm9yaWdpbiJfcykpIHsKLSAgICAg
ICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmlu
ZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKLSAgICAgICAgICAgICAgICBpZiAo
IWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0
IGluIHBvaW50ZXIgbW92ZSBhY3Rpb24iKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYWN0aW9uLm9y
aWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVt
ZW50SUQgfTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXV0byBvcmln
aW4gPSBvcmlnaW5WYWx1ZS0+YXNTdHJpbmcoKTsKLSAgICAgICAgICAgICAgICBpZiAob3JpZ2lu
ID09ICJ2aWV3cG9ydCIpCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2lu
dGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6Vmlld3BvcnQsIFdURjo6bnVsbG9wdCB9
OwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCi0gICAgICAg
ICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdp
bjo6VHlwZTo6UG9pbnRlciwgV1RGOjpudWxsb3B0IH07Ci0gICAgICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIHBvaW50ZXIgbW92ZSBhY3Rpb24iKTsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBv
aW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpWaWV3cG9ydCwgV1RGOjpudWxsb3B0
IH07CisgICAgcmV0dXJuIGFjdGlvbjsKK30KKworc3RhdGljIE9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWN0aW9uSXRl
bSwgT3B0aW9uYWw8U3RyaW5nPiYgZXJyb3JNZXNzYWdlKQoreworICAgIEFjdGlvbjo6U3VidHlw
ZSBhY3Rpb25TdWJ0eXBlOworICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5n
KCJ0eXBlIl9zKTsKKyAgICBpZiAoc3VidHlwZSA9PSAicGF1c2UiKQorICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQYXVzZTsKKyAgICBlbHNlIGlmIChzdWJ0eXBlID09
ICJzY3JvbGwiKQorICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3Jv
bGw7CisgICAgZWxzZSB7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICB9CiAKLSAgICAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKLSAgICAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1i
ZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwotICAgICAgICAgICAgaWYgKCF4KSB7Ci0gICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBp
bnZhbGlkIGZvciBwb2ludGVyIG1vdmUgYWN0aW9uIik7CisgICAgQWN0aW9uIGFjdGlvbihpZCwg
QWN0aW9uOjpUeXBlOjpXaGVlbCwgYWN0aW9uU3VidHlwZSk7CisKKyAgICBzd2l0Y2ggKGFjdGlv
blN1YnR5cGUpIHsKKyAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UGF1c2U6CisgICAgICAgIGlm
ICghcHJvY2Vzc1BhdXNlQWN0aW9uKGFjdGlvbkl0ZW0sIGFjdGlvbiwgZXJyb3JNZXNzYWdlKSkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw6CisgICAgICAgIGlmICghcHJvY2Vzc1BvaW50ZXJN
b3ZlQWN0aW9uKGFjdGlvbkl0ZW0sIGFjdGlvbiwgZXJyb3JNZXNzYWdlKSkKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBh
Y3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CisgICAgICAgICAgICBhdXRvIGRlbHRh
WCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CisgICAgICAg
ICAgICBpZiAoIWRlbHRhWCkgeworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CisgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVs
dGFYLnZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rp
b25JdGVtLmdldFZhbHVlKCJ5Il9zKSkgewotICAgICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051
bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7Ci0gICAgICAgICAgICBpZiAoIXkpIHsKLSAg
ICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlz
IGludmFsaWQgZm9yIHBvaW50ZXIgbW92ZSBhY3Rpb24iKTsKKyAgICAgICAgaWYgKGF1dG8gZGVs
dGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CisgICAgICAgICAg
ICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01J
Tik7CisgICAgICAgICAgICBpZiAoIWRlbHRhWSkgeworICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CisgICAgICAgICAgICBhY3Rpb24u
ZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOgotICAgICAgICBicmVh
azsKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5VXA6CiAgICAgY2FzZSBBY3Rpb246OlN1
YnR5cGU6OktleURvd246CisgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJVcDoKKyAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246CisgICAgY2FzZSBBY3Rpb246OlN1
YnR5cGU6OlBvaW50ZXJNb3ZlOgorICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2Fu
Y2VsOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKQEAgLTIwODAsNiAr
MjE0Myw4IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0
aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbiwgSlNPCiAgICAgICAgIGlucHV0U291cmNlVHlw
ZSA9IElucHV0U291cmNlOjpUeXBlOjpLZXk7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAicG9pbnRl
ciIpCiAgICAgICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpQb2ludGVy
OworICAgIGVsc2UgaWYgKHR5cGUgPT0gIndoZWVsIikKKyAgICAgICAgaW5wdXRTb3VyY2VUeXBl
ID0gSW5wdXRTb3VyY2U6OlR5cGU6OldoZWVsOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUi
KQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAg
ICBlbHNlIHsKQEAgLTIxMzYsNiArMjIwMSw4IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8QWN0
aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbiwgSlNPCiAg
ICAgICAgICAgICBhY3Rpb24gPSBwcm9jZXNzS2V5QWN0aW9uKGlkLCAqYWN0aW9uSXRlbSwgZXJy
b3JNZXNzYWdlKTsKICAgICAgICAgZWxzZSBpZiAoaW5wdXRTb3VyY2VUeXBlID09IElucHV0U291
cmNlOjpUeXBlOjpQb2ludGVyKQogICAgICAgICAgICAgYWN0aW9uID0gcHJvY2Vzc1BvaW50ZXJB
Y3Rpb24oaWQsIHBhcmFtZXRlcnMudmFsdWUoKSwgKmFjdGlvbkl0ZW0sIGVycm9yTWVzc2FnZSk7
CisgICAgICAgIGVsc2UgaWYgKGlucHV0U291cmNlVHlwZSA9PSBJbnB1dFNvdXJjZTo6VHlwZTo6
V2hlZWwpCisgICAgICAgICAgICBhY3Rpb24gPSBwcm9jZXNzV2hlZWxBY3Rpb24oaWQsICphY3Rp
b25JdGVtLCBlcnJvck1lc3NhZ2UpOwogICAgICAgICBpZiAoIWFjdGlvbikKICAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWQxNzg2NTlkMmM5Li4yMTQwOTkw
YmMwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMTAtMDggIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYkRyaXZlcjogYWRk
IHN1cHBvcnQgZm9yIHdoZWVsIGFjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29u
OiBBZGQgc2Nyb2xsIGRlbHRhIHRvIGFjdGlvbiBzdGF0ZS4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTaW11bGF0ZWRJbnB1dFNvdXJjZVN0YXRlOjplbXB0eVN0YXRlRm9yU291cmNlVHlwZSk6IElu
aXRpYWxpemUgc2Nyb2xsRGVsdGEgZm9yIHdoZWVsIGFjdGlvbnMuCisgICAgICAgIChXZWJLaXQ6
OlNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6dHJhbnNpdGlvbklucHV0U291cmNlVG9TdGF0ZSk6
IEhhbmRsZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6OldoZWVsLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OldlYkF1dG9tYXRpb25TZXNzaW9uKTogQWRkIFNp
bXVsYXRlZElucHV0U291cmNlVHlwZTo6V2hlZWwuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9t
YXRpb25TZXNzaW9uOjp0ZXJtaW5hdGUpOiBIYW5kbGUgcGVuZGluZyB3aGVlbCBldmVudHMuCisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3aWxsU2hvd0phdmFTY3JpcHRE
aWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Ondo
ZWVsRXZlbnRzRmx1c2hlZEZvclBhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OndpbGxDbG9zZVBhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmlzU2ltdWxhdGluZ1VzZXJJbnRlcmFjdGlvbiBjb25zdCk6
IFJldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHdoZWVsIGV2ZW50cyB0b28uCisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0ZVdoZWVsSW50ZXJhY3Rp
b24pOiBIYW5kbGUgdGhlIHdoZWVsIGFjdGlvbi4KKyAgICAgICAgKFdlYktpdDo6c2ltdWxhdGVk
SW5wdXRTb3VyY2VUeXBlRnJvbVByb3RvY29sU291cmNlVHlwZSk6IEhhbmRsZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpJbnB1dFNvdXJjZVR5cGU6OldoZWVsLgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGVyZm9ybUludGVyYWN0aW9uU2VxdWVuY2Up
OiBJbml0aWFsaXplIHRoZSBzY3JvbGwgZGVsdGEgZm9yIHdoZWVsIGFjdGlvbi4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlV2hl
ZWxJbnRlcmFjdGlvbik6IFN5bnRoZXNpemUgYSB3aGVlbCBldmVudC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Npb25XUEUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZVdoZWVsSW50
ZXJhY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1Byb2Nlc3NpbmdXaGVlbEV2ZW50cyBj
b25zdCk6IFJldHVybiB3aGV0aGVyIHBhZ2UgaGFzIHBlbmRpbmcgd2hlZWwgZXZlbnRzLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCk6IE5vdGlmeSBhdXRv
bWF0aW9uIHRoYXQgcGVuZGluZyB3aGVlbCBldmVudHMgaGF2ZSBiZWVuIHByb2Nlc3NlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogY29uZmlnLmg6CisK
IDIwMjAtMTAtMDggIFNhYWdhciBKaGEgIDxzYWFnYXJAc2FhZ2FyamhhLmNvbT4KIAogICAgICAg
ICBSZXBsYWNlIHVucXVhbGlmaWVkIHVzZSBvZiBQbGF0Zm9ybURpc3BsYXlJRCBpbiBXZWJWaWV3
SW1wbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRv
bWF0aW9uLmpzb24gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRp
b24uanNvbgppbmRleCAyZTdiYjdjOTg5NTguLjVmYmE0YTM0NjkzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KQEAgLTI3NSw3
ICsyNzUsOCBAQAogICAgICAgICAgICAgICAgICJOdWxsIiwKICAgICAgICAgICAgICAgICAiTW91
c2UiLAogICAgICAgICAgICAgICAgICJLZXlib2FyZCIsCi0gICAgICAgICAgICAgICAgIlRvdWNo
IgorICAgICAgICAgICAgICAgICJUb3VjaCIsCisgICAgICAgICAgICAgICAgIldoZWVsIgogICAg
ICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7CkBAIC0zMTMsOSArMzE0LDEwIEBACiAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcmVzc2VkQ2hhcktleSIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGb3IgJ2tleWJvYXJkJyBpbnB1
dCBzb3VyY2VzLCBzcGVjaWZpZXMgYSBjaGFyYWN0ZXIga2V5IHRoYXQgaGFzICdwcmVzc2VkJyBz
dGF0ZS4gVW5tZW50aW9uZWQgY2hhcmFjdGVyIGtleXMgYXJlIGFzc3VtZWQgdG8gaGF2ZSBhICdy
ZWxlYXNlZCcgc3RhdGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJlc3NlZFZp
cnR1YWxLZXlzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlZpcnR1YWxL
ZXkiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGb3IgJ2tleWJvYXJkJyBp
bnB1dCBzb3VyY2VzLCBzcGVjaWZpZXMgdmlydHVhbCBrZXlzIHRoYXQgaGF2ZSBhICdwcmVzc2Vk
JyBzdGF0ZS4gVW5tZW50aW9uZWQgdmlydHVhbCBrZXlzIGFyZSBhc3N1bWVkIHRvIGhhdmUgYSAn
cmVsZWFzZWQnIHN0YXRlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByZXNzZWRC
dXR0b24iLCAiJHJlZiI6ICJNb3VzZUJ1dHRvbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJGb3IgJ21vdXNlJyBpbnB1dCBzb3VyY2VzLCBzcGVjaWZpZXMgd2hpY2ggbW91c2Ug
YnV0dG9uIGhhcyBhICdwcmVzc2VkJyBzdGF0ZS4gVW5tZW50aW9uZWQgbW91c2UgYnV0dG9ucyBh
cmUgYXNzdW1lZCB0byBoYXZlIGEgJ3JlbGVhc2VkJyBzdGF0ZS4gRm9yICd0b3VjaCcgaW5wdXQg
c291cmNlcywgcGFzc2luZyBNb3VzZUJ1dHRvbjo6TGVmdCBkZW5vdGVzIGEgdG91Y2gtZG93biBz
dGF0ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAiJHJlZiI6ICJN
b3VzZU1vdmVPcmlnaW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRm9yICdt
b3VzZScgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIHRoZSBvcmlnaW4gdHlwZSBvZiBhIG1vdXNl
IG1vdmUgdHJhbnNpdGlvbi4gRGVmYXVsdHMgdG8gJ1ZpZXdwb3J0JyBpZiBvbWl0dGVkLiJ9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3JpZ2luIiwgIiRyZWYiOiAiTW91c2VNb3ZlT3Jp
Z2luIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZvciAnbW91c2UnIG9yICd3
aGVlbCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIHRoZSBvcmlnaW4gdHlwZSBvZiBhIG1vdXNl
IG1vdmUgdHJhbnNpdGlvbi4gRGVmYXVsdHMgdG8gJ1ZpZXdwb3J0JyBpZiBvbWl0dGVkLiJ9LAog
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUhhbmRsZSIsICIkcmVmIjogIk5vZGVIYW5k
bGUiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBvZiB0aGUg
ZWxlbWVudCB0byB1c2UgYXMgb3JpZ2luIHdoZW4gb3JpZ2luIHR5cGUgaXMgJ0VsZW1lbnQnLiJ9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb24iLCAiJHJlZiI6ICJQb2ludCIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGb3IgJ21vdXNlJyBvciAndG91Y2gn
IGlucHV0IHNvdXJjZXMsIHNwZWNpZmllcyBhIGxvY2F0aW9uIGluIHZpZXcgY29vcmRpbmF0ZXMg
dG8gd2hpY2ggdGhlIGlucHV0IHNvdXJjZSBzaG91bGQgdHJhbnNpdGlvbi4gVHJhbnNpdGlvbmlu
ZyB0byB0aGlzIHN0YXRlIG1heSBpbnRlcnBvbGF0ZSBpbnRlbWVkaWF0ZSBpbnB1dCBzb3VyY2Ug
c3RhdGVzIHRvIGJldHRlciBzaW11bGF0ZSByZWFsIHVzZXIgbW92ZW1lbnRzIGFuZCBnZXN0dXJl
cy4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2NhdGlvbiIsICIkcmVmIjogIlBv
aW50IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZvciAnbW91c2UnLCAnd2hl
ZWwnIG9yICd0b3VjaCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIGEgbG9jYXRpb24gaW4gdmll
dyBjb29yZGluYXRlcyB0byB3aGljaCB0aGUgaW5wdXQgc291cmNlIHNob3VsZCB0cmFuc2l0aW9u
LiBUcmFuc2l0aW9uaW5nIHRvIHRoaXMgc3RhdGUgbWF5IGludGVycG9sYXRlIGludGVtZWRpYXRl
IGlucHV0IHNvdXJjZSBzdGF0ZXMgdG8gYmV0dGVyIHNpbXVsYXRlIHJlYWwgdXNlciBtb3ZlbWVu
dHMgYW5kIGdlc3R1cmVzLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRlbHRhIiwg
IiRyZWYiOiAiU2l6ZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGb3IgJ3do
ZWVsJyBpbnB1dCBzb3VyY2VzLCBzcGVjaWZpZXMgYSBzY3JvbGwgZGVsdGEuIn0sCiAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJkdXJhdGlvbiIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIG1pbmltdW0gbnVtYmVyIG9mIG1pbGxpc2Vj
b25kcyB0aGF0IG11c3QgZWxhcHNlIHdoaWxlIHRoZSByZWxldmFudCBpbnB1dCBzb3VyY2UgdHJh
bnNpdGlvbnMgdG8gdGhpcyBzdGF0ZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11
bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCmluZGV4IGY4MTM2ODY4MDM4Yy4uY2VlMmUxZjY2M2E2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCkBAIC00Myw2ICs0Myw5IEBAIFNpbXVs
YXRlZElucHV0U291cmNlU3RhdGUgU2ltdWxhdGVkSW5wdXRTb3VyY2VTdGF0ZTo6ZW1wdHlTdGF0
ZUZvclNvdXJjZVR5cGUoU2ltCiAgICAgY2FzZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6Ok51
bGw6CiAgICAgY2FzZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6OktleWJvYXJkOgogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNpbXVsYXRlZElucHV0U291cmNlVHlwZTo6V2hlZWw6CisgICAg
ICAgIHJlc3VsdC5zY3JvbGxEZWx0YSA9IFdlYkNvcmU6OkludFNpemUoKTsKKyAgICAgICAgRkFM
TFRIUk9VR0g7CiAgICAgY2FzZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6Ok1vdXNlOgogICAg
IGNhc2UgU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlOjpUb3VjaDoKICAgICAgICAgcmVzdWx0Lmxv
Y2F0aW9uID0gV2ViQ29yZTo6SW50UG9pbnQoKTsKQEAgLTM4MCw2ICszODMsMzUgQEAgdm9pZCBT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5zaXRpb25JbnB1dFNvdXJjZVRvU3RhdGUoU2lt
dWxhdGVkSW5wdXRTb3VyY2UKICAgICAgICAgICAgIGV2ZW50RGlzcGF0Y2hGaW5pc2hlZChXVEY6
Om51bGxvcHQpOwogI2VuZGlmIC8vICFFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6
OldoZWVsOgorI2lmICFFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUykKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbHNlCisgICAgICAgIHJlc29sdmVM
b2NhdGlvbihhLmxvY2F0aW9uLnZhbHVlT3IoV2ViQ29yZTo6SW50UG9pbnQoKSksIGIubG9jYXRp
b24sIGIub3JpZ2luLnZhbHVlT3IoTW91c2VNb3ZlT3JpZ2luOjpWaWV3cG9ydCksIGIubm9kZUhh
bmRsZSwgW3RoaXMsICZhLCAmYiwgZXZlbnREaXNwYXRjaEZpbmlzaGVkID0gV1RGTW92ZShldmVu
dERpc3BhdGNoRmluaXNoZWQpXShPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gbG9jYXRpb24s
IE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+IGVycm9yKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIGV2ZW50RGlzcGF0Y2hGaW5pc2hl
ZChlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAoIWxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgZXZlbnREaXNwYXRjaEZp
bmlzaGVkKEFVVE9NQVRJT05fQ09NTUFORF9FUlJPUl9XSVRIX05BTUUoRWxlbWVudE5vdEludGVy
YWN0YWJsZSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgYi5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisgICAgICAgICAgICBpZiAoIWEuc2Ny
b2xsRGVsdGEtPmlzWmVybygpKQorICAgICAgICAgICAgICAgIGIuc2Nyb2xsRGVsdGEtPmNvbnRy
YWN0KGEuc2Nyb2xsRGVsdGEtPndpZHRoKCksIGEuc2Nyb2xsRGVsdGEtPmhlaWdodCgpKTsKKwor
ICAgICAgICAgICAgaWYgKCFiLnNjcm9sbERlbHRhLT5pc1plcm8oKSkgeworICAgICAgICAgICAg
ICAgIExPRyhBdXRvbWF0aW9uLCAiU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyWyVwXTogc2ltdWxh
dGluZyBXaGVlbCBmcm9tICglZCwgJWQpIHRvICglZCwgJWQpIGZvciB0cmFuc2l0aW9uIHRvICVk
LiVkIiwgdGhpcywgYS5zY3JvbGxEZWx0YS0+d2lkdGgoKSwgYS5zY3JvbGxEZWx0YS0+aGVpZ2h0
KCksIGIuc2Nyb2xsRGVsdGEtPndpZHRoKCksIGIuc2Nyb2xsRGVsdGEtPmhlaWdodCgpLCBtX2tl
eWZyYW1lSW5kZXgsIG1faW5wdXRTb3VyY2VTdGF0ZUluZGV4KTsKKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogVGhpcyBkb2VzIG5vdCBpbnRlcnBvbGF0ZSBtb3VzZSBzY3JvbGxzIHBlciB0aGUg
InBlcmZvcm0gYSBzY3JvbGwiIGFsZ29yaXRobSAowqcxNS40LjQgV2hlZWwgYWN0aW9ucykuCisg
ICAgICAgICAgICAgICAgbV9jbGllbnQuc2ltdWxhdGVXaGVlbEludGVyYWN0aW9uKG1fcGFnZSwg
Yi5sb2NhdGlvbi52YWx1ZSgpLCBiLnNjcm9sbERlbHRhLnZhbHVlKCksIFdURk1vdmUoZXZlbnRE
aXNwYXRjaEZpbmlzaGVkKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBl
dmVudERpc3BhdGNoRmluaXNoZWQoV1RGOjpudWxsb3B0KTsKKyAgICAgICAgfSk7CisjZW5kaWYg
Ly8gIUVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDdkNmYyMjAzYTNiZC4u
MTgyMjk1MzFlZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC02Nyw2ICs2OCw3IEBAIGVudW0gY2xhc3MgU2ltdWxh
dGVkSW5wdXRTb3VyY2VUeXBlIHsKICAgICBLZXlib2FyZCwKICAgICBNb3VzZSwKICAgICBUb3Vj
aCwKKyAgICBXaGVlbCwKIH07CiAKIGVudW0gY2xhc3MgVG91Y2hJbnRlcmFjdGlvbiB7CkBAIC04
Miw2ICs4NCw3IEBAIHN0cnVjdCBTaW11bGF0ZWRJbnB1dFNvdXJjZVN0YXRlIHsKICAgICBPcHRp
b25hbDxNb3VzZU1vdmVPcmlnaW4+IG9yaWdpbjsKICAgICBPcHRpb25hbDxTdHJpbmc+IG5vZGVI
YW5kbGU7CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGxvY2F0aW9uOworICAgIE9w
dGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHNjcm9sbERlbHRhOwogICAgIE9wdGlvbmFsPFNlY29u
ZHM+IGR1cmF0aW9uOwogCiAgICAgc3RhdGljIFNpbXVsYXRlZElucHV0U291cmNlU3RhdGUgZW1w
dHlTdGF0ZUZvclNvdXJjZVR5cGUoU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlKTsKQEAgLTEzMyw2
ICsxMzYsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJE
X0lOVEVSQUNUSU9OUykKICAgICAgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRl
cmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8
VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0g
MDsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVXaGVlbEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbkluVmlldywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgZGVsdGEsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAjZW5k
aWYKICAgICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1l
bnQoV2ViUGFnZVByb3h5JiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgY29u
c3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJ
bnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOwogICAg
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGYyZTcxMGI2ZGUwZi4uNThlNTMyNDM4NDYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtOTEsNiArOTEsOSBAQCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6V2ViQXV0b21hdGlvblNlc3Npb24oKQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgbV9pbnB1dFNvdXJjZXMuYWRkKFNpbXVs
YXRlZElucHV0U291cmNlOjpjcmVhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlOjpLZXlib2Fy
ZCkpOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCisg
ICAgbV9pbnB1dFNvdXJjZXMuYWRkKFNpbXVsYXRlZElucHV0U291cmNlOjpjcmVhdGUoU2ltdWxh
dGVkSW5wdXRTb3VyY2VUeXBlOjpXaGVlbCkpOwogI2VuZGlmCiAgICAgbV9pbnB1dFNvdXJjZXMu
YWRkKFNpbXVsYXRlZElucHV0U291cmNlOjpjcmVhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBl
OjpOdWxsKSk7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKQEAgLTE2
NSw2ICsxNjgsMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGVybWluYXRlKCkKICAg
ICB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpCiAKKyNp
ZiBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUykKKyAgICBmb3IgKGF1dG8mIGlk
ZW50aWZpZXIgOiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nV2hlZWxFdmVudHNGbHVzaGVkQ2FsbGJh
Y2tzUGVyUGFnZS5rZXlzKCkpKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdX
aGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLnRha2UoaWRlbnRpZmllcik7CisgICAg
ICAgIGNhbGxiYWNrKEFVVE9NQVRJT05fQ09NTUFORF9FUlJPUl9XSVRIX05BTUUoSW50ZXJuYWxF
cnJvcikpOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNU
SU9OUykKKwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIGlmIChJbnNwZWN0b3I6
OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCA9IG1fcmVtb3RlQ2hhbm5lbCkgewogICAgICAgICBt
X3JlbW90ZUNoYW5uZWwgPSBudWxscHRyOwpAQCAtNjc2LDYgKzY4NiwxNSBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp3aWxsU2hvd0phdmFTY3JpcHREaWFsb2coV2ViUGFnZVByb3h5JiBw
YWdlKQogICAgICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRF
UkFDVElPTlMpCiAgICAgfSk7CisKKyNpZiBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNU
SU9OUykKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQ
ZXJQYWdlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvcHlUb1Zl
Y3RvcihtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLmtleXMoKSkp
IHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nV2hlZWxFdmVudHNG
bHVzaGVkQ2FsbGJhY2tzUGVyUGFnZS50YWtlKGtleSk7CisgICAgICAgICAgICAgICAgY2FsbGJh
Y2soV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmIC8vIEVO
QUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQogfQogICAgIAogdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6ZGlkRW50ZXJGdWxsU2NyZWVuRm9yUGFnZShjb25zdCBXZWJQYWdlUHJv
eHkmKQpAQCAtODE2LDYgKzgzNSwxNiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjprZXli
b2FyZEV2ZW50c0ZsdXNoZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYgcGFnZQogI2VuZGlm
CiB9CiAKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndoZWVsRXZlbnRzRmx1c2hlZEZvclBh
Z2UoY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlKQoreworI2lmIEVOQUJMRShXRUJEUklWRVJfV0hF
RUxfSU5URVJBQ1RJT05TKQorICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nV2hlZWxF
dmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2UuaWRlbnRpZmllcigpKSkKKyAg
ICAgICAgY2FsbGJhY2soV1RGOjpudWxsb3B0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBh
Z2UpOworI2VuZGlmCit9CisKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndpbGxDbG9zZVBh
Z2UoY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlKQogewogICAgIFN0cmluZyBoYW5kbGUgPSBoYW5k
bGVGb3JXZWJQYWdlUHJveHkocGFnZSk7CkBAIC04MzEsNiArODYwLDEwIEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OndpbGxDbG9zZVBhZ2UoY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlKQog
ICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2Fs
bGJhY2tzUGVyUGFnZS50YWtlKHBhZ2UuaWRlbnRpZmllcigpKSkKICAgICAgICAgY2FsbGJhY2so
QVVUT01BVElPTl9DT01NQU5EX0VSUk9SX1dJVEhfTkFNRShXaW5kb3dOb3RGb3VuZCkpOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCisgICAgaWYgKGF1
dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdl
LnRha2UocGFnZS5pZGVudGlmaWVyKCkpKQorICAgICAgICBjYWxsYmFjayhBVVRPTUFUSU9OX0NP
TU1BTkRfRVJST1JfV0lUSF9OQU1FKFdpbmRvd05vdEZvdW5kKSk7CisjZW5kaWYKIAogI2lmIEVO
QUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAgICAgLy8gVGhlbiB0ZWxsIHRoZSBpbnB1dCBk
aXNwYXRjaGVyIHRvIGNhbmNlbCBzbyB0aW1lcnMgYXJlIHN0b3BwZWQsIGFuZCBsZXQgaXQgZ28g
b3V0IG9mIHNjb3BlLgpAQCAtMTUyNSw2ICsxNTU4LDEwIEBAIGJvb2wgV2ViQXV0b21hdGlvblNl
c3Npb246OmlzU2ltdWxhdGluZ1VzZXJJbnRlcmFjdGlvbigpIGNvbnN0CiAgICAgaWYgKCFtX3Bl
bmRpbmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lO
VEVSQUNUSU9OUykKKyAgICBpZiAoIW1fcGVuZGluZ1doZWVsRXZlbnRzRmx1c2hlZENhbGxiYWNr
c1BlclBhZ2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogI2lmIEVO
QUJMRShXRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKQogICAgIGlmIChtX3NpbXVsYXRpbmdU
b3VjaEludGVyYWN0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2NzEsNiArMTcwOCw0
MCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rp
b24oV2ViUGFnZVByb3h5JiBwYWdlLCBLZXlibwogICAgIC8vIE90aGVyd2lzZSwgd2FpdCBmb3Ig
a2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2sgdG8gcnVuIHdoZW4gYWxsIGV2ZW50cyBhcmUg
aGFuZGxlZC4KIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykKKworI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQordm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2ltdWxhdGVXaGVlbEludGVyYWN0aW9uKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3cG9ydCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHBhZ2UuZ2V0V2luZG93RnJhbWVXaXRoQ2FsbGJh
Y2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcGFnZSA9IG1ha2VSZWYocGFnZSksIGxv
Y2F0aW9uSW5WaWV3cG9ydCwgZGVsdGFdKFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZSkg
bXV0YWJsZSB7CisgICAgICAgIGF1dG8gY2xpcHBlZFggPSBzdGQ6Om1pbihzdGQ6Om1heCgwLjBm
LCBzdGF0aWNfY2FzdDxmbG9hdD4obG9jYXRpb25JblZpZXdwb3J0LngoKSkpLCB3aW5kb3dGcmFt
ZS5zaXplKCkud2lkdGgoKSk7CisgICAgICAgIGF1dG8gY2xpcHBlZFkgPSBzdGQ6Om1pbihzdGQ6
Om1heCgwLjBmLCBzdGF0aWNfY2FzdDxmbG9hdD4obG9jYXRpb25JblZpZXdwb3J0LnkoKSkpLCB3
aW5kb3dGcmFtZS5zaXplKCkuaGVpZ2h0KCkpOworICAgICAgICBpZiAoY2xpcHBlZFggIT0gbG9j
YXRpb25JblZpZXdwb3J0LngoKSB8fCBjbGlwcGVkWSAhPSBsb2NhdGlvbkluVmlld3BvcnQueSgp
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBVVRPTUFUSU9OX0NPTU1BTkRfRVJS
T1JfV0lUSF9OQU1FKFRhcmdldE91dE9mQm91bmRzKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBCcmlkZ2UgdGhlIGZsdXNoZWQgY2FsbGJhY2sgdG8gb3Vy
IGNvbW1hbmQncyBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAgICAgIGF1dG8gd2hlZWxFdmVudHNG
bHVzaGVkQ2FsbGJhY2sgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4gZXJyb3IpIG11dGFibGUg
eworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZXJyb3IpOworICAgICAgICB9OworCisg
ICAgICAgIGF1dG8mIGNhbGxiYWNrSW5NYXAgPSBtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRD
YWxsYmFja3NQZXJQYWdlLmFkZChwYWdlLT5pZGVudGlmaWVyKCksIG51bGxwdHIpLml0ZXJhdG9y
LT52YWx1ZTsKKyAgICAgICAgaWYgKGNhbGxiYWNrSW5NYXApCisgICAgICAgICAgICBjYWxsYmFj
a0luTWFwKEFVVE9NQVRJT05fQ09NTUFORF9FUlJPUl9XSVRIX05BTUUoVGltZW91dCkpOworICAg
ICAgICBjYWxsYmFja0luTWFwID0gV1RGTW92ZSh3aGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFjayk7
CisKKyAgICAgICAgcGxhdGZvcm1TaW11bGF0ZVdoZWVsSW50ZXJhY3Rpb24ocGFnZSwgbG9jYXRp
b25JblZpZXdwb3J0LCBkZWx0YSk7CisKKyAgICAgICAgLy8gSWYgdGhlIGV2ZW50IGRvZXMgbm90
IGhpdCB0ZXN0IGFueXRoaW5nIGluIHRoZSB3aW5kb3csIHRoZW4gaXQgbWF5IG5vdCBoYXZlIGJl
ZW4gZGVsaXZlcmVkLgorICAgICAgICBpZiAoY2FsbGJhY2tJbk1hcCAmJiAhcGFnZS0+aXNQcm9j
ZXNzaW5nV2hlZWxFdmVudHMoKSkgeworICAgICAgICAgICAgYXV0byBjYWxsYmFja1RvQ2FuY2Vs
ID0gbV9wZW5kaW5nV2hlZWxFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2Ut
PmlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBjYWxsYmFja1RvQ2FuY2VsKFdURjo6bnVsbG9w
dCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBPdGhlcndpc2UsIHdhaXQgZm9yIHdoZWVsRXZl
bnRzRmx1c2hlZENhbGxiYWNrIHRvIHJ1biB3aGVuIGFsbCBldmVudHMgYXJlIGhhbmRsZWQuCisg
ICAgfSk7Cit9CisjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FDVElPTlNfQVBJ
KQogCiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpCkBAIC0xODU0LDYg
KzE5MjUsOCBAQCBzdGF0aWMgU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlIHNpbXVsYXRlZElucHV0
U291cmNlVHlwZUZyb21Qcm90b2NvbFNvdXJjZVR5cGUoSQogICAgICAgICByZXR1cm4gU2ltdWxh
dGVkSW5wdXRTb3VyY2VUeXBlOjpNb3VzZTsKICAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OklucHV0U291cmNlVHlwZTo6VG91Y2g6CiAgICAgICAgIHJldHVybiBTaW11
bGF0ZWRJbnB1dFNvdXJjZVR5cGU6OlRvdWNoOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6SW5wdXRTb3VyY2VUeXBlOjpXaGVlbDoKKyAgICAgICAgcmV0dXJuIFNp
bXVsYXRlZElucHV0U291cmNlVHlwZTo6V2hlZWw7CiAgICAgfQogCiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE5MjQsNiArMTk5NywxMCBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwZXJmb3JtSW50ZXJhY3Rpb25TZXF1ZW5jZShjb25zdCBJbnNwZWN0b3I6OlBy
b3RvY29sOgogI2lmICFFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAg
ICAgICAgaWYgKGlucHV0U291cmNlVHlwZSA9PSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6Oktl
eWJvYXJkKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJLZXlib2FyZCBpbnB1dCBzb3VyY2VzIGFyZSBub3Qg
eWV0IHN1cHBvcnRlZC4iKTsKKyNlbmRpZgorI2lmICFFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lO
VEVSQUNUSU9OUykKKyAgICAgICAgaWYgKGlucHV0U291cmNlVHlwZSA9PSBTaW11bGF0ZWRJbnB1
dFNvdXJjZVR5cGU6OldoZWVsKQorICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJXaGVlbCBpbnB1dCBzb3VyY2Vz
IGFyZSBub3QgeWV0IHN1cHBvcnRlZC4iKTsKICNlbmRpZgogICAgICAgICBpZiAodHlwZVRvU291
cmNlSWRNYXAuY29udGFpbnMoaW5wdXRTb3VyY2VUeXBlKSkKICAgICAgICAgICAgIEFTWU5DX0ZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJU
d28gaW5wdXQgc291cmNlcyB3aXRoIHRoZSBzYW1lIHR5cGUgd2VyZSBzcGVjaWZpZWQuIik7CkBA
IC0yMDEyLDYgKzIwODksMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGVyZm9ybUlu
dGVyYWN0aW9uU2VxdWVuY2UoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDoKICAgICAgICAgICAg
ICAgICAgICAgc291cmNlU3RhdGUubG9jYXRpb24gPSBXZWJDb3JlOjpJbnRQb2ludCgqeCwgKnkp
OwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBpZiAoYXV0byBkZWx0YU9iamVjdCA9IHN0
YXRlT2JqZWN0LT5nZXRPYmplY3QoImRlbHRhIl9zKSkgeworICAgICAgICAgICAgICAgIGF1dG8g
ZGVsdGFYID0gZGVsdGFPYmplY3QtPmdldEludGVnZXIoIndpZHRoIl9zKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIGRlbHRhWSA9IGRlbHRhT2JqZWN0LT5nZXRJbnRlZ2VyKCJoZWlnaHQiX3MpOwor
ICAgICAgICAgICAgICAgIGlmIChkZWx0YVggJiYgZGVsdGFZKQorICAgICAgICAgICAgICAgICAg
ICBzb3VyY2VTdGF0ZS5zY3JvbGxEZWx0YSA9IFdlYkNvcmU6OkludFNpemUoKmRlbHRhWCwgKmRl
bHRhWSk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmIChhdXRvIGR1cmF0aW9uID0g
c3RhdGVPYmplY3QtPmdldEludGVnZXIoImR1cmF0aW9uIl9zKSkKICAgICAgICAgICAgICAgICBz
b3VyY2VTdGF0ZS5kdXJhdGlvbiA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKmR1cmF0aW9u
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGEzOTg5YWRlNTlkYi4uMzZkYzM3ZTJhOTQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0xMjUsNiArMTI1LDcgQEAgcHVibGljOgogICAgIHZvaWQg
aW5zcGVjdG9yRnJvbnRlbmRMb2FkZWQoY29uc3QgV2ViUGFnZVByb3h5Jik7CiAgICAgdm9pZCBr
ZXlib2FyZEV2ZW50c0ZsdXNoZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYpOwogICAgIHZv
aWQgbW91c2VFdmVudHNGbHVzaGVkRm9yUGFnZShjb25zdCBXZWJQYWdlUHJveHkmKTsKKyAgICB2
b2lkIHdoZWVsRXZlbnRzRmx1c2hlZEZvclBhZ2UoY29uc3QgV2ViUGFnZVByb3h5Jik7CiAgICAg
dm9pZCB3aWxsQ2xvc2VQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYpOwogICAgIHZvaWQgaGFuZGxl
UnVuT3BlblBhbmVsKGNvbnN0IFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkZyYW1lUHJveHkmLCBj
b25zdCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clByb3h5Jik7CiAgICAgdm9pZCB3aWxsU2hvd0phdmFTY3JpcHREaWFsb2coV2ViUGFnZVByb3h5
Jik7CkBAIC0xNTMsNiArMTU0LDkgQEAgcHVibGljOgogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50
ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50
PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsK
KyNlbmRpZgorI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgIHZv
aWQgc2ltdWxhdGVXaGVlbEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBsb2NhdGlvbkluVmlldywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEs
IEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKICNlbmRpZgogICAgIHZvaWQgdmlld3Bv
cnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBjb25zdCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpOb2RlSGFuZGxlJiwgRnVuY3Rpb248dm9pZChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJik7CiAKQEAgLTI2Myw2ICsy
NjcsOSBAQCBwcml2YXRlOgogICAgIC8vIFNpbXVsYXRlcyBrZXkgcHJlc3NlcyB0byBwcm9kdWNl
IHRoZSBjb2RlcG9pbnRzIGluIGEgc3RyaW5nLiBPbmUgb3IgbW9yZSBjb2RlIHBvaW50cyBhcmUg
ZGVsaXZlcmVkIGF0b21pY2FsbHkgYXQgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLgogICAg
IHZvaWQgcGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmIC8vIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05T
KQorI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgIHZvaWQgcGxh
dGZvcm1TaW11bGF0ZVdoZWVsSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3cG9ydCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
ZGVsdGEpOworI2VuZGlmIC8vIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQog
CiAgICAgLy8gR2V0IGJhc2U2NC1lbmNvZGVkIFBORyBkYXRhIGZyb20gYSBiaXRtYXAuCiAgICAg
c3RhdGljIE9wdGlvbmFsPFN0cmluZz4gcGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0YShj
b25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpOwpAQCAtMzA2LDYgKzMxMyw5IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpCiAgICAgSGFzaE1h
cDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEF1dG9tYXRp
b25Db21tYW5kRXJyb3I+KT4+IG1fcGVuZGluZ01vdXNlRXZlbnRzRmx1c2hlZENhbGxiYWNrc1Bl
clBhZ2U7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUykK
KyAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoT3B0aW9u
YWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4gbV9wZW5kaW5nV2hlZWxFdmVudHNGbHVzaGVk
Q2FsbGJhY2tzUGVyUGFnZTsKKyNlbmRpZgogCiAgICAgdWludDY0X3QgbV9uZXh0RXZhbHVhdGVK
YXZhU2NyaXB0Q2FsbGJhY2tJRCB7IDEgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
SW5zcGVjdG9yOjpBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyOjpFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbkNhbGxiYWNrPj4gbV9ldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbkNh
bGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
Z3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcAppbmRleCAwODQwYThl
NTA0OTUuLjMzMjliZDM1YjliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtWZXJzaW9uaW5n
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTI5Niw0ICsyOTcsMTQgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QKIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lO
VEVSQUNUSU9OUykKIAorI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZVdoZWVsSW50ZXJhY3Rp
b24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb25J
blZpZXdwb3J0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSkKK3sKKyAgICBhdXRvKiB2
aWV3V2lkZ2V0ID0gcmVpbnRlcnByZXRfY2FzdDxXZWJLaXRXZWJWaWV3QmFzZSo+KHBhZ2Uudmll
d1dpZGdldCgpKTsKKyAgICBGbG9hdFNpemUgc2Nyb2xsRGVsdGEoZGVsdGEpOworICAgIHNjcm9s
bERlbHRhLnNjYWxlKDEgLyBzdGF0aWNfY2FzdDxmbG9hdD4oU2Nyb2xsYmFyOjpwaXhlbHNQZXJM
aW5lU3RlcCgpKSk7CisgICAgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudCh2
aWV3V2lkZ2V0LCAtc2Nyb2xsRGVsdGEud2lkdGgoKSwgLXNjcm9sbERlbHRhLmhlaWdodCgpLCBs
b2NhdGlvbkluVmlld3BvcnQueCgpLCBsb2NhdGlvbkluVmlld3BvcnQueSgpLCBXaGVlbEV2ZW50
UGhhc2U6Ok5vUGhhc2UsIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSk7Cit9CisjZW5kaWYgLy8g
RU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi93cGUv
V2ViQXV0b21hdGlvblNlc3Npb25XUEUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Npb25XUEUuY3BwCmluZGV4IDdhM2E1M2U4YWFj
Ny4uOTA2NzcyZjIxMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL3dwZS9XZWJBdXRvbWF0aW9uU2Vzc2lvbldQRS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Npb25XUEUuY3BwCkBA
IC0zMzIsNSArMzMyLDMwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0CiB9CiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAKKyNpZiBFTkFCTEUoV0VC
RFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUykKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBs
YXRmb3JtU2ltdWxhdGVXaGVlbEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBkZWx0YSkKK3sKKyNpZiBXUEVfQ0hFQ0tfVkVSU0lPTigxLCA1LCAwKQorICAgIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc18yZF9ldmVudCBldmVudDsKKyAgICBtZW1zZXQoJmV2ZW50LCAwLCBzaXpl
b2YoZXZlbnQpKTsKKyAgICBldmVudC5iYXNlLnR5cGUgPSBzdGF0aWNfY2FzdDx3cGVfaW5wdXRf
YXhpc19ldmVudF90eXBlPih3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21hc2tfMmQgfCB3cGVf
aW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbl9zbW9vdGgpOworICAgIGV2ZW50LmJhc2UueCA9
IGxvY2F0aW9uSW5WaWV3LngoKTsKKyAgICBldmVudC5iYXNlLnkgPSBsb2NhdGlvbkluVmlldy55
KCk7CisgICAgZXZlbnQueF9heGlzID0gLWRlbHRhLndpZHRoKCk7CisgICAgZXZlbnQueV9heGlz
ID0gLWRlbHRhLmhlaWdodCgpOworICAgIHdwZV92aWV3X2JhY2tlbmRfZGlzcGF0Y2hfYXhpc19l
dmVudChwYWdlLnZpZXdCYWNrZW5kKCksICZldmVudC5iYXNlKTsKKyNlbHNlCisgICAgaWYgKGF1
dG8gZGVsdGFYID0gZGVsdGEud2lkdGgoKSkgeworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4
aXNfZXZlbnQgZXZlbnQgPSB7IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbW90aW9uLCAwLCBs
b2NhdGlvbkluVmlldy54KCksIGxvY2F0aW9uSW5WaWV3LnkoKSwgMSwgLWRlbHRhWCwgMCB9Owor
ICAgICAgICB3cGVfdmlld19iYWNrZW5kX2Rpc3BhdGNoX2F4aXNfZXZlbnQocGFnZS52aWV3QmFj
a2VuZCgpLCAmZXZlbnQpOworICAgIH0KKyAgICBpZiAoYXV0byBkZWx0YVkgPSBkZWx0YS5oZWln
aHQoKSkgeworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgZXZlbnQgPSB7IHdw
ZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbW90aW9uLCAwLCBsb2NhdGlvbkluVmlldy54KCksIGxv
Y2F0aW9uSW5WaWV3LnkoKSwgMCwgLWRlbHRhWSwgMCB9OworICAgICAgICB3cGVfdmlld19iYWNr
ZW5kX2Rpc3BhdGNoX2F4aXNfZXZlbnQocGFnZS52aWV3QmFja2VuZCgpLCAmZXZlbnQpOworICAg
IH0KKyNlbmRpZgorfQorI2VuZGlmIC8vIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJ
T05TKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggZGY0ZmJmNjRiZTc2Li5hMzM0MDdjMzMxNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjQ5NCw2ICs2NDk0LDExIEBA
IGJvb2wgV2ViUGFnZVByb3h5Ojppc1Byb2Nlc3NpbmdNb3VzZUV2ZW50cygpIGNvbnN0CiAgICAg
cmV0dXJuICFtX21vdXNlRXZlbnRRdWV1ZS5pc0VtcHR5KCk7CiB9CiAKK2Jvb2wgV2ViUGFnZVBy
b3h5Ojppc1Byb2Nlc3NpbmdXaGVlbEV2ZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3do
ZWVsRXZlbnRRdWV1ZS5pc0VtcHR5KCk7Cit9CisKIE5hdGl2ZVdlYk1vdXNlRXZlbnQqIFdlYlBh
Z2VQcm94eTo6Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKQogewogICAgIC8vIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MDQ+IFdlIG5lZWQgdG8g
a2VlcCB0cmFjayBvZiB0aGUgbW91c2UgZG93biBldmVudCBpbiB0aGUgY2FzZSB3aGVyZSB3ZQpA
QCAtNzAxMiw2ICs3MDE3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCh1
aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRsZWQpCiAKICAgICAgICAgaWYgKCFtX3doZWVs
RXZlbnRRdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVs
RXZlbnQoKTsKKyAgICAgICAgZWxzZSBpZiAoYXV0byogYXV0b21hdGlvblNlc3Npb24gPSBwcm9j
ZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRvbWF0aW9uU2Vzc2lvbigpKQorICAgICAgICAgICAgYXV0
b21hdGlvblNlc3Npb24tPndoZWVsRXZlbnRzRmx1c2hlZEZvclBhZ2UoKnRoaXMpOworCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBlNDdjYjVlNDFmMzkuLmI5MzM2OTAxMTg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTk0MCw2ICs5NDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRG
aW5pc2hQcm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCk7CiAgICAgdm9pZCBmbHVzaFBl
bmRpbmdNb3VzZUV2ZW50Q2FsbGJhY2tzKCk7CiAKKyAgICBib29sIGlzUHJvY2Vzc2luZ1doZWVs
RXZlbnRzKCkgY29uc3Q7CiAgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdl
YldoZWVsRXZlbnQmKTsKIAogICAgIGJvb2wgaXNQcm9jZXNzaW5nS2V5Ym9hcmRFdmVudHMoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY29uZmlnLmggYi9Tb3VyY2UvV2ViS2l0
L2NvbmZpZy5oCmluZGV4IDg3NDhhNGUxZGE0MS4uZWUzYzAzYTVlNGU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKQEAgLTYw
LDcgKzYwLDcgQEAKICNkZWZpbmUgVVNFX0NSRURFTlRJQUxfU1RPUkFHRV9XSVRIX05FVFdPUktf
U0VTU0lPTiAxCiAjZW5kaWYKIAotLy8gRU5BQkxFX1dFQkRSSVZFUl9BQ1RJT05TX0FQSSByZXBy
ZXNlbnRzIHdoZXRoZXIgbW91c2UsIGtleWJvYXJkIG9yIHRvdWNoIGludGVyYWN0aW9ucyBhcmUg
ZGVmaW5lZAotI2lmIEVOQUJMRShXRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSB8fCBFTkFC
TEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgfHwgRU5BQkxFKFdFQkRSSVZFUl9U
T1VDSF9JTlRFUkFDVElPTlMpCisvLyBFTkFCTEVfV0VCRFJJVkVSX0FDVElPTlNfQVBJIHJlcHJl
c2VudHMgd2hldGhlciBtb3VzZSwga2V5Ym9hcmQsIHRvdWNoIG9yIHdoZWVsIGludGVyYWN0aW9u
cyBhcmUgZGVmaW5lZAorI2lmIEVOQUJMRShXRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSB8
fCBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgfHwgRU5BQkxFKFdFQkRS
SVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpIHx8IEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJB
Q1RJT05TKQogI2RlZmluZSBFTkFCTEVfV0VCRFJJVkVSX0FDVElPTlNfQVBJIDEKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0dUSy5jbWFrZQppbmRleCA3NGYwYzllOGM3NmQuLmRmZDBlZDI1MTA1NSAxMDA2NDQK
LS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09w
dGlvbnNHVEsuY21ha2UKQEAgLTI5MCw2ICsyOTAsNyBAQCBpZiAoRU5BQkxFX1dFQkRSSVZFUikK
ICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lO
VEVSQUNUSU9OUyBPTikKICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfV0VCRFJJ
VkVSX01PVVNFX0lOVEVSQUNUSU9OUyBPTikKICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChF
TkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUyBPRkYpCisgICAgU0VUX0FORF9FWFBP
U0VfVE9fQlVJTEQoRU5BQkxFX1dFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMgT04pCiBlbmRp
ZiAoKQogCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJVRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtl
L09wdGlvbnNXUEUuY21ha2UKaW5kZXggNjQ2NmJkYTYzNzg1Li40OGQ2N2IzZDJkODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlCkBAIC0xNzAsNiArMTcwLDcgQEAgaWYgKEVOQUJMRV9XRUJEUklWRVIp
CiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9J
TlRFUkFDVElPTlMgT04pCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX1dFQkRS
SVZFUl9NT1VTRV9JTlRFUkFDVElPTlMgT04pCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQo
RU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMgT0ZGKQorICAgIFNFVF9BTkRfRVhQ
T1NFX1RPX0JVSUxEKEVOQUJMRV9XRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TIE9OKQogZW5k
aWYgKCkKIAogaWYgKEVOQUJMRV9YU0xUKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktp
dEZlYXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4
IGNiYWRhY2QxMDcwYi4uMWIzYjc1NzZiMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtl
CkBAIC0yMjEsNiArMjIxLDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUyAi
VG9nZ2xlIFdlYkRyaXZlciBrZXlib2FyZCBpbnRlcmFjdGlvbnMiIFBSSVZBVEUgT0ZGKQogICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05T
ICJUb2dnbGUgV2ViRHJpdmVyIG1vdXNlIGludGVyYWN0aW9ucyIgUFJJVkFURSBPRkYpCiAgICAg
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMg
IlRvZ2dsZSBXZWJEcml2ZXIgdG91Y2ggaW50ZXJhY3Rpb25zIiBQUklWQVRFIE9GRikKKyAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUyAi
VG9nZ2xlIFdlYkRyaXZlciB3aGVlbCBpbnRlcmFjdGlvbnMiIFBSSVZBVEUgT0ZGKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9XRUJHTCAiVG9nZ2xlIFdlYkdMIHN1cHBvcnQiIFBS
SVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQkdMMiAiVG9nZ2xl
IFdlYkdMMiBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfV0VCR1BVICJUb2dnbGUgV2ViR1BVIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZmODJjYWQyMmY4
Ni4uNTVmZGRhMTA4MWJjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMDggIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYkRyaXZlcjogYWRkIHN1cHBv
cnQgZm9yIHdoZWVsIGFjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCB3ZWJkcml2ZXItd2hlZWwtaW50ZXJhY3Rpb25zIG9wdGlvbi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAyMC0xMC0w
NyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjY4MTIzKTogWyBpT1MgXSA0IFRlc3RXZWJLaXRBUEkuV2ViS2l0TGVnYWN5IGZhaWx1
cmVzOiBGaWxlIG5hbWUgdW5hdmFpbGFibGUuIFVua25vd24gQysrIGV4Y2VwdGlvbiB0aHJvd24g
aW4gdGhlIHRlc3QgYm9keS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9G
ZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpp
bmRleCA0MjQ5OGM5ODc1NjcuLjU2OGQ1MGJhNjY5NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbQpAQCAtMTgzLDYgKzE4Myw3IEBAIG15ICgKICAgICAkd2ViZHJpdmVy
TW91c2VJbnRlcmFjdGlvbnNTdXBwb3J0LAogICAgICR3ZWJkcml2ZXJTdXBwb3J0LAogICAgICR3
ZWJkcml2ZXJUb3VjaEludGVyYWN0aW9uc1N1cHBvcnQsCisgICAgJHdlYmRyaXZlcldoZWVsSW50
ZXJhY3Rpb25zU3VwcG9ydCwKICAgICAkd2ViZ2wyU3VwcG9ydCwKICAgICAkd2ViZ2xTdXBwb3J0
LAogICAgICR3ZWJncHVTdXBwb3J0LApAQCAtNTU3LDYgKzU1OCw5IEBAIG15IEBmZWF0dXJlcyA9
ICgKICAgICB7IG9wdGlvbiA9PiAid2ViZHJpdmVyLXRvdWNoLWludGVyYWN0aW9ucyIsIGRlc2Mg
PT4gIlRvZ2dsZSBXZWJEcml2ZXIgdG91Y2ggaW50ZXJhY3Rpb25zIiwKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMiLCB2YWx1ZSA9PiBcJHdlYmRy
aXZlclRvdWNoSW50ZXJhY3Rpb25zU3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gIndlYmRy
aXZlci13aGVlbC1pbnRlcmFjdGlvbnMiLCBkZXNjID0+ICJUb2dnbGUgV2ViRHJpdmVyIHdoZWVs
IGludGVyYWN0aW9ucyIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJEUklWRVJfV0hFRUxf
SU5URVJBQ1RJT05TIiwgdmFsdWUgPT4gXCR3ZWJkcml2ZXJXaGVlbEludGVyYWN0aW9uc1N1cHBv
cnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBz
dXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgdmFsdWUgPT4gXCR3ZWJn
bFN1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2Vi
RHJpdmVyVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVkZGMzZTkzODRmYi4uNDE2YTM2OTYxZTI2IDEw
MDY0NAotLS0gYS9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cKKysrIGIvV2ViRHJpdmVyVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMDggIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYkRyaXZlcjogYWRkIHN1cHBv
cnQgZm9yIHdoZWVsIGFjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbnMgZm9yIHdoZWVsIGFjdGlvbnMgdGVzdC4K
KworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnMuanNvbjoKKwogMjAyMC0xMC0wMiAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBHYXJkZW5pbmcuIFJlbW92ZSBleHBlY3RhdGlvbnMgZm9yIHRlc3RzIGZpeGVkIGluIHIyNjc4
NzIKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbiBiL1dl
YkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgppbmRleCA3MjIxNjBkNzFiMGQuLjc0
ZmRjMjA5M2MzZSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvVGVzdEV4cGVjdGF0aW9ucy5q
c29uCisrKyBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgpAQCAtMzg2LDkg
KzM4Niw2IEBACiAgICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvcGVyZm9ybV9hY3Rp
b25zL2tleV9zcGVjaWFsX2tleXMucHkiOiB7CiAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjog
eyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY3In19CiAgICAg
fSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9wZXJmb3JtX2FjdGlvbnMvd2hl
ZWwucHkiOiB7Ci0gICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjE3MTc0In19Ci0gICAgfSwKICAgICAiaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5kb3cvdXNlcl9wcm9tcHRzLnB5IjogewogICAg
ICAgICAic3VidGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF9oYW5kbGVfcHJvbXB0X2FjY2Vw
dCI6IHsK
</data>
<flag name="review"
          id="426878"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411972</attachid>
            <date>2020-10-21 04:52:51 -0700</date>
            <delta_ts>2020-10-21 04:52:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wd-wheel-events.diff</filename>
            <type>text/plain</type>
            <size>45981</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5MGM2ZDE1YzE1NjUuLjQ1
YzYzY2FmMGJlYiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGFkZCBzdXBwb3J0IGZvciB3aGVlbCBhY3Rp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcx
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIEVuYWJsZSBX
RUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TIGZvciBHVEsgYW5kIFdQRSBwb3J0cy4KKworICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9j
bWFrZS9PcHRpb25zV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZToKKwogMjAyMC0xMC0yMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBNb3ZlIEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcg
YnVpbGQgb3B0aW9uIHRvIHJpZ2h0IHBsYWNlIGluIE9wdGlvbnNHVEsuY21ha2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvQWN0aW9ucy5oIGIvU291cmNlL1dlYkRyaXZlci9BY3Rpb25z
LmgKaW5kZXggNjcxZjRhMjEwZjc5Li4zMDI0ZjJkMDBjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvQWN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQWN0aW9ucy5oCkBAIC0z
Myw3ICszMyw3IEBAIGVudW0gY2xhc3MgTW91c2VCdXR0b24geyBOb25lLCBMZWZ0LCBNaWRkbGUs
IFJpZ2h0IH07CiBlbnVtIGNsYXNzIFBvaW50ZXJUeXBlIHsgTW91c2UsIFBlbiwgVG91Y2ggfTsK
IAogc3RydWN0IElucHV0U291cmNlIHsKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25lLCBLZXks
IFBvaW50ZXIgfTsKKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25lLCBLZXksIFBvaW50ZXIsIFdo
ZWVsIH07CiAKICAgICBUeXBlIHR5cGU7CiAgICAgT3B0aW9uYWw8UG9pbnRlclR5cGU+IHBvaW50
ZXJUeXBlOwpAQCAtNTEsOCArNTEsOCBAQCBzdHJ1Y3QgUG9pbnRlck9yaWdpbiB7CiB9OwogCiBz
dHJ1Y3QgQWN0aW9uIHsKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25lLCBLZXksIFBvaW50ZXIg
fTsKLSAgICBlbnVtIGNsYXNzIFN1YnR5cGUgeyBQYXVzZSwgUG9pbnRlclVwLCBQb2ludGVyRG93
biwgUG9pbnRlck1vdmUsIFBvaW50ZXJDYW5jZWwsIEtleVVwLCBLZXlEb3duIH07CisgICAgZW51
bSBjbGFzcyBUeXBlIHsgTm9uZSwgS2V5LCBQb2ludGVyLCBXaGVlbCB9OworICAgIGVudW0gY2xh
c3MgU3VidHlwZSB7IFBhdXNlLCBQb2ludGVyVXAsIFBvaW50ZXJEb3duLCBQb2ludGVyTW92ZSwg
UG9pbnRlckNhbmNlbCwgS2V5VXAsIEtleURvd24sIFNjcm9sbCB9OwogCiAgICAgQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIFR5cGUgdHlwZSwgU3VidHlwZSBzdWJ0eXBlKQogICAgICAgICA6IGlk
KGlkKQpAQCAtNzEsNiArNzEsOCBAQCBzdHJ1Y3QgQWN0aW9uIHsKICAgICBPcHRpb25hbDxQb2lu
dGVyT3JpZ2luPiBvcmlnaW47CiAgICAgT3B0aW9uYWw8aW50NjRfdD4geDsKICAgICBPcHRpb25h
bDxpbnQ2NF90PiB5OworICAgIE9wdGlvbmFsPGludDY0X3Q+IGRlbHRhWDsKKyAgICBPcHRpb25h
bDxpbnQ2NF90PiBkZWx0YVk7CiAKICAgICBPcHRpb25hbDxTdHJpbmc+IGtleTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCmluZGV4IDQxMWQyNTUxNDQyNC4uODNiNGNjYTNlZDEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGFkZCBzdXBwb3J0IGZvciB3aGVl
bCBhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTcxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIEhh
bmRsZSB3aGVlbCBhY3Rpb25zLgorCisgICAgICAgICogQWN0aW9ucy5oOgorICAgICAgICAqIFNl
c3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjphdXRvbWF0aW9uU291cmNlVHlwZSk6IEhh
bmRsZSBJbnB1dFNvdXJjZTo6VHlwZTo6V2hlZWwuCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBlcmZvcm1BY3Rpb25zKTogSGFuZGxlIEFjdGlvbjo6VHlwZTo6V2hlZWwuCisgICAgICAg
ICogV2ViRHJpdmVyU2VydmljZS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlB
Y3Rpb24pOiBBc3NlcnQgaWYgQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGwuCisgICAgICAgIChXZWJE
cml2ZXI6OnByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbik6IE1vdmUgdGhpcyBjb2RlIHRvIGEgaGVs
cGVyIHRvIGJlIHVzZWQgYnkgYm90aCBwb2ludGVyIG1vdmUgYW5kIHNjcm9sbCBhY3Rpb25zLgor
ICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFjdGlvbik6IFVzZSBwcm9jZXNzUG9p
bnRlck1vdmVBY3Rpb24oKS4KKyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1doZWVsQWN0aW9u
KTogQ2FsbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oKSBhbmQgcHJvY2VzcyB0aGUgc2Nyb2xs
IGRlbHRhIHRvby4KKyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVu
Y2UpOiBIYW5kbGUgSW5wdXRTb3VyY2U6OlR5cGU6OldoZWVsLgorCiAyMDIwLTEwLTIwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2
ZXI6IGFkZCBzdXBwb3J0IGZvciByaWdodCB2YXJpYXRpb25zIG9mIHZpcnR1YWwga2V5cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAKaW5kZXggMzMzNWRhNTIwMDdiLi5mZTFjY2NhMjNiM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcApAQCAtMjYxOSw2ICsyNjE5LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIGF1dG9tYXRp
b25Tb3VyY2VUeXBlKElucHV0U291cmNlOjpUeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiAiTW91
c2UiOwogICAgIGNhc2UgSW5wdXRTb3VyY2U6OlR5cGU6OktleToKICAgICAgICAgcmV0dXJuICJL
ZXlib2FyZCI7CisgICAgY2FzZSBJbnB1dFNvdXJjZTo6VHlwZTo6V2hlZWw6CisgICAgICAgIHJl
dHVybiAiV2hlZWwiOwogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQpAQCAtMjcwOSw2ICsyNzExLDcgQEAgdm9pZCBTZXNzaW9uOjpwZXJmb3JtQWN0aW9ucyhWZWN0
b3I8VmVjdG9yPEFjdGlvbj4+JiYgYWN0aW9uc0J5VGljaywgRnVuY3Rpb248dm8KICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6S2V5VXA6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOgorICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6U2Ny
b2xsOgogICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZS5w
cmVzc2VkQnV0dG9uKQpAQCAtMjc0Myw2ICsyNzQ2LDcgQEAgdm9pZCBTZXNzaW9uOjpwZXJmb3Jt
QWN0aW9ucyhWZWN0b3I8VmVjdG9yPEFjdGlvbj4+JiYgYWN0aW9uc0J5VGljaywgRnVuY3Rpb248
dm8KICAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3du
OgogICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlck1vdmU6
CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2Vs
OgorICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOgogICAg
ICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZS5wcmVzc2VkS2V5
KQpAQCAtMjc1NSw2ICsyNzU5LDM2IEBAIHZvaWQgU2Vzc2lvbjo6cGVyZm9ybUFjdGlvbnMoVmVj
dG9yPFZlY3RvcjxBY3Rpb24+PiYmIGFjdGlvbnNCeVRpY2ssIEZ1bmN0aW9uPHZvCiAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS0+c2V0QXJyYXkoInByZXNzZWRWaXJ0dWFsS2V5cyJfcywg
V1RGTW92ZSh2aXJ0dWFsS2V5cykpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uOjpUeXBlOjpXaGVl
bDoKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24uc3VidHlwZSkgeworICAgICAg
ICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0ZS0+c2V0U3RyaW5nKCJvcmlnaW4iX3MsIGF1dG9tYXRpb25Pcmln
aW5UeXBlKGFjdGlvbi5vcmlnaW4tPnR5cGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gbG9jYXRpb24gPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb24tPnNldEludGVnZXIoIngiX3MsIGFjdGlvbi54LnZhbHVlKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24tPnNldEludGVnZXIoInkiX3MsIGFjdGlvbi55
LnZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnNldE9iamVjdCgibG9j
YXRpb24iX3MsIFdURk1vdmUobG9jYXRpb24pKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBkZWx0YSA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBkZWx0YS0+c2V0SW50ZWdlcigid2lkdGgiX3MsIGFjdGlvbi5kZWx0YVgudmFsdWUoKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBkZWx0YS0+c2V0SW50ZWdlcigiaGVpZ2h0Il9zLCBh
Y3Rpb24uZGVsdGFZLnZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnNl
dE9iamVjdCgiZGVsdGEiX3MsIFdURk1vdmUoZGVsdGEpKTsKKworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGFjdGlvbi5vcmlnaW4tPnR5cGUgPT0gUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxl
bWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c2V0U3RyaW5nKCJub2Rl
SGFuZGxlIl9zLCBhY3Rpb24ub3JpZ2luLT5lbGVtZW50SUQudmFsdWUoKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBGQUxMVEhST1VHSDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UGF1c2U6CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoYWN0aW9uLmR1cmF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRlLT5zZXREb3VibGUoImR1cmF0aW9uIl9zLCBhY3Rpb24uZHVyYXRpb24udmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJVcDoKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOgorICAgICAgICAgICAgICAgICAgICBjYXNl
IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlck1vdmU6CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOgorICAgICAgICAgICAgICAgICAgICBjYXNl
IEFjdGlvbjo6U3VidHlwZTo6S2V5VXA6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9u
OjpTdWJ0eXBlOjpLZXlEb3duOgorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgc3RhdGVzLT5wdXNoT2JqZWN0KFdURk1vdmUoc3RhdGUpKTsKICAgICAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAg
Yi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDI5NDQ5ZjVmZjFl
NC4uOGI3OWFhZTRhZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNl
cnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAg
LTE5MDksNiArMTkwOSw3IEBAIHN0YXRpYyBPcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhY3Rpb25JCiAgICAgY2FzZSBBY3Rp
b246OlN1YnR5cGU6OlBvaW50ZXJEb3duOgogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2lu
dGVyTW92ZToKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNlbDoKKyAgICBj
YXNlIEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CiAKQEAgLTE5MzEsNiArMTkzMiw2MCBAQCBzdGF0aWMgTW91c2VCdXR0b24gYWN0
aW9uTW91c2VCdXR0b24odW5zaWduZWQgYnV0dG9uKQogICAgIHJldHVybiBNb3VzZUJ1dHRvbjo6
Tm9uZTsKIH0KIAorc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9i
amVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIE9wdGlvbmFsPFN0cmluZz4mIGVycm9y
TWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgiZHVyYXRpb24iX3MpKSB7CisgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZh
bHVlKCpkdXJhdGlvblZhbHVlKTsKKyAgICAgICAgaWYgKCFkdXJhdGlvbikgeworICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOworICAgIH0KKworICAg
IGlmIChhdXRvIG9yaWdpblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgib3JpZ2luIl9zKSkg
eworICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1ZS0+YXNPYmplY3Qo
KSkgeworICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmlu
ZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIGlmICghZWxl
bWVudElEKSB7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rp
b24iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5
cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
YXV0byBvcmlnaW4gPSBvcmlnaW5WYWx1ZS0+YXNTdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChv
cmlnaW4gPT0gInZpZXdwb3J0IikKKyAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9p
bnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlZpZXdwb3J0LCBXVEY6Om51bGxvcHQg
fTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCisgICAgICAgICAg
ICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBl
OjpQb2ludGVyLCBXVEY6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBp
bnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBhY3Rpb24ub3JpZ2luID0g
UG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlZpZXdwb3J0LCBXVEY6Om51bGxv
cHQgfTsKKworICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3Mp
KSB7CisgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9N
SU4pOworICAgICAgICBpZiAoIXgpIHsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7
CisgICAgfQorCisgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJf
cykpIHsKKyAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5U
X01JTik7CisgICAgICAgIGlmICgheSkgeworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUo
KTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIE9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgT3B0aW9uYWw8U3RyaW5n
PiYgZXJyb3JNZXNzYWdlKQogewogICAgIEFjdGlvbjo6U3VidHlwZSBhY3Rpb25TdWJ0eXBlOwpA
QCAtMTk3Myw2MSArMjAyOCw2OSBAQCBzdGF0aWMgT3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9p
bnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW1ldGVycwogICAgICAgICBh
Y3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwogICAgICAg
ICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJNb3ZlOiB7
Ci0gICAgICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJk
dXJhdGlvbiJfcykpIHsKLSAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVl
KCpkdXJhdGlvblZhbHVlKTsKLSAgICAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBp
cyBpbnZhbGlkIGluIHBvaW50ZXIgbW92ZSBhY3Rpb24iKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYWN0aW9uLmR1cmF0
aW9uID0gZHVyYXRpb24udmFsdWUoKTsKLSAgICAgICAgfQorICAgIGNhc2UgQWN0aW9uOjpTdWJ0
eXBlOjpQb2ludGVyTW92ZToKKyAgICAgICAgaWYgKCFwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24o
YWN0aW9uSXRlbSwgYWN0aW9uLCBlcnJvck1lc3NhZ2UpKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBv
aW50ZXJDYW5jZWw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpL
ZXlVcDoKKyAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjoKKyAgICBjYXNlIEFjdGlv
bjo6U3VidHlwZTo6U2Nyb2xsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CiAKLSAgICAgICAgaWYgKGF1dG8gb3JpZ2luVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJv
cmlnaW4iX3MpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5W
YWx1ZS0+YXNPYmplY3QoKSkgewotICAgICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3Jp
Z2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlk
IHdlYiBlbGVtZW50IG9iamVjdCBpbiBwb2ludGVyIG1vdmUgYWN0aW9uIik7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6
VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGF1dG8gb3JpZ2luID0gb3JpZ2luVmFsdWUtPmFzU3RyaW5nKCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKG9yaWdpbiA9PSAidmlld3BvcnQiKQotICAgICAgICAgICAgICAgICAgICBh
Y3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlZpZXdw
b3J0LCBXVEY6Om51bGxvcHQgfTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0g
InBvaW50ZXIiKQotICAgICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9y
aWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIFdURjo6bnVsbG9wdCB9OwotICAg
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBwb2ludGVyIG1vdmUg
YWN0aW9uIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6Vmll
d3BvcnQsIFdURjo6bnVsbG9wdCB9OworICAgIHJldHVybiBhY3Rpb247Cit9CisKK3N0YXRpYyBP
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09O
OjpPYmplY3QmIGFjdGlvbkl0ZW0sIE9wdGlvbmFsPFN0cmluZz4mIGVycm9yTWVzc2FnZSkKK3sK
KyAgICBBY3Rpb246OlN1YnR5cGUgYWN0aW9uU3VidHlwZTsKKyAgICBhdXRvIHN1YnR5cGUgPSBh
Y3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CisgICAgaWYgKHN1YnR5cGUgPT0gInBhdXNl
IikKKyAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UGF1c2U7CisgICAg
ZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKKyAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFj
dGlvbjo6U3VidHlwZTo6U2Nyb2xsOworICAgIGVsc2UgeworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlk
Iik7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQogCi0gICAgICAgIGlmIChh
dXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7Ci0gICAgICAgICAgICBh
dXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlOKTsKLSAgICAgICAg
ICAgIGlmICgheCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgcG9pbnRlciBtb3ZlIGFjdGlvbiIpOworICAg
IEFjdGlvbiBhY3Rpb24oaWQsIEFjdGlvbjo6VHlwZTo6V2hlZWwsIGFjdGlvblN1YnR5cGUpOwor
CisgICAgc3dpdGNoIChhY3Rpb25TdWJ0eXBlKSB7CisgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6
OlBhdXNlOgorICAgICAgICBpZiAoIXByb2Nlc3NQYXVzZUFjdGlvbihhY3Rpb25JdGVtLCBhY3Rp
b24sIGVycm9yTWVzc2FnZSkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOgorICAgICAgICBp
ZiAoIXByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihhY3Rpb25JdGVtLCBhY3Rpb24sIGVycm9yTWVz
c2FnZSkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIGlmIChh
dXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFYIl9zKSkgeworICAg
ICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUs
IElOVF9NSU4pOworICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKKyAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBm
b3IgYWN0aW9uIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGFjdGlvbi54ID0geC52YWx1ZSgpOworICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKLSAgICAgICAgICAg
IGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4pOwotICAgICAg
ICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIG1vdmUgYWN0aW9uIik7Cisg
ICAgICAgIGlmIChhdXRvIGRlbHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZ
Il9zKSkgeworICAgICAgICAgICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFZVmFsdWUsIElOVF9NSU4pOworICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKKyAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwor
ICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwogICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNh
bmNlbDoKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleVVwOgog
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOgorICAgIGNhc2UgQWN0aW9uOjpTdWJ0
eXBlOjpQb2ludGVyVXA6CisgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOgor
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyTW92ZToKKyAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckNhbmNlbDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgfQogCkBAIC0yMDgwLDYgKzIxNDMsOCBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPEFjdGlv
bj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24sIEpTTwogICAg
ICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6S2V5OwogICAgIGVsc2Ug
aWYgKHR5cGUgPT0gInBvaW50ZXIiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNv
dXJjZTo6VHlwZTo6UG9pbnRlcjsKKyAgICBlbHNlIGlmICh0eXBlID09ICJ3aGVlbCIpCisgICAg
ICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpXaGVlbDsKICAgICBlbHNl
IGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3Vy
Y2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7CkBAIC0yMTM2LDYgKzIyMDEsOCBAQCBzdGF0aWMg
T3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24sIEpTTwogICAgICAgICAgICAgYWN0aW9uID0gcHJvY2Vzc0tleUFjdGlvbihp
ZCwgKmFjdGlvbkl0ZW0sIGVycm9yTWVzc2FnZSk7CiAgICAgICAgIGVsc2UgaWYgKGlucHV0U291
cmNlVHlwZSA9PSBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlcikKICAgICAgICAgICAgIGFjdGlv
biA9IHByb2Nlc3NQb2ludGVyQWN0aW9uKGlkLCBwYXJhbWV0ZXJzLnZhbHVlKCksICphY3Rpb25J
dGVtLCBlcnJvck1lc3NhZ2UpOworICAgICAgICBlbHNlIGlmIChpbnB1dFNvdXJjZVR5cGUgPT0g
SW5wdXRTb3VyY2U6OlR5cGU6OldoZWVsKQorICAgICAgICAgICAgYWN0aW9uID0gcHJvY2Vzc1do
ZWVsQWN0aW9uKGlkLCAqYWN0aW9uSXRlbSwgZXJyb3JNZXNzYWdlKTsKICAgICAgICAgaWYgKCFh
Y3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY0
OWI5ZGM0YThlNi4uZjA1ZWRjYjRjZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIw
LTEwLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAg
ICAgICBXZWJEcml2ZXI6IGFkZCBzdXBwb3J0IGZvciB3aGVlbCBhY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcxNzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24v
QXV0b21hdGlvbi5qc29uOiBBZGQgc2Nyb2xsIGRlbHRhIHRvIGFjdGlvbiBzdGF0ZS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTaW11bGF0ZWRJbnB1dFNvdXJjZVN0YXRlOjplbXB0eVN0YXRlRm9y
U291cmNlVHlwZSk6IEluaXRpYWxpemUgc2Nyb2xsRGVsdGEgZm9yIHdoZWVsIGFjdGlvbnMuCisg
ICAgICAgIChXZWJLaXQ6OlNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6dHJhbnNpdGlvbklucHV0
U291cmNlVG9TdGF0ZSk6IEhhbmRsZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6OldoZWVsLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OldlYkF1dG9tYXRpb25T
ZXNzaW9uKTogQWRkIFNpbXVsYXRlZElucHV0U291cmNlVHlwZTo6V2hlZWwuCisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp0ZXJtaW5hdGUpOiBIYW5kbGUgcGVuZGluZyB3
aGVlbCBldmVudHMuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3aWxs
U2hvd0phdmFTY3JpcHREaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OndoZWVsRXZlbnRzRmx1c2hlZEZvclBhZ2UpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndpbGxDbG9zZVBhZ2UpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmlzU2ltdWxhdGluZ1VzZXJJbnRl
cmFjdGlvbiBjb25zdCk6IFJldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHdoZWVsIGV2
ZW50cyB0b28uCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0
ZVdoZWVsSW50ZXJhY3Rpb24pOiBIYW5kbGUgdGhlIHdoZWVsIGFjdGlvbi4KKyAgICAgICAgKFdl
YktpdDo6c2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlRnJvbVByb3RvY29sU291cmNlVHlwZSk6IEhh
bmRsZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpJbnB1dFNvdXJjZVR5cGU6Oldo
ZWVsLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGVyZm9ybUludGVy
YWN0aW9uU2VxdWVuY2UpOiBJbml0aWFsaXplIHRoZSBzY3JvbGwgZGVsdGEgZm9yIHdoZWVsIGFj
dGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vz
c2lvbkd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlV2hlZWxJbnRlcmFjdGlvbik6IFN5bnRoZXNpemUgYSB3aGVlbCBldmVudC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Npb25X
UEUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1T
aW11bGF0ZVdoZWVsSW50ZXJhY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1Byb2Nlc3Np
bmdXaGVlbEV2ZW50cyBjb25zdCk6IFJldHVybiB3aGV0aGVyIHBhZ2UgaGFzIHBlbmRpbmcgd2hl
ZWwgZXZlbnRzLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVFdmVu
dCk6IE5vdGlmeSBhdXRvbWF0aW9uIHRoYXQgcGVuZGluZyB3aGVlbCBldmVudHMgaGF2ZSBiZWVu
IHByb2Nlc3NlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogY29uZmlnLmg6CisKIDIwMjAtMTAtMjAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIFNvbWUgV2ViQXVkaW8gbGF5b3V0
IHRlc3RzIGdlbmVyYXRlIHN0cmFuZ2Ugbm9pc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IGY5ZDA4ZGFiMDExMC4uMmU4
YjhlMzk0NTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L0F1dG9tYXRpb24uanNvbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L0F1dG9tYXRpb24uanNvbgpAQCAtMjg5LDcgKzI4OSw4IEBACiAgICAgICAgICAgICAgICAgIk51
bGwiLAogICAgICAgICAgICAgICAgICJNb3VzZSIsCiAgICAgICAgICAgICAgICAgIktleWJvYXJk
IiwKLSAgICAgICAgICAgICAgICAiVG91Y2giCisgICAgICAgICAgICAgICAgIlRvdWNoIiwKKyAg
ICAgICAgICAgICAgICAiV2hlZWwiCiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAg
IHsKQEAgLTMyNyw5ICszMjgsMTAgQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByZXNz
ZWRDaGFyS2V5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIkZvciAna2V5Ym9hcmQnIGlucHV0IHNvdXJjZXMsIHNwZWNpZmllcyBhIGNoYXJhY3Rl
ciBrZXkgdGhhdCBoYXMgJ3ByZXNzZWQnIHN0YXRlLiBVbm1lbnRpb25lZCBjaGFyYWN0ZXIga2V5
cyBhcmUgYXNzdW1lZCB0byBoYXZlIGEgJ3JlbGVhc2VkJyBzdGF0ZS4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcmVzc2VkVmlydHVhbEtleXMiLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiVmlydHVhbEtleSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIkZvciAna2V5Ym9hcmQnIGlucHV0IHNvdXJjZXMsIHNwZWNpZmllcyB2aXJ0dWFs
IGtleXMgdGhhdCBoYXZlIGEgJ3ByZXNzZWQnIHN0YXRlLiBVbm1lbnRpb25lZCB2aXJ0dWFsIGtl
eXMgYXJlIGFzc3VtZWQgdG8gaGF2ZSBhICdyZWxlYXNlZCcgc3RhdGUuIiB9LAogICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicHJlc3NlZEJ1dHRvbiIsICIkcmVmIjogIk1vdXNlQnV0dG9uIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZvciAnbW91c2UnIGlucHV0IHNvdXJj
ZXMsIHNwZWNpZmllcyB3aGljaCBtb3VzZSBidXR0b24gaGFzIGEgJ3ByZXNzZWQnIHN0YXRlLiBV
bm1lbnRpb25lZCBtb3VzZSBidXR0b25zIGFyZSBhc3N1bWVkIHRvIGhhdmUgYSAncmVsZWFzZWQn
IHN0YXRlLiBGb3IgJ3RvdWNoJyBpbnB1dCBzb3VyY2VzLCBwYXNzaW5nIE1vdXNlQnV0dG9uOjpM
ZWZ0IGRlbm90ZXMgYSB0b3VjaC1kb3duIHN0YXRlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm9yaWdpbiIsICIkcmVmIjogIk1vdXNlTW92ZU9yaWdpbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJGb3IgJ21vdXNlJyBpbnB1dCBzb3VyY2VzLCBzcGVjaWZpZXMg
dGhlIG9yaWdpbiB0eXBlIG9mIGEgbW91c2UgbW92ZSB0cmFuc2l0aW9uLiBEZWZhdWx0cyB0byAn
Vmlld3BvcnQnIGlmIG9taXR0ZWQuIn0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmln
aW4iLCAiJHJlZiI6ICJNb3VzZU1vdmVPcmlnaW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiRm9yICdtb3VzZScgb3IgJ3doZWVsJyBpbnB1dCBzb3VyY2VzLCBzcGVjaWZpZXMg
dGhlIG9yaWdpbiB0eXBlIG9mIGEgbW91c2UgbW92ZSB0cmFuc2l0aW9uLiBEZWZhdWx0cyB0byAn
Vmlld3BvcnQnIGlmIG9taXR0ZWQuIn0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2Rl
SGFuZGxlIiwgIiRyZWYiOiAiTm9kZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJUaGUgaGFuZGxlIG9mIHRoZSBlbGVtZW50IHRvIHVzZSBhcyBvcmlnaW4gd2hlbiBv
cmlnaW4gdHlwZSBpcyAnRWxlbWVudCcuIn0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJs
b2NhdGlvbiIsICIkcmVmIjogIlBvaW50IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkZvciAnbW91c2UnIG9yICd0b3VjaCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIGEgbG9j
YXRpb24gaW4gdmlldyBjb29yZGluYXRlcyB0byB3aGljaCB0aGUgaW5wdXQgc291cmNlIHNob3Vs
ZCB0cmFuc2l0aW9uLiBUcmFuc2l0aW9uaW5nIHRvIHRoaXMgc3RhdGUgbWF5IGludGVycG9sYXRl
IGludGVtZWRpYXRlIGlucHV0IHNvdXJjZSBzdGF0ZXMgdG8gYmV0dGVyIHNpbXVsYXRlIHJlYWwg
dXNlciBtb3ZlbWVudHMgYW5kIGdlc3R1cmVzLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImxvY2F0aW9uIiwgIiRyZWYiOiAiUG9pbnQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiRm9yICdtb3VzZScsICd3aGVlbCcgb3IgJ3RvdWNoJyBpbnB1dCBzb3VyY2VzLCBz
cGVjaWZpZXMgYSBsb2NhdGlvbiBpbiB2aWV3IGNvb3JkaW5hdGVzIHRvIHdoaWNoIHRoZSBpbnB1
dCBzb3VyY2Ugc2hvdWxkIHRyYW5zaXRpb24uIFRyYW5zaXRpb25pbmcgdG8gdGhpcyBzdGF0ZSBt
YXkgaW50ZXJwb2xhdGUgaW50ZW1lZGlhdGUgaW5wdXQgc291cmNlIHN0YXRlcyB0byBiZXR0ZXIg
c2ltdWxhdGUgcmVhbCB1c2VyIG1vdmVtZW50cyBhbmQgZ2VzdHVyZXMuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZGVsdGEiLCAiJHJlZiI6ICJTaXplIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIkZvciAnd2hlZWwnIGlucHV0IHNvdXJjZXMsIHNwZWNpZmllcyBh
IHNjcm9sbCBkZWx0YS4ifSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImR1cmF0aW9uIiwg
InR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
bWluaW11bSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgbXVzdCBlbGFwc2Ugd2hpbGUgdGhl
IHJlbGV2YW50IGlucHV0IHNvdXJjZSB0cmFuc2l0aW9ucyB0byB0aGlzIHN0YXRlLiIgfQogICAg
ICAgICAgICAgXQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKaW5kZXgg
NzRiODg2NzhjMzMxLi44YjYyM2MxYzRhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5j
cHAKQEAgLTQzLDYgKzQzLDkgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2VTdGF0ZSBTaW11bGF0ZWRJ
bnB1dFNvdXJjZVN0YXRlOjplbXB0eVN0YXRlRm9yU291cmNlVHlwZShTaW0KICAgICBjYXNlIFNp
bXVsYXRlZElucHV0U291cmNlVHlwZTo6TnVsbDoKICAgICBjYXNlIFNpbXVsYXRlZElucHV0U291
cmNlVHlwZTo6S2V5Ym9hcmQ6CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2ltdWxhdGVkSW5w
dXRTb3VyY2VUeXBlOjpXaGVlbDoKKyAgICAgICAgcmVzdWx0LnNjcm9sbERlbHRhID0gV2ViQ29y
ZTo6SW50U2l6ZSgpOworICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIFNpbXVsYXRlZElu
cHV0U291cmNlVHlwZTo6TW91c2U6CiAgICAgY2FzZSBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6
OlRvdWNoOgogICAgICAgICByZXN1bHQubG9jYXRpb24gPSBXZWJDb3JlOjpJbnRQb2ludCgpOwpA
QCAtMzgwLDYgKzM4MywzNSBAQCB2b2lkIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6dHJhbnNp
dGlvbklucHV0U291cmNlVG9TdGF0ZShTaW11bGF0ZWRJbnB1dFNvdXJjZQogICAgICAgICAgICAg
ZXZlbnREaXNwYXRjaEZpbmlzaGVkKFdURjo6bnVsbG9wdCk7CiAjZW5kaWYgLy8gIUVOQUJMRShX
RUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNpbXVsYXRlZElucHV0U291cmNlVHlwZTo6V2hlZWw6CisjaWYgIUVOQUJMRShXRUJEUklWRVJf
V0hFRUxfSU5URVJBQ1RJT05TKQorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworI2Vsc2UKKyAgICAgICAgcmVzb2x2ZUxvY2F0aW9uKGEubG9jYXRpb24udmFsdWVPcihXZWJD
b3JlOjpJbnRQb2ludCgpKSwgYi5sb2NhdGlvbiwgYi5vcmlnaW4udmFsdWVPcihNb3VzZU1vdmVP
cmlnaW46OlZpZXdwb3J0KSwgYi5ub2RlSGFuZGxlLCBbdGhpcywgJmEsICZiLCBldmVudERpc3Bh
dGNoRmluaXNoZWQgPSBXVEZNb3ZlKGV2ZW50RGlzcGF0Y2hGaW5pc2hlZCldKE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiBsb2NhdGlvbiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJv
cj4gZXJyb3IpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAg
ICAgICAgZXZlbnREaXNwYXRjaEZpbmlzaGVkKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbG9jYXRpb24pIHsKKyAgICAg
ICAgICAgICAgICBldmVudERpc3BhdGNoRmluaXNoZWQoQVVUT01BVElPTl9DT01NQU5EX0VSUk9S
X1dJVEhfTkFNRShFbGVtZW50Tm90SW50ZXJhY3RhYmxlKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBiLmxvY2F0aW9uID0gbG9jYXRpb247
CisKKyAgICAgICAgICAgIGlmICghYS5zY3JvbGxEZWx0YS0+aXNaZXJvKCkpCisgICAgICAgICAg
ICAgICAgYi5zY3JvbGxEZWx0YS0+Y29udHJhY3QoYS5zY3JvbGxEZWx0YS0+d2lkdGgoKSwgYS5z
Y3JvbGxEZWx0YS0+aGVpZ2h0KCkpOworCisgICAgICAgICAgICBpZiAoIWIuc2Nyb2xsRGVsdGEt
PmlzWmVybygpKSB7CisgICAgICAgICAgICAgICAgTE9HKEF1dG9tYXRpb24sICJTaW11bGF0ZWRJ
bnB1dERpc3BhdGNoZXJbJXBdOiBzaW11bGF0aW5nIFdoZWVsIGZyb20gKCVkLCAlZCkgdG8gKCVk
LCAlZCkgZm9yIHRyYW5zaXRpb24gdG8gJWQuJWQiLCB0aGlzLCBhLnNjcm9sbERlbHRhLT53aWR0
aCgpLCBhLnNjcm9sbERlbHRhLT5oZWlnaHQoKSwgYi5zY3JvbGxEZWx0YS0+d2lkdGgoKSwgYi5z
Y3JvbGxEZWx0YS0+aGVpZ2h0KCksIG1fa2V5ZnJhbWVJbmRleCwgbV9pbnB1dFNvdXJjZVN0YXRl
SW5kZXgpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGludGVycG9s
YXRlIG1vdXNlIHNjcm9sbHMgcGVyIHRoZSAicGVyZm9ybSBhIHNjcm9sbCIgYWxnb3JpdGhtICjC
pzE1LjQuNCBXaGVlbCBhY3Rpb25zKS4KKyAgICAgICAgICAgICAgICBtX2NsaWVudC5zaW11bGF0
ZVdoZWVsSW50ZXJhY3Rpb24obV9wYWdlLCBiLmxvY2F0aW9uLnZhbHVlKCksIGIuc2Nyb2xsRGVs
dGEudmFsdWUoKSwgV1RGTW92ZShldmVudERpc3BhdGNoRmluaXNoZWQpKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIGV2ZW50RGlzcGF0Y2hGaW5pc2hlZChXVEY6Om51bGxv
cHQpOworICAgICAgICB9KTsKKyNlbmRpZiAvLyAhRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRF
UkFDVElPTlMpCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyLmgKaW5kZXggODZmZDQ3OGZjNGM5Li4xYmYyYjI4OGUzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERp
c3BhdGNoZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTY3LDYg
KzY4LDcgQEAgZW51bSBjbGFzcyBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGUgewogICAgIEtleWJv
YXJkLAogICAgIE1vdXNlLAogICAgIFRvdWNoLAorICAgIFdoZWVsLAogfTsKIAogZW51bSBjbGFz
cyBUb3VjaEludGVyYWN0aW9uIHsKQEAgLTgyLDYgKzg0LDcgQEAgc3RydWN0IFNpbXVsYXRlZElu
cHV0U291cmNlU3RhdGUgewogICAgIE9wdGlvbmFsPE1vdXNlTW92ZU9yaWdpbj4gb3JpZ2luOwog
ICAgIE9wdGlvbmFsPFN0cmluZz4gbm9kZUhhbmRsZTsKICAgICBPcHRpb25hbDxXZWJDb3JlOjpJ
bnRQb2ludD4gbG9jYXRpb247CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gc2Nyb2xs
RGVsdGE7CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gZHVyYXRpb247CiAKICAgICBzdGF0aWMgU2lt
dWxhdGVkSW5wdXRTb3VyY2VTdGF0ZSBlbXB0eVN0YXRlRm9yU291cmNlVHlwZShTaW11bGF0ZWRJ
bnB1dFNvdXJjZVR5cGUpOwpAQCAtMTMzLDYgKzEzNiw5IEBAIHB1YmxpYzoKICNlbmRpZgogI2lm
IEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJk
SW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0
aW9uQ29tcGxldGlvbkhhbmRsZXImJikgPSAwOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkRSSVZF
Ul9XSEVFTF9JTlRFUkFDVElPTlMpCisgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZVdoZWVs
SW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0
aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSwgQXV0b21hdGlvbkNvbXBs
ZXRpb25IYW5kbGVyJiYpID0gMDsKICNlbmRpZgogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3Bv
cnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9u
PHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNv
bW1hbmRFcnJvcj4pPiYmKSA9IDA7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXgg
YTg3MzVmMGQ0YjRkLi5hMzBkYTQzYjJkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC05
MSw2ICs5MSw5IEBAIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbigp
CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAg
ICBtX2lucHV0U291cmNlcy5hZGQoU2ltdWxhdGVkSW5wdXRTb3VyY2U6OmNyZWF0ZShTaW11bGF0
ZWRJbnB1dFNvdXJjZVR5cGU6OktleWJvYXJkKSk7CisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCRFJJ
VkVSX1dIRUVMX0lOVEVSQUNUSU9OUykKKyAgICBtX2lucHV0U291cmNlcy5hZGQoU2ltdWxhdGVk
SW5wdXRTb3VyY2U6OmNyZWF0ZShTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6OldoZWVsKSk7CiAj
ZW5kaWYKICAgICBtX2lucHV0U291cmNlcy5hZGQoU2ltdWxhdGVkSW5wdXRTb3VyY2U6OmNyZWF0
ZShTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6Ok51bGwpKTsKICNlbmRpZiAvLyBFTkFCTEUoV0VC
RFJJVkVSX0FDVElPTlNfQVBJKQpAQCAtMTY1LDYgKzE2OCwxMyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjp0ZXJtaW5hdGUoKQogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVS
X01PVVNFX0lOVEVSQUNUSU9OUykKIAorI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJB
Q1RJT05TKQorICAgIGZvciAoYXV0byYgaWRlbnRpZmllciA6IGNvcHlUb1ZlY3RvcihtX3BlbmRp
bmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLmtleXMoKSkpIHsKKyAgICAgICAg
YXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ1doZWVsRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBh
Z2UudGFrZShpZGVudGlmaWVyKTsKKyAgICAgICAgY2FsbGJhY2soQVVUT01BVElPTl9DT01NQU5E
X0VSUk9SX1dJVEhfTkFNRShJbnRlcm5hbEVycm9yKSk7CisgICAgfQorI2VuZGlmIC8vIEVOQUJM
RShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCiAgICAgaWYgKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsID0gbV9y
ZW1vdGVDaGFubmVsKSB7CiAgICAgICAgIG1fcmVtb3RlQ2hhbm5lbCA9IG51bGxwdHI7CkBAIC02
NzYsNiArNjg2LDE1IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndpbGxTaG93SmF2YVNj
cmlwdERpYWxvZyhXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgICAgIH0KICNlbmRpZiAvLyBFTkFC
TEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICB9KTsKKworI2lmIEVOQUJM
RShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgICAgICBpZiAoIW1fcGVuZGluZ1do
ZWVsRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2UuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICBmb3IgKGF1dG8ga2V5IDogY29weVRvVmVjdG9yKG1fcGVuZGluZ1doZWVsRXZlbnRzRmx1c2hl
ZENhbGxiYWNrc1BlclBhZ2Uua2V5cygpKSkgeworICAgICAgICAgICAgICAgIGF1dG8gY2FsbGJh
Y2sgPSBtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLnRha2Uoa2V5
KTsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhXVEY6Om51bGxvcHQpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElP
TlMpCiB9CiAgICAgCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRFbnRlckZ1bGxTY3Jl
ZW5Gb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYpCkBAIC04MTYsNiArODM1LDE2IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OmtleWJvYXJkRXZlbnRzRmx1c2hlZEZvclBhZ2UoY29uc3Qg
V2ViUGFnZVByb3h5JiBwYWdlCiAjZW5kaWYKIH0KIAordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6d2hlZWxFdmVudHNGbHVzaGVkRm9yUGFnZShjb25zdCBXZWJQYWdlUHJveHkmIHBhZ2UpCit7
CisjaWYgRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCisgICAgaWYgKGF1dG8g
Y2FsbGJhY2sgPSBtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLnRh
a2UocGFnZS5pZGVudGlmaWVyKCkpKQorICAgICAgICBjYWxsYmFjayhXVEY6Om51bGxvcHQpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6d2lsbENsb3NlUGFnZShjb25zdCBXZWJQYWdlUHJveHkmIHBhZ2UpCiB7
CiAgICAgU3RyaW5nIGhhbmRsZSA9IGhhbmRsZUZvcldlYlBhZ2VQcm94eShwYWdlKTsKQEAgLTgz
MSw2ICs4NjAsMTAgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2lsbENsb3NlUGFnZShj
b25zdCBXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRp
bmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLnRha2UocGFnZS5pZGVudGlm
aWVyKCkpKQogICAgICAgICBjYWxsYmFjayhBVVRPTUFUSU9OX0NPTU1BTkRfRVJST1JfV0lUSF9O
QU1FKFdpbmRvd05vdEZvdW5kKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCRFJJVkVSX1dIRUVM
X0lOVEVSQUNUSU9OUykKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ1doZWVsRXZl
bnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLmlkZW50aWZpZXIoKSkpCisgICAg
ICAgIGNhbGxiYWNrKEFVVE9NQVRJT05fQ09NTUFORF9FUlJPUl9XSVRIX05BTUUoV2luZG93Tm90
Rm91bmQpKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKICAg
ICAvLyBUaGVuIHRlbGwgdGhlIGlucHV0IGRpc3BhdGNoZXIgdG8gY2FuY2VsIHNvIHRpbWVycyBh
cmUgc3RvcHBlZCwgYW5kIGxldCBpdCBnbyBvdXQgb2Ygc2NvcGUuCkBAIC0xNTI1LDYgKzE1NTgs
MTAgQEAgYm9vbCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aXNTaW11bGF0aW5nVXNlckludGVyYWN0
aW9uKCkgY29uc3QKICAgICBpZiAoIW1fcGVuZGluZ0tleWJvYXJkRXZlbnRzRmx1c2hlZENhbGxi
YWNrc1BlclBhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgorI2lm
IEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgIGlmICghbV9wZW5kaW5n
V2hlZWxFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElP
TlMpCiAgICAgaWYgKG1fc2ltdWxhdGluZ1RvdWNoSW50ZXJhY3Rpb24pCiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTY3MSw2ICsxNzA4LDQwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEtleWJvCiAg
ICAgLy8gT3RoZXJ3aXNlLCB3YWl0IGZvciBrZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFjayB0
byBydW4gd2hlbiBhbGwgZXZlbnRzIGFyZSBoYW5kbGVkLgogfQogI2VuZGlmIC8vIEVOQUJMRShX
RUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQorCisjaWYgRU5BQkxFKFdFQkRSSVZFUl9X
SEVFTF9JTlRFUkFDVElPTlMpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0ZVdo
ZWVsSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbG9jYXRpb25JblZpZXdwb3J0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSwgQXV0
b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgcGFn
ZS5nZXRXaW5kb3dGcmFtZVdpdGhDYWxsYmFjayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBwYWdlID0gbWFrZVJlZihwYWdlKSwgbG9jYXRpb25JblZpZXdwb3J0LCBkZWx0YV0oV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjbGlwcGVk
WCA9IHN0ZDo6bWluKHN0ZDo6bWF4KDAuMGYsIHN0YXRpY19jYXN0PGZsb2F0Pihsb2NhdGlvbklu
Vmlld3BvcnQueCgpKSksIHdpbmRvd0ZyYW1lLnNpemUoKS53aWR0aCgpKTsKKyAgICAgICAgYXV0
byBjbGlwcGVkWSA9IHN0ZDo6bWluKHN0ZDo6bWF4KDAuMGYsIHN0YXRpY19jYXN0PGZsb2F0Pihs
b2NhdGlvbkluVmlld3BvcnQueSgpKSksIHdpbmRvd0ZyYW1lLnNpemUoKS5oZWlnaHQoKSk7Cisg
ICAgICAgIGlmIChjbGlwcGVkWCAhPSBsb2NhdGlvbkluVmlld3BvcnQueCgpIHx8IGNsaXBwZWRZ
ICE9IGxvY2F0aW9uSW5WaWV3cG9ydC55KCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKEFVVE9NQVRJT05fQ09NTUFORF9FUlJPUl9XSVRIX05BTUUoVGFyZ2V0T3V0T2ZCb3VuZHMp
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEJyaWRnZSB0
aGUgZmx1c2hlZCBjYWxsYmFjayB0byBvdXIgY29tbWFuZCdzIGNvbXBsZXRpb24gaGFuZGxlci4K
KyAgICAgICAgYXV0byB3aGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFjayA9IFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShPcHRpb25hbDxBdXRvbWF0aW9uQ29t
bWFuZEVycm9yPiBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihlcnJvcik7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byYgY2FsbGJhY2tJbk1hcCA9IG1f
cGVuZGluZ1doZWVsRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2UuYWRkKHBhZ2UtPmlkZW50
aWZpZXIoKSwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBpZiAoY2FsbGJhY2tJ
bk1hcCkKKyAgICAgICAgICAgIGNhbGxiYWNrSW5NYXAoQVVUT01BVElPTl9DT01NQU5EX0VSUk9S
X1dJVEhfTkFNRShUaW1lb3V0KSk7CisgICAgICAgIGNhbGxiYWNrSW5NYXAgPSBXVEZNb3ZlKHdo
ZWVsRXZlbnRzRmx1c2hlZENhbGxiYWNrKTsKKworICAgICAgICBwbGF0Zm9ybVNpbXVsYXRlV2hl
ZWxJbnRlcmFjdGlvbihwYWdlLCBsb2NhdGlvbkluVmlld3BvcnQsIGRlbHRhKTsKKworICAgICAg
ICAvLyBJZiB0aGUgZXZlbnQgZG9lcyBub3QgaGl0IHRlc3QgYW55dGhpbmcgaW4gdGhlIHdpbmRv
dywgdGhlbiBpdCBtYXkgbm90IGhhdmUgYmVlbiBkZWxpdmVyZWQuCisgICAgICAgIGlmIChjYWxs
YmFja0luTWFwICYmICFwYWdlLT5pc1Byb2Nlc3NpbmdXaGVlbEV2ZW50cygpKSB7CisgICAgICAg
ICAgICBhdXRvIGNhbGxiYWNrVG9DYW5jZWwgPSBtX3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRD
YWxsYmFja3NQZXJQYWdlLnRha2UocGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIGNh
bGxiYWNrVG9DYW5jZWwoV1RGOjpudWxsb3B0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE90
aGVyd2lzZSwgd2FpdCBmb3Igd2hlZWxFdmVudHNGbHVzaGVkQ2FsbGJhY2sgdG8gcnVuIHdoZW4g
YWxsIGV2ZW50cyBhcmUgaGFuZGxlZC4KKyAgICB9KTsKK30KKyNlbmRpZgogI2VuZGlmIC8vIEVO
QUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKICNpZiBFTkFCTEUoV0VCRFJJVkVSX01PVVNF
X0lOVEVSQUNUSU9OUykKQEAgLTE4NTQsNiArMTkyNSw4IEBAIHN0YXRpYyBTaW11bGF0ZWRJbnB1
dFNvdXJjZVR5cGUgc2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlRnJvbVByb3RvY29sU291cmNlVHlw
ZShJCiAgICAgICAgIHJldHVybiBTaW11bGF0ZWRJbnB1dFNvdXJjZVR5cGU6Ok1vdXNlOwogICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6SW5wdXRTb3VyY2VUeXBlOjpU
b3VjaDoKICAgICAgICAgcmV0dXJuIFNpbXVsYXRlZElucHV0U291cmNlVHlwZTo6VG91Y2g7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpJbnB1dFNvdXJjZVR5cGU6
OldoZWVsOgorICAgICAgICByZXR1cm4gU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlOjpXaGVlbDsK
ICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk2NCw2ICsy
MDM3LDEwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1JbnRlcmFjdGlvblNl
cXVlbmNlKGNvbnN0IEluc3BlY3Rvcjo6UHJvdG9jb2w6CiAjaWYgIUVOQUJMRShXRUJEUklWRVJf
S0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgICAgICBpZiAoaW5wdXRTb3VyY2VUeXBlID09IFNp
bXVsYXRlZElucHV0U291cmNlVHlwZTo6S2V5Ym9hcmQpCiAgICAgICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIktleWJv
YXJkIGlucHV0IHNvdXJjZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLiIpOworI2VuZGlmCisjaWYg
IUVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgICAgICBpZiAoaW5wdXRT
b3VyY2VUeXBlID09IFNpbXVsYXRlZElucHV0U291cmNlVHlwZTo6V2hlZWwpCisgICAgICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1l
bnRlZCwgIldoZWVsIGlucHV0IHNvdXJjZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLiIpOwogI2Vu
ZGlmCiAgICAgICAgIGlmICh0eXBlVG9Tb3VyY2VJZE1hcC5jb250YWlucyhpbnB1dFNvdXJjZVR5
cGUpKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RF
VEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlR3byBpbnB1dCBzb3VyY2VzIHdpdGggdGhlIHNhbWUg
dHlwZSB3ZXJlIHNwZWNpZmllZC4iKTsKQEAgLTIwNTIsNiArMjEyOSwxMyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpwZXJmb3JtSW50ZXJhY3Rpb25TZXF1ZW5jZShjb25zdCBJbnNwZWN0
b3I6OlByb3RvY29sOgogICAgICAgICAgICAgICAgICAgICBzb3VyY2VTdGF0ZS5sb2NhdGlvbiA9
IFdlYkNvcmU6OkludFBvaW50KCp4LCAqeSk7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAg
IGlmIChhdXRvIGRlbHRhT2JqZWN0ID0gc3RhdGVPYmplY3QtPmdldE9iamVjdCgiZGVsdGEiX3Mp
KSB7CisgICAgICAgICAgICAgICAgYXV0byBkZWx0YVggPSBkZWx0YU9iamVjdC0+Z2V0SW50ZWdl
cigid2lkdGgiX3MpOworICAgICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gZGVsdGFPYmplY3Qt
PmdldEludGVnZXIoImhlaWdodCJfcyk7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhWCAmJiBk
ZWx0YVkpCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVN0YXRlLnNjcm9sbERlbHRhID0gV2Vi
Q29yZTo6SW50U2l6ZSgqZGVsdGFYLCAqZGVsdGFZKTsKKyAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgaWYgKGF1dG8gZHVyYXRpb24gPSBzdGF0ZU9iamVjdC0+Z2V0SW50ZWdlcigiZHVyYXRp
b24iX3MpKQogICAgICAgICAgICAgICAgIHNvdXJjZVN0YXRlLmR1cmF0aW9uID0gU2Vjb25kczo6
ZnJvbU1pbGxpc2Vjb25kcygqZHVyYXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggYTM5
ODlhZGU1OWRiLi4zNmRjMzdlMmE5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTEyNSw2ICsx
MjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnNwZWN0b3JGcm9udGVuZExvYWRlZChjb25zdCBX
ZWJQYWdlUHJveHkmKTsKICAgICB2b2lkIGtleWJvYXJkRXZlbnRzRmx1c2hlZEZvclBhZ2UoY29u
c3QgV2ViUGFnZVByb3h5Jik7CiAgICAgdm9pZCBtb3VzZUV2ZW50c0ZsdXNoZWRGb3JQYWdlKGNv
bnN0IFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgd2hlZWxFdmVudHNGbHVzaGVkRm9yUGFnZShj
b25zdCBXZWJQYWdlUHJveHkmKTsKICAgICB2b2lkIHdpbGxDbG9zZVBhZ2UoY29uc3QgV2ViUGFn
ZVByb3h5Jik7CiAgICAgdm9pZCBoYW5kbGVSdW5PcGVuUGFuZWwoY29uc3QgV2ViUGFnZVByb3h5
JiwgY29uc3QgV2ViRnJhbWVQcm94eSYsIGNvbnN0IEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyYs
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkmKTsKICAgICB2b2lkIHdpbGxTaG93SmF2
YVNjcmlwdERpYWxvZyhXZWJQYWdlUHJveHkmKTsKQEAgLTE1Myw2ICsxNTQsOSBAQCBwdWJsaWM6
CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAg
ICB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2Fy
ZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQkRSSVZFUl9X
SEVFTF9JTlRFUkFDVElPTlMpCisgICAgdm9pZCBzaW11bGF0ZVdoZWVsSW50ZXJhY3Rpb24oV2Vi
UGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3LCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYp
OwogI2VuZGlmCiAgICAgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdl
YlBhZ2VQcm94eSYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIGNvbnN0IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok5vZGVIYW5kbGUmLCBGdW5jdGlvbjx2b2lk
KE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRF
cnJvcj4pPiYmKTsKIApAQCAtMjYzLDYgKzI2Nyw5IEBAIHByaXZhdGU6CiAgICAgLy8gU2ltdWxh
dGVzIGtleSBwcmVzc2VzIHRvIHByb2R1Y2UgdGhlIGNvZGVwb2ludHMgaW4gYSBzdHJpbmcuIE9u
ZSBvciBtb3JlIGNvZGUgcG9pbnRzIGFyZSBkZWxpdmVyZWQgYXRvbWljYWxseSBhdCBncmFwaGVt
ZSBjbHVzdGVyIGJvdW5kYXJpZXMuCiAgICAgdm9pZCBwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVu
Y2UoV2ViUGFnZVByb3h5JiwgY29uc3QgU3RyaW5nJik7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCisjaWYgRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9J
TlRFUkFDVElPTlMpCisgICAgdm9pZCBwbGF0Zm9ybVNpbXVsYXRlV2hlZWxJbnRlcmFjdGlvbihX
ZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb25JblZpZXdwb3J0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSk7CisjZW5kaWYgLy8gRU5BQkxFKFdFQkRS
SVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCiAKICAgICAvLyBHZXQgYmFzZTY0LWVuY29kZWQgUE5H
IGRhdGEgZnJvbSBhIGJpdG1hcC4KICAgICBzdGF0aWMgT3B0aW9uYWw8U3RyaW5nPiBwbGF0Zm9y
bUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJik7
CkBAIC0zMDYsNiArMzEzLDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCRFJJVkVSX01PVVNF
X0lOVEVSQUNUSU9OUykKICAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIEZ1bmN0
aW9uPHZvaWQoT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4gbV9wZW5kaW5nTW91
c2VFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJE
UklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQorICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgRnVuY3Rpb248dm9pZChPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+PiBt
X3BlbmRpbmdXaGVlbEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlOworI2VuZGlmCiAKICAg
ICB1aW50NjRfdCBtX25leHRFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja0lEIHsgMSB9OwogICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkF1dG9tYXRpb25CYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXI6OkV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uQ2FsbGJhY2s+PiBtX2V2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNl
c3Npb25HdGsuY3BwCmluZGV4IGE2MWQ3N2VlYWFlOC4uMmYzOWFmZmI2MDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vz
c2lvbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsv
V2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0d0a1ZlcnNpb25pbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJh
ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MzI4LDQgKzMyOSwxNCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdAogfQogI2VuZGlmIC8vIEVO
QUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogCisjaWYgRU5BQkxFKFdFQkRS
SVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlV2hlZWxJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBsb2NhdGlvbkluVmlld3BvcnQsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGRlbHRhKQoreworICAgIGF1dG8qIHZpZXdXaWRnZXQgPSByZWludGVycHJldF9jYXN0PFdl
YktpdFdlYlZpZXdCYXNlKj4ocGFnZS52aWV3V2lkZ2V0KCkpOworICAgIEZsb2F0U2l6ZSBzY3Jv
bGxEZWx0YShkZWx0YSk7CisgICAgc2Nyb2xsRGVsdGEuc2NhbGUoMSAvIHN0YXRpY19jYXN0PGZs
b2F0PihTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpKTsKKyAgICB3ZWJraXRXZWJWaWV3
QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHZpZXdXaWRnZXQsIC1zY3JvbGxEZWx0YS53aWR0aCgp
LCAtc2Nyb2xsRGVsdGEuaGVpZ2h0KCksIGxvY2F0aW9uSW5WaWV3cG9ydC54KCksIGxvY2F0aW9u
SW5WaWV3cG9ydC55KCksIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwgV2hlZWxFdmVudFBoYXNl
OjpOb1BoYXNlKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNU
SU9OUykKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL3dwZS9XZWJBdXRvbWF0aW9uU2Vzc2lvbldQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL3dwZS9XZWJBdXRvbWF0aW9uU2Vzc2lv
bldQRS5jcHAKaW5kZXggY2FkYmRkM2Q2YjkzLi4zZGU5NTE1MmRlMzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vd3BlL1dlYkF1dG9tYXRpb25TZXNzaW9u
V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL3dwZS9XZWJB
dXRvbWF0aW9uU2Vzc2lvbldQRS5jcHAKQEAgLTM2NCw1ICszNjQsMzAgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94eSYg
cGFnZSwgY29uc3QKIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVS
QUNUSU9OUykKIAorI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQordm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZVdoZWVsSW50ZXJhY3Rpb24o
V2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb25JblZp
ZXcsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGRlbHRhKQoreworI2lmIFdQRV9DSEVDS19WRVJT
SU9OKDEsIDUsIDApCisgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzXzJkX2V2ZW50IGV2ZW50Owor
ICAgIG1lbXNldCgmZXZlbnQsIDAsIHNpemVvZihldmVudCkpOworICAgIGV2ZW50LmJhc2UudHlw
ZSA9IHN0YXRpY19jYXN0PHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGU+KHdwZV9pbnB1dF9heGlz
X2V2ZW50X3R5cGVfbWFza18yZCB8IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbW90aW9uX3Nt
b290aCk7CisgICAgZXZlbnQuYmFzZS54ID0gbG9jYXRpb25JblZpZXcueCgpOworICAgIGV2ZW50
LmJhc2UueSA9IGxvY2F0aW9uSW5WaWV3LnkoKTsKKyAgICBldmVudC54X2F4aXMgPSAtZGVsdGEu
d2lkdGgoKTsKKyAgICBldmVudC55X2F4aXMgPSAtZGVsdGEuaGVpZ2h0KCk7CisgICAgd3BlX3Zp
ZXdfYmFja2VuZF9kaXNwYXRjaF9heGlzX2V2ZW50KHBhZ2Uudmlld0JhY2tlbmQoKSwgJmV2ZW50
LmJhc2UpOworI2Vsc2UKKyAgICBpZiAoYXV0byBkZWx0YVggPSBkZWx0YS53aWR0aCgpKSB7Cisg
ICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCBldmVudCA9IHsgd3BlX2lucHV0X2F4
aXNfZXZlbnRfdHlwZV9tb3Rpb24sIDAsIGxvY2F0aW9uSW5WaWV3LngoKSwgbG9jYXRpb25JblZp
ZXcueSgpLCAxLCAtZGVsdGFYLCAwIH07CisgICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZGlzcGF0
Y2hfYXhpc19ldmVudChwYWdlLnZpZXdCYWNrZW5kKCksICZldmVudCk7CisgICAgfQorICAgIGlm
IChhdXRvIGRlbHRhWSA9IGRlbHRhLmhlaWdodCgpKSB7CisgICAgICAgIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudCBldmVudCA9IHsgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb24s
IDAsIGxvY2F0aW9uSW5WaWV3LngoKSwgbG9jYXRpb25JblZpZXcueSgpLCAwLCAtZGVsdGFZLCAw
IH07CisgICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZGlzcGF0Y2hfYXhpc19ldmVudChwYWdlLnZp
ZXdCYWNrZW5kKCksICZldmVudCk7CisgICAgfQorI2VuZGlmCit9CisjZW5kaWYgLy8gRU5BQkxF
KFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiYWY3ZjA1ZGIy
YjAuLjg3ODI4MDg2OWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC02NDI2LDYgKzY0MjYsMTEgQEAgYm9vbCBXZWJQYWdlUHJveHk6OmlzUHJvY2Vzc2lu
Z01vdXNlRXZlbnRzKCkgY29uc3QKICAgICByZXR1cm4gIW1fbW91c2VFdmVudFF1ZXVlLmlzRW1w
dHkoKTsKIH0KIAorYm9vbCBXZWJQYWdlUHJveHk6OmlzUHJvY2Vzc2luZ1doZWVsRXZlbnRzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV93aGVlbEV2ZW50Q29hbGVzY2VyICYmIG1fd2hlZWxFdmVu
dENvYWxlc2Nlci0+aGFzRXZlbnRzQmVpbmdQcm9jZXNzZWQoKTsKK30KKwogTmF0aXZlV2ViTW91
c2VFdmVudCogV2ViUGFnZVByb3h5OjpjdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgp
CiB7CiAgICAgLy8gPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzkw
ND4gV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBtb3VzZSBkb3duIGV2ZW50IGluIHRoZSBj
YXNlIHdoZXJlIHdlCkBAIC02OTQyLDYgKzY5NDcsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJvb2wgaGFuZGxlZCkKIAogICAgICAg
ICBpZiAoYXV0byBldmVudFRvU2VuZCA9IHdoZWVsRXZlbnRDb2FsZXNjZXIoKS5uZXh0RXZlbnRU
b0Rpc3BhdGNoKCkpCiAgICAgICAgICAgICBzZW5kV2hlZWxFdmVudCgqZXZlbnRUb1NlbmQpOwor
ICAgICAgICBlbHNlIGlmIChhdXRvKiBhdXRvbWF0aW9uU2Vzc2lvbiA9IHByb2Nlc3MoKS5wcm9j
ZXNzUG9vbCgpLmF1dG9tYXRpb25TZXNzaW9uKCkpCisgICAgICAgICAgICBhdXRvbWF0aW9uU2Vz
c2lvbi0+d2hlZWxFdmVudHNGbHVzaGVkRm9yUGFnZSgqdGhpcyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3NjZkYjA0
MjA0NjcuLmNjYzU1MjE3YWQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTk0Myw2ICs5NDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9jZXNz
aW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdNb3VzZUV2
ZW50Q2FsbGJhY2tzKCk7CiAKKyAgICBib29sIGlzUHJvY2Vzc2luZ1doZWVsRXZlbnRzKCkgY29u
c3Q7CiAgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQm
KTsKIAogICAgIGJvb2wgaXNQcm9jZXNzaW5nS2V5Ym9hcmRFdmVudHMoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY29uZmlnLmggYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCmlu
ZGV4IDg3NDhhNGUxZGE0MS4uZWUzYzAzYTVlNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKQEAgLTYwLDcgKzYwLDcgQEAK
ICNkZWZpbmUgVVNFX0NSRURFTlRJQUxfU1RPUkFHRV9XSVRIX05FVFdPUktfU0VTU0lPTiAxCiAj
ZW5kaWYKIAotLy8gRU5BQkxFX1dFQkRSSVZFUl9BQ1RJT05TX0FQSSByZXByZXNlbnRzIHdoZXRo
ZXIgbW91c2UsIGtleWJvYXJkIG9yIHRvdWNoIGludGVyYWN0aW9ucyBhcmUgZGVmaW5lZAotI2lm
IEVOQUJMRShXRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSB8fCBFTkFCTEUoV0VCRFJJVkVS
X0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgfHwgRU5BQkxFKFdFQkRSSVZFUl9UT1VDSF9JTlRFUkFD
VElPTlMpCisvLyBFTkFCTEVfV0VCRFJJVkVSX0FDVElPTlNfQVBJIHJlcHJlc2VudHMgd2hldGhl
ciBtb3VzZSwga2V5Ym9hcmQsIHRvdWNoIG9yIHdoZWVsIGludGVyYWN0aW9ucyBhcmUgZGVmaW5l
ZAorI2lmIEVOQUJMRShXRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSB8fCBFTkFCTEUoV0VC
RFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgfHwgRU5BQkxFKFdFQkRSSVZFUl9UT1VDSF9J
TlRFUkFDVElPTlMpIHx8IEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQogI2Rl
ZmluZSBFTkFCTEVfV0VCRFJJVkVSX0FDVElPTlNfQVBJIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5j
bWFrZQppbmRleCBhMDllMjEzYjg3ZjIuLjI4MDBiZTdiODM5MiAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21h
a2UKQEAgLTI3MSw2ICsyNzEsNyBAQCBpZiAoRU5BQkxFX1dFQkRSSVZFUikKICAgICBTRVRfQU5E
X0VYUE9TRV9UT19CVUlMRChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUyBP
TikKICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lO
VEVSQUNUSU9OUyBPTikKICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfV0VCRFJJ
VkVSX1RPVUNIX0lOVEVSQUNUSU9OUyBPRkYpCisgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQo
RU5BQkxFX1dFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMgT04pCiBlbmRpZiAoKQogCiBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJVRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUu
Y21ha2UKaW5kZXggMWVkMTM3YzQ5MjM2Li41ZmJmNzJmZTk1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNt
YWtlCkBAIC0xNjUsNiArMTY1LDcgQEAgaWYgKEVOQUJMRV9XRUJEUklWRVIpCiAgICAgU0VUX0FO
RF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMg
T04pCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9J
TlRFUkFDVElPTlMgT04pCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX1dFQkRS
SVZFUl9UT1VDSF9JTlRFUkFDVElPTlMgT0ZGKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KEVOQUJMRV9XRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TIE9OKQogZW5kaWYgKCkKIAogaWYg
KEVOQUJMRV9YU0xUKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNt
YWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IDZkZjE5NzE0Y2Mx
Yi4uNzEzNmNiOWJlMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMu
Y21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0yMTksNiAr
MjE5LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RF
RklORShFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUyAiVG9nZ2xlIFdlYkRy
aXZlciBrZXlib2FyZCBpbnRlcmFjdGlvbnMiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TICJUb2dnbGUgV2Vi
RHJpdmVyIG1vdXNlIGludGVyYWN0aW9ucyIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMgIlRvZ2dsZSBXZWJE
cml2ZXIgdG91Y2ggaW50ZXJhY3Rpb25zIiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUyAiVG9nZ2xlIFdlYkRy
aXZlciB3aGVlbCBpbnRlcmFjdGlvbnMiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9XRUJHTCAiVG9nZ2xlIFdlYkdMIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQkdMMiAiVG9nZ2xlIFdlYkdMMiBzdXBw
b3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCR1BV
ICJUb2dnbGUgV2ViR1BVIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEwZTkxNTYxOTIyMy4uMzU4ZjEwZWY0
Y2IyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYkRyaXZlcjogYWRkIHN1cHBvcnQgZm9yIHdoZWVs
IGFjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgQWRk
IHdlYmRyaXZlci13aGVlbC1pbnRlcmFjdGlvbnMgb3B0aW9uLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorCiAyMDIwLTEwLTIxICBMYXVybyBNb3VyYSAg
PGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBGaXggd2ViZHJpdmVyIGxv
Z2dpbmcgbWVzc2FnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4
IGUxYjVjZGY1YzJkYS4uZjg0ZWNjZGQ3YzdiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0Zl
YXR1cmVMaXN0LnBtCkBAIC0xODIsNiArMTgyLDcgQEAgbXkgKAogICAgICR3ZWJkcml2ZXJNb3Vz
ZUludGVyYWN0aW9uc1N1cHBvcnQsCiAgICAgJHdlYmRyaXZlclN1cHBvcnQsCiAgICAgJHdlYmRy
aXZlclRvdWNoSW50ZXJhY3Rpb25zU3VwcG9ydCwKKyAgICAkd2ViZHJpdmVyV2hlZWxJbnRlcmFj
dGlvbnNTdXBwb3J0LAogICAgICR3ZWJnbDJTdXBwb3J0LAogICAgICR3ZWJnbFN1cHBvcnQsCiAg
ICAgJHdlYmdwdVN1cHBvcnQsCkBAIC01NTMsNiArNTU0LDkgQEAgbXkgQGZlYXR1cmVzID0gKAog
ICAgIHsgb3B0aW9uID0+ICJ3ZWJkcml2ZXItdG91Y2gtaW50ZXJhY3Rpb25zIiwgZGVzYyA9PiAi
VG9nZ2xlIFdlYkRyaXZlciB0b3VjaCBpbnRlcmFjdGlvbnMiLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUyIsIHZhbHVlID0+IFwkd2ViZHJpdmVy
VG91Y2hJbnRlcmFjdGlvbnNTdXBwb3J0IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAid2ViZHJpdmVy
LXdoZWVsLWludGVyYWN0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJEcml2ZXIgd2hlZWwgaW50
ZXJhY3Rpb25zIiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkRSSVZFUl9XSEVFTF9JTlRF
UkFDVElPTlMiLCB2YWx1ZSA9PiBcJHdlYmRyaXZlcldoZWVsSW50ZXJhY3Rpb25zU3VwcG9ydCB9
LAorCiAgICAgeyBvcHRpb24gPT4gIndlYmdsIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkdMIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCR0wiLCB2YWx1ZSA9PiBcJHdlYmdsU3Vw
cG9ydCB9LAogCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cgYi9XZWJEcml2
ZXJUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDQ3NjVjYzJlNDZlLi5kNTUxYWI1OGM2ODYgMTAwNjQ0
Ci0tLSBhL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZworKysgYi9XZWJEcml2ZXJUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0yMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBhZGQgc3VwcG9ydCBm
b3Igd2hlZWwgYWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAg
ICAgICBSZW1vdmUgZXhwZWN0YXRpb25zIGZvciB3aGVlbCBhY3Rpb25zIHRlc3QuCisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zLmpzb246CisKIDIwMjAtMTAtMjAgIExhdXJvIE1vdXJhICA8
bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYkRyaXZlcl0gR2FyZGVuaW5nIFdQRSBu
byBicm93c2luZyBjb250ZXh0IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zLmpzb24gYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpz
b24KaW5kZXggMjQ5YmY2MjZkMDUzLi4yOWNhMDliYmYwYmQgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZl
clRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgorKysgYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zLmpzb24KQEAgLTQ3MCw5ICs0NzAsNiBAQAogICAgICJpbXBvcnRlZC93M2Mvd2Vi
ZHJpdmVyL3Rlc3RzL3BlcmZvcm1fYWN0aW9ucy9rZXlfc3BlY2lhbF9rZXlzLnB5IjogewogICAg
ICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzE4NDk2NyJ9fQogICAgIH0sCi0gICAgImltcG9ydGVkL3czYy93ZWJkcml2ZXIv
dGVzdHMvcGVyZm9ybV9hY3Rpb25zL3doZWVsLnB5IjogewotICAgICAgICAiZXhwZWN0ZWQiOiB7
ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIxNzE3NCJ9
fQotICAgIH0sCiAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9jbG9zZV93aW5k
b3cvY2xvc2UucHkiOiB7CiAgICAgICAgICJzdWJ0ZXN0cyI6IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>