<?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>201473</bug_id>
          
          <creation_ts>2019-09-04 15:29:18 -0700</creation_ts>
          <short_desc>Deprecate all WKCookieManagerRef functions</short_desc>
          <delta_ts>2019-09-06 13:43:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567881</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-04 15:29:18 -0700</bug_when>
    <thetext>Deprecate all WKCookieManagerRef functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567882</commentid>
    <comment_count>1</comment_count>
      <attachid>378018</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-04 15:33:16 -0700</bug_when>
    <thetext>Created attachment 378018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567919</commentid>
    <comment_count>2</comment_count>
      <attachid>378018</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-04 17:04:31 -0700</bug_when>
    <thetext>Comment on attachment 378018
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKContext.h:146
&gt; +WK_EXPORT WKCookieManagerRef WKContextGetCookieManager(WKContextRef context) WK_C_API_DEPRECATED;

This is still used in a few tests :(
I&apos;ll replace it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567937</commentid>
    <comment_count>3</comment_count>
      <attachid>378034</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-04 18:36:54 -0700</bug_when>
    <thetext>Created attachment 378034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567956</commentid>
    <comment_count>4</comment_count>
      <attachid>378037</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-04 19:29:38 -0700</bug_when>
    <thetext>Created attachment 378037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568126</commentid>
    <comment_count>5</comment_count>
      <attachid>378084</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-05 08:24:41 -0700</bug_when>
    <thetext>Created attachment 378084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568129</commentid>
    <comment_count>6</comment_count>
      <attachid>378086</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-05 08:44:36 -0700</bug_when>
    <thetext>Created attachment 378086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568323</commentid>
    <comment_count>7</comment_count>
      <attachid>378137</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-05 16:51:49 -0700</bug_when>
    <thetext>Created attachment 378137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568329</commentid>
    <comment_count>8</comment_count>
      <attachid>378140</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-05 17:18:50 -0700</bug_when>
    <thetext>Created attachment 378140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568531</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-06 08:52:03 -0700</bug_when>
    <thetext>I&apos;ll add my new header to WebKit_PUBLIC_FRAMEWORK_HEADERS in PlatformWin.cmake before landing to fix the WinCairo build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568666</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-06 13:42:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/r249589</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568667</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-06 13:43:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/55125643&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378018</attachid>
            <date>2019-09-04 15:33:16 -0700</date>
            <delta_ts>2019-09-04 18:36:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190904153315.patch</filename>
            <type>text/plain</type>
            <size>9926</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk1MDApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA5LTA0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGVwcmVjYXRlIGFs
bCBXS0Nvb2tpZU1hbmFnZXJSZWYgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVpciB1c2UgaXMgYmVpbmcgcmVtb3ZlZCBpbiByZGFy
Oi8vcHJvYmxlbS81NTAzOTI3NQorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdl
clNldENsaWVudCk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29v
a2llcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUp
OgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChX
S0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGUpOgorICAgICAg
ICAoV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChX
S0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29v
a2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKToKKyAgICAgICAgKFdLQ29va2ll
TWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisgICAgICAgIChXS0Nvb2tpZU1h
bmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29va2llTWFuYWdlci5oOgorCiAyMDE5LTA5LTA0ICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIG1hY0NhdGFseXN0OiBSZS1lbmFibGUgaU9T
IFdLV2ViVmlldyBwcmludGluZyBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oCShyZXZpc2lvbiAyNDk0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDcgKzE0Myw3IEBA
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0b3BNZW1vcnlTYW1wbGUKIFdLX0VYUE9SVCBXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShXS0NvbnRleHRS
ZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIFdL
Q29udGV4dEdldEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
LVdLX0VYUE9SVCBXS0Nvb2tpZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihX
S0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpIFdLX0NfQVBJX0RFUFJF
Q0FURUQ7CiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2Vv
bG9jYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0ljb25E
YXRhYmFzZVJlZiBXS0NvbnRleHRHZXRJY29uRGF0YWJhc2UoV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogV0tfRVhQT1JUIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNp
b24gMjQ5NDkzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5h
Z2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNjQgKzI4LDUwIEBACiAKICNpbmNsdWRlICJB
UElBcnJheS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXJQcm94eS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBXS1R5cGVJRCBXS0Nv
b2tpZU1hbmFnZXJHZXRUeXBlSUQoKQogewotICAgIHJldHVybiB0b0FQSShXZWJDb29raWVNYW5h
Z2VyUHJveHk6OkFQSVR5cGUpOworICAgIHJldHVybiAwOwogfQogCi12b2lkIFdLQ29va2llTWFu
YWdlclNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgY29uc3Qg
V0tDb29raWVNYW5hZ2VyQ2xpZW50QmFzZSogd2tDbGllbnQpCit2b2lkIFdLQ29va2llTWFuYWdl
clNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVu
dEJhc2UqKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+aW5pdGlhbGl6ZUNsaWVu
dCh3a0NsaWVudCk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIHZvaWQqIGNvbnRleHQs
IFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uIGNhbGxiYWNrKQordm9p
ZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJS
ZWYsIHZvaWQqLCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbikKIHsK
LSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rp
b24oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVD
b29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIFdL
U3RyaW5nUmVmIGhvc3RuYW1lKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9y
SG9zdG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1JlZikKIHsKLSAgICB0b0ltcGwo
Y29va2llTWFuYWdlclJlZiktPmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgeyB0b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSB9KTsK
IH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdl
clJlZiBjb29raWVNYW5hZ2VyUmVmKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29va2llTWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZikt
PmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9
CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRl
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBkb3VibGUgZGF0ZSkKK3ZvaWQg
V0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2ll
TWFuYWdlclJlZiwgZG91YmxlKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGRhdGUpLCBbXShDYWxsYmFja0Jhc2U6OkVy
cm9yKXt9KTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlclNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmLCBXS0hUVFBDb29raWVBY2Nl
cHRQb2xpY3ksIHZvaWQqLCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24pCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbY29udGV4dCwgY2FsbGJhY2tdKENhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgY2FsbGJh
Y2soZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSA/IHRvQVBJKEFQSTo6RXJyb3I6
OmNyZWF0ZSgpLnB0cigpKSA6IG51bGxwdHIsIGNvbnRleHQpOwotICAgIH0pOwogfQogCi12b2lk
IFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29raWVNYW5hZ2Vy
R2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYsIHZvaWQqLCBXS0Nv
b2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24pCiB7Ci0gICAgdG9J
bXBsKGNvb2tpZU1hbmFnZXIpLT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb248V0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5LCBIVFRQQ29va2llQWNjZXB0UG9saWN5Pihjb250ZXh0LCBjYWxs
YmFjaykpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElFbmFi
bGVkKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBib29sIGVuYWJsZWQpCit2b2lk
IFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKFdLQ29va2llTWFuYWdl
clJlZiwgYm9vbCkKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnNldFN0b3JhZ2VBY2Nl
c3NBUElFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlclN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlcikKK3Zv
aWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFu
YWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0YXJ0T2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAotdm9p
ZCBXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFn
ZXJSZWYgY29va2llTWFuYWdlcikKK3ZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmKQogewotICAgIHRvSW1wbChjb29raWVNYW5h
Z2VyKS0+c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0Nvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMjQ5NDkzKQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgV0tDb29raWVNYW5hZ2VyX2gKIAogI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNhdGVkLmg+CiAKICNpZmRlZiBfX2Nw
bHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC01NSwyOCArNTYsMjggQEAgdHlwZWRlZiBzdHJ1Y3Qg
V0tDb29raWVNYW5hZ2VyQ2xpZW50VjAgewogICAgIFdLQ29va2llTWFuYWdlckNvb2tpZXNEaWRD
aGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llc0RpZENoYW5n
ZTsKIH0gV0tDb29raWVNYW5hZ2VyQ2xpZW50VjA7CiAKLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0Nv
b2tpZU1hbmFnZXJHZXRUeXBlSUQoKTsKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0Nvb2tpZU1hbmFn
ZXJHZXRUeXBlSUQoKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCi1XS19FWFBPUlQgdm9pZCBXS0Nv
b2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGNv
bnN0IFdLQ29va2llTWFuYWdlckNsaWVudEJhc2UqIGNsaWVudCk7CitXS19FWFBPUlQgdm9pZCBX
S0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIs
IGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIAogdHlwZWRlZiB2b2lkICgqV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVz
RnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VYUE9SVCB2b2lk
IFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJl
ZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVI
b3N0bmFtZXNGdW5jdGlvbiBmdW5jdGlvbik7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFn
ZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdl
ciwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rp
b24gZnVuY3Rpb24pIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29v
a2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlciwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpOwotV0tfRVhQT1JUIHZvaWQgV0tDb29r
aWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdl
cik7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5h
bWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLU3RyaW5nUmVmIGhvc3RuYW1l
KSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVs
ZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlcikgV0tfQ19BUElf
REVQUkVDQVRFRDsKIAogLy8gVGhlIHRpbWUgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgVW5peCBl
cG9jaC4KLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2Rp
ZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKTsK
K1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFm
dGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKSBXS19DX0FQ
SV9ERVBSRUNBVEVEOwogCiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5RnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VYUE9SVCB2
b2lkIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZv
aWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5j
dGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJT
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJF
Q0FURUQ7CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5RnVuY3Rpb24pKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgV0tFcnJvclJlZiwgdm9p
ZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tD
b29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsK
K1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2ll
TWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykgV0tfQ19B
UElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFn
ZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wg
ZW5hYmxlZCk7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNz
QVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgYm9vbCBlbmFibGVk
KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCi1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJT
dGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFn
ZXIpOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNo
YW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOworV0tfRVhQT1JUIHZvaWQg
V0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdl
clJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIHZvaWQg
V0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378034</attachid>
            <date>2019-09-04 18:36:54 -0700</date>
            <delta_ts>2019-09-04 19:29:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190904183654.patch</filename>
            <type>text/plain</type>
            <size>47779</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk1MDkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA5LTA0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGVwcmVjYXRlIGFs
bCBXS0Nvb2tpZU1hbmFnZXJSZWYgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVpciB1c2Ugd2FzIHJlbW92ZWQgaW4gcmRhcjovL3By
b2JsZW0vNTUwMzkyNzUKKyAgICAgICAgQ3JlYXRlZCByZXBsYWNlbWVudCBDIEFQSSB0aGF0IG1v
cmUgY2xvc2VseSByZXNlbWJsZXMgdGhlIHB1YmxpYyBPYmpDIEFQSSBmb3IgV2ViS2l0VGVzdFJ1
bm5lci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHA6
CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAg
ICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6Cisg
ICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckdl
dFR5cGVJRCk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQpOgorICAgICAgICAo
V0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV0tDb29r
aWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAgKFdLQ29va2llTWFu
YWdlckRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxs
Q29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZCk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLSFRUUENvb2tpZVN0b3JlR2V0VHlwZUlEKToKKyAgICAgICAgKFdLSFRU
UENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0hUVFBDb29raWVTdG9y
ZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0hUVFBDb29raWVTdG9yZVJlZi5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUdl
dEhUVFBDb29raWVTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tp
ZVN0b3JlQ29jb2EubW06CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29v
a2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToKKyAgICAgICAgKEFQSTo6dG9OU0hU
VFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wOS0w
NCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICAtW1dL
Q29udGVudFZpZXcgc2VsZWN0ZWRUZXh0XSByZXR1cm5zIGFuIGVtcHR5IHN0cmluZyB3aGVuIHNl
bGVjdGluZyBtb3JlIHRoYW4gMjAwIGNoYXJhY3RlcnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkocmV2aXNp
b24gMjQ5NDkzKQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMzQxLDYgKzM0MSw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIu
Y3AKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9B
UEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCiBVSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0
b3JlUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vz
cy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCShyZXZpc2lvbiAyNDk0OTMp
CisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTAwLDYgKzEwMCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRp
b24KIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCogV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25S
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dyYW1tYXJEZXRhaWwqIFdLR3JhbW1h
ckRldGFpbFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSFRUUENvb2tpZVN0b3Jl
KiBXS0hUVFBDb29raWVTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSGl0
VGVzdFJlc3VsdCogV0tIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tJY29uRGF0YWJhc2UqIFdLSWNvbkRhdGFiYXNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVmOwpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAy
NDk0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsMTMgKzI2OCw0IEBAIHZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpkaWRTZXRIVFRQQ28KICAgICBtX2NhbGxiYWNrcy50YWtlPFZvaWRDYWxsYmFj
az4oY2FsbGJhY2tJRCktPnBlcmZvcm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewot
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJs
ZWQoZW5hYmxlZCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7Ci0jZW5kaWYK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMjQ5NDkzKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTgwLDggKzgwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgRnVuY3Rpb248
dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogCi0gICAgdm9pZCBzZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChib29sKTsKLQogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFBBTDo6U2Vzc2lvbklEKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUhUVFBDb29raWVTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAJKHJldmlzaW9uIDI0OTQ5MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTcsNiArMTE3LDM4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWUoY29uc3QKICAgICB9KTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFs
bENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29r
aWVTdG9yYWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICBpZiAoIW1f
b3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQorICAgICAgICAgICAg
ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CisgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3Vw
cGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29raWVNYW5h
Z2VyLT5kZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7Cisg
ICAgLy8gRklYTUU6IFRoZSBDb21wbGV0aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcy4KKyAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIEhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byogcG9vbCA9IG1fb3duaW5nRGF0YVN0b3JlLT5wcm9jZXNz
UG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CisgICAgaWYgKCFwb29sKSB7CisgICAg
ICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisg
ICAgICAgICAgICBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUocG9saWN5KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFu
YWdlclByb3h5PigpOworICAgIGNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikg
bXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIGNs
YXNzIEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtMjQ2LDYgKzI3OCw4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVJ
bkRlZmF1bHQKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJ
UHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpIHsgfQogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rv
cE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVT
dG9yZSgpIHsgfQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQogI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgJKHJldmlz
aW9uIDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2ll
U3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDb29raWVTdG9y
YWdlT2JzZXJ2ZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTYxLDYgKzYyLDkg
QEAgcHVibGljOgogICAgIHZvaWQgY29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICAKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg2LDYg
KzkwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkZWxldGVDb29raWVGcm9tRGVmYXVs
dFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQg
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rp
b248dm9pZCgpPiYmKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUoKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVBy
b2Nlc3NDb29raWVTdG9yZSgpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUlu
RGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAg
UmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gMjQ5NDkz
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgSW50ZXJuYWxEZWJ1Z0ZlYXR1cmU7CiBjbGFz
cyBFeHBlcmltZW50YWxGZWF0dXJlOwogY2xhc3MgRnJhbWVIYW5kbGU7CiBjbGFzcyBGcmFtZUlu
Zm87CitjbGFzcyBIVFRQQ29va2llU3RvcmU7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3Mg
TWVzc2FnZUxpc3RlbmVyOwogY2xhc3MgTmF2aWdhdGlvbjsKQEAgLTEzMyw2ICsxMzQsNyBAQCBX
S19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVJlZiwgV2ViRnJhbWVQCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYsIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0
aW9uUG9zaXRpb25SZWYsIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24pCitXS19BRERfQVBJX01BUFBJ
TkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQSTo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJlZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiAyNDk0
OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTcsNiArNDE3LDExIEBAIGJvb2wgV0tDb250ZXh0R2V0VXNlc1Npbmds
ZVdlYlByb2Nlc3MoV0sKICAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPmNv
bmZpZ3VyYXRpb24oKS51c2VzU2luZ2xlV2ViUHJvY2VzcygpOwogfQogCit2b2lkIFdLQ29udGV4
dFNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBib29s
IGVuYWJsZWQpCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKGVuYWJsZWQpOworfQorCiB2b2lkIFdLQ29udGV4dFNldEN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwg
V0tTdHJpbmdSZWYgbmFtZSkKIHsKICAgICBXZWJLaXQ6OnRvSW1wbChjb250ZXh0UmVmKS0+c2V0
Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKFdlYktpdDo6dG9JbXBsKG5h
bWUpLT5zdHJpbmcoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAkocmV2aXNpb24gMjQ5NDkzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNywxMyArMTM3LDE1IEBAIFdLX0VY
UE9SVCB1bnNpZ25lZCBXS0NvbnRleHRHZXRNYXhpbXVtTnUKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBP
UlQgYm9vbCBXS0NvbnRleHRHZXRVc2VzU2luZ2xlV2ViUHJvY2VzcyhXS0NvbnRleHRSZWYpOwog
CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nv
bnRleHRSZWYsIGJvb2wgZW5hYmxlZCk7CisKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0YXJ0
TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tEb3VibGVSZWYgaW50ZXJ2YWwp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFdLQ29udGV4dEdl
dFdlYnNpdGVEYXRhU3RvcmUoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBPUlQgV0tDb29raWVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQ
T1JUIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JUIFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiBXS19FWFBPUlQgV0tJY29uRGF0YWJhc2VSZWYgV0tDb250ZXh0R2V0SWNvbkRh
dGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9yYWdlTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tp
ZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDY0ICsyOCw1MCBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKCkKIHsKLSAg
ICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5OjpBUElUeXBlKTsKKyAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVudEJhc2UqIHdr
Q2xpZW50KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2VyUmVm
LCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKikKIHsKLSAgICB0b0ltcGwoY29va2ll
TWFuYWdlclJlZiktPmluaXRpYWxpemVDbGllbnQod2tDbGllbnQpOwogfQogCi12b2lkIFdLQ29v
a2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0
bmFtZXNGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVz
V2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyR2V0
Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYp
LT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRleHQsIGNhbGxiYWNrKSk7CiB9CiAK
LXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1JlZiBob3N0bmFtZSkKK3ZvaWQgV0tD
b29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiwg
V0tTdHJpbmdSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHsgdG9J
bXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkgfSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVs
ZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZikKK3ZvaWQg
V0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYpCiB7Ci0g
ICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlckRlbGV0
ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlclJlZiwgZG91YmxlIGRhdGUpCit2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tp
ZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYsIGRvdWJsZSkKIHsKLSAgICB0
b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhkYXRlKSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAKLXZvaWQgV0tDb29raWVN
YW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgdm9pZCogY29udGV4dCwg
V0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNr
KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2ll
TWFuYWdlclJlZiwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5LCB2b2lkKiwgV0tDb29raWVNYW5h
Z2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW2NvbnRl
eHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7Ci0gICAgICAgIGlmIChj
YWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJy
b3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiBudWxscHRyLCBj
b250ZXh0KTsKLSAgICB9KTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250
ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2Fs
bGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tD
b29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+Z2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dl
bmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgSFRUUENvb2tp
ZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1h
bmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgYm9vbCBlbmFibGVkKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKGNv
b2tpZU1hbmFnZXIpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChlbmFibGVkKTsKIH0KIAot
dm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVN
YW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tp
ZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdL
Q29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJl
ZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9u
IDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdLQ29va2llTWFu
YWdlcl9oCiAKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
RGVwcmVjYXRlZC5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpAQCAtNTUs
MjggKzU2LDI4IEBAIHR5cGVkZWYgc3RydWN0IFdLQ29va2llTWFuYWdlckNsaWVudFYwIHsKICAg
ICBXS0Nvb2tpZU1hbmFnZXJDb29raWVzRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvb2tpZXNEaWRDaGFuZ2U7CiB9IFdLQ29va2llTWFuYWdlckNsaWVudFYw
OwogCi1XS19FWFBPUlQgV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKCk7CitXS19F
WFBPUlQgV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKCkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q2xpZW50KFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNl
KiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q2xpZW50KFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRC
YXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIHR5cGVkZWYgdm9pZCAoKldLQ29v
a2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9y
UmVmLCB2b2lkKik7Ci1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgdm9pZCogY29udGV4
dCwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24gZnVuY3Rpb24pOwor
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFu
YWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uIGZ1bmN0aW9uKSBXS19DX0FQSV9ERVBSRUNB
VEVEOwogCi1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9z
dG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLU3RyaW5nUmVmIGhvc3Ru
YW1lKTsKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVN
YW5hZ2VyLCBXS1N0cmluZ1JlZiBob3N0bmFtZSkgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChX
S0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMpOwogCiAvLyBUaGUgdGltZSBoZXJlIGlz
IHJlbGF0aXZlIHRvIHRoZSBVbml4IGVwb2NoLgotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5h
Z2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBj
b29raWVNYW5hZ2VyLCBkb3VibGUpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVN
YW5hZ2VyLCBkb3VibGUpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIHR5cGVkZWYgdm9pZCAoKldL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbikoV0tFcnJvclJl
Ziwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbGljeSwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKK1dLX0VYUE9SVCB2b2lkIFdL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNv
bnRleHQsIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBj
YWxsYmFjaykgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLSFRUUENvb2tp
ZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24pKFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFn
ZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lGdW5jdGlvbiBjYWxsYmFjaykgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZv
aWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5hYmxlZCk7CitXS19FWFBPUlQgdm9pZCBXS0Nv
b2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYg
Y29va2llTWFuYWdlciwgYm9vbCBlbmFibGVkKSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoV0tDb250ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQpOwogCi1XS19FWFBP
UlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5h
Z2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBS
RUNBVEVEOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpIFdLX0NfQVBJX0RFUFJF
Q0FURUQ7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9y
ZVJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0hUVFBDb29raWVTdG9yZVJlZi5oIgorCisj
aW5jbHVkZSAiQVBJSFRUUENvb2tpZVN0b3JlLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisK
K1dLVHlwZUlEIFdLSFRUUENvb2tpZVN0b3JlR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gV2Vi
S2l0Ojp0b0FQSShBUEk6OkhUVFBDb29raWVTdG9yZTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLSFRUUENvb2tpZVN0b3JlUmVmIGNvb2tp
ZVN0b3JlLCB2b2lkKiBjb250ZXh0LCBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXNG
dW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwoY29va2llU3RvcmUpLT5kZWxldGVBbGxD
b29raWVzKFtjb250ZXh0LCBjYWxsYmFja10geworICAgICAgICBpZiAoY2FsbGJhY2spCisgICAg
ICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKKyAgICB9KTsKK30KKwordm9pZCBXS0hUVFBDb29r
aWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3RvcmVSZWYgY29v
a2llU3RvcmUsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQs
IFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxi
YWNrKQoreworICAgIHRvSW1wbChjb29raWVTdG9yZSktPnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFtjb250ZXh0LCBjYWxsYmFja10g
eworICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsK
KyAgICB9KTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENv
b2tpZVN0b3JlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLSFRUUENvb2tpZVN0b3JlUmVm
X2gKKyNkZWZpbmUgV0tIVFRQQ29va2llU3RvcmVSZWZfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dL
QmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KKworI2lmZGVmIF9f
Y3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tI
VFRQQ29va2llU3RvcmVHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tIVFRQQ29va2ll
U3RvcmVEZWxldGVBbGxDb29raWVzRnVuY3Rpb24pKHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdL
SFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS0hUVFBDb29raWVTdG9yZVJlZiBjb29r
aWVTdG9yZSwgdm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVz
RnVuY3Rpb24gY2FsbGJhY2spOworICAgIAordHlwZWRlZiB2b2lkICgqV0tIVFRQQ29va2llU3Rv
cmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24pKHZvaWQqKTsKK1dLX0VYUE9SVCB2
b2lkIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29r
aWVTdG9yZVJlZiBjb29raWVTdG9yZSwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwg
dm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24gY2FsbGJhY2spOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tIVFRQQ29va2llU3RvcmVSZWZfaCAqLwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCShy
ZXZpc2lvbiAyNDk0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSwxMSBAQCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0CiAgICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShlbmFibGUp
OwogfQogCitXS0hUVFBDb29raWVTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29v
a2llU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZikKK3sKKyAgICByZXR1
cm4gV2ViS2l0Ojp0b0FQSSgmV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aHR0cENvb2tp
ZVN0b3JlKCkpOworfQorCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGVXaXRoQ29tcGxldGlvbkhhbmRsZXIoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZVN0YXRpc3RpY3NEZWJ1Z01vZGVGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgJKHJl
dmlzaW9uIDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw4IEBAIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1dlYnNpdGVEYXRhU3RvcmVHZXQKIFdLX0VYUE9SVCBXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgV0tXZWJzaXRlRGF0YVN0b3JlR2V0RGVmYXVsdERhdGFTdG9yZSgpOwogV0tfRVhQ
T1JUIFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJz
aXN0ZW50RGF0YVN0b3JlKCk7CiAKK1dLX0VYUE9SVCBXS0hUVFBDb29raWVTdG9yZVJlZiBXS1dl
YnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZik7CisKIFdLX0VYUE9SVCBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBl
bmFibGUpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBi
b29sIGVuYWJsZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJ
SFRUUENvb2tpZVN0b3JlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCShyZXZpc2lvbiAyNDk0
OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0
b3JlQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTcwLDQgKzcwLDMwIEBAIHZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzdG9wT2JzZXJ2aW5nQ2hhbmcKICAgICAgICAgb2JzZXJ2ZXItPnN0b3BPYnNl
cnZpbmcoKTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpCit7CisgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNo
YXJlZEhUVFBDb29raWVTdG9yYWdlXSByZW1vdmVDb29raWVzU2luY2VEYXRlOltOU0RhdGUgZGlz
dGFudFBhc3RdXTsKK30KKworc3RhdGljIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b05TSFRU
UENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKKyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI6CisgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsK
KyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9j
dW1lbnREb21haW46CisgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1
cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9t
YWluOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNIVFRQ
Q29va2llQWNjZXB0UG9saWN5QWx3YXlzOworfQorCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktp
dDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgW1tOU0hUVFBDb29raWVT
dG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6dG9O
U0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIEFQ
SQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyNDk0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAyLDYgKzExMDIsNyBAQAogCQk1
QzRCOUQ4QjIxMEE4Q0NGMDA4RjE0RDEgLyogVW5kb09yUmVkby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjlEOEEyMTBBOEM0NjAwOEYxNEQxIC8q
IFVuZG9PclJlZG8uaCAqLzsgfTsKIAkJNUM1RDIzOEMyMjdBMkNEQTAwMEI5QkRBIC8qIF9XS0N1
c3RvbUhlYWRlckZpZWxkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM1RDIzODkyMjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxk
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVD
NjJGREY5MUVGQzI3MUMwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzYyRkRGODFFRkMyNjND
MDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTVDNjZBNEI1MjMyMDk2MjQwMEVBNEQ0NCAv
KiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUM2NkE0QjQyMzIwOTYxNDAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0
b3JlUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNUM3OTVENzAyMjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNFMEMzNjky
MjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJNUM3OTVENzEyMjlGMzc1NzAw
M0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTBDMzZBMjI5RjJENEEwMDM2OTVG
MCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM3RkI0NzAyMUU5N0RDNTAwOUUzMjQx
IC8qIFdlYkNvb2tpZUphci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3RkI0NkYyMUU5N0MwQzAwOUUzMjQxIC8qIFdlYkNvb2tpZUphci5oICovOyB9
OwpAQCAtMTcyMiw4ICsxNzIzLDYgQEAKIAkJCWNvbXBpbGVyU3BlYyA9IGNvbS5hcHBsZS5jb21w
aWxlcnMucHJveHkuc2NyaXB0OwogCQkJZmlsZVBhdHRlcm5zID0gIiouaCI7CiAJCQlmaWxlVHlw
ZSA9IHBhdHRlcm4ucHJveHk7Ci0JCQlpbnB1dEZpbGVzID0gKAotCQkJKTsKIAkJCWlzRWRpdGFi
bGUgPSAxOwogCQkJb3V0cHV0RmlsZXMgPSAoCiAJCQkJIiQoSEVBREVSX09VVFBVVF9ESVIpLyQo
SU5QVVRfRklMRV9OQU1FKSIsCkBAIC0zNjM1LDYgKzM2MzQsOCBAQAogCQk1QzVEMjM4OTIyN0Ex
ODkyMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1QzVEMjM4QTIyN0ExRDlCMDAwQjlCREEgLyogQVBJQ3VzdG9tSGVhZGVy
RmllbGRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUN1c3RvbUhlYWRl
ckZpZWxkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzYyRkRGODFFRkMyNjND
MDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VS
TFNjaGVtZVRhc2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjZB
NEIzMjMyMDk2MTMwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0hUVFBDb29raWVTdG9yZVJlZi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjZBNEI0MjMyMDk2MTQwMEVBNEQ0NCAvKiBX
S0hUVFBDb29raWVTdG9yZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0hUVFBDb29raWVTdG9yZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZD
RTZEMDFGNTlCQzQ2MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBsQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNkNFNkQzMUY1OUVBMzUwMDA3QzZDQiAvKiBQ
YWdlQ2xpZW50SW1wbENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
Z2VDbGllbnRJbXBsQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3NDMw
MEUyMTUwMDQ5MjAwNEJGQTE3IC8qIFdLV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTgwMzUsNiArODAzNiw4IEBACiAJCQkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdL
R2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAogCQkJCUI2MkU3MzBGMTQzMDQ3QTYwMDY5RUMzNSAv
KiBXS0hpdFRlc3RSZXN1bHQuY3BwICovLAogCQkJCUI2MkU3MzExMTQzMDQ3QjAwMDY5RUMzNSAv
KiBXS0hpdFRlc3RSZXN1bHQuaCAqLywKKwkJCQk1QzY2QTRCMzIzMjA5NjEzMDBFQTRENDQgLyog
V0tIVFRQQ29va2llU3RvcmVSZWYuY3BwICovLAorCQkJCTVDNjZBNEI0MjMyMDk2MTQwMEVBNEQ0
NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oICovLAogCQkJCTUxMTBBRTBBMTMzQzE2Q0IwMDcy
NzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8sCiAJCQkJNTExMEFFMEIxMzNDMTZDQjAwNzI3
MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8sCiAJCQkJMUM4RTI5MzgxMjc2MUU1QjAwQkM3QkQw
IC8qIFdLSW5zcGVjdG9yLmNwcCAqLywKQEAgLTEwMTkxLDYgKzEwMTk0LDcgQEAKIAkJCQkxQTQy
MkY4QjE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUQxMjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQ
Q29va2llU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDNjZBNEI1MjMyMDk2MjQwMEVBNEQ0
NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMEFFMEQx
MzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNDRjZBQzMxMkM5MUYzNDAwOEY5QzM1IC8qIFdLSW1hZ2UuaCBpbiBIZWFkZXJz
ICovLApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjQ5NTA4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTktMDktMDQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEZXByZWNhdGUgYWxsIFdLQ29va2llTWFuYWdlclJl
ZiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMTQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkb3B0IHJlcGxhY2VtZW50IEMgQVBJIGluIFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nvb2tpZU1hbmFnZXIuY3BwOiBSZW1vdmVkLCBiZWNh
dXNlIHRoZSBmdW5jdGlvbnMgaXQgdGVzdHMgd2VyZSByZW1vdmVkLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAgICAgIChXVFI6OlRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW06CisgICAgICAgIChXVFI6OmluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6CisK
IDIwMTktMDktMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgLVtXS0NvbnRlbnRWaWV3IHNlbGVjdGVkVGV4dF0gcmV0dXJucyBhbiBlbXB0eSBzdHJp
bmcgd2hlbiBzZWxlY3RpbmcgbW9yZSB0aGFuIDIwMCBjaGFyYWN0ZXJzCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI0OTQ5MykKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsxOTUsNiBAQCBp
ZiAoRU5BQkxFX1dFQktJVCkKICAgICBzZXQoVGVzdFdlYktpdF9TT1VSQ0VTCiAgICAgICAgIFRl
c3RzL1dlYktpdC9BYm91dEJsYW5rTG9hZC5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L0Nhbkhh
bmRsZVJlcXVlc3QuY3BwCi0gICAgICAgIFRlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcAog
ICAgICAgICBUZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCiAgICAgICAg
IFRlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAogICAgICAgICBUZXN0
cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcApJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0OTQ5MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yODAsNyArMjgwLDYgQEAKIAkJNTFDRDFDNkMxQjM4Q0U0MzAwMTQyQ0E1IC8qIE1vZGFs
QWxlcnRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFDRDFDNkExQjM4Q0UzNjAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tICovOyB9OwogCQk1MUNE
MUM3MjFCMzhENDg0MDAxNDJDQTUgLyogbW9kYWwtYWxlcnRzLWluLW5ldy1hYm91dC1ibGFuay13
aW5kb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUNEMUM3MTFCMzhENDg0MDAxNDJDQTUgLyogbW9kYWwtYWxlcnRzLWluLW5ldy1h
Ym91dC1ibGFuay13aW5kb3cuaHRtbCAqLzsgfTsKIAkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIw
IC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFEMTI0OTcxRTc2M0FGODAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0
b3JlLm1tICovOyB9OwotCQk1MUQxMjQ5QjFFNzg1NDI1MDAyQjI4MjAgLyogQ29va2llTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNkYz
RjI5MDEzMzQyRkVCMDBBNkJGMTkgLyogQ29va2llTWFuYWdlci5jcHAgKi87IH07CiAJCTUxRDhD
MTkwMjI2N0IyNkQwMDc5N0U0MCAvKiBQREZMaW5rUmVmZXJyZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQ4QzE4RjIyNjdCMjY3MDA3OTdFNDAg
LyogUERGTGlua1JlZmVycmVyLm1tICovOyB9OwogCQk1MURCMTZDRTFGMDg1MTM3MDAxRkE0QzUg
LyogV2ViVmlld0ljb25Mb2FkaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFEQjE2Q0QxRjA4NTA0NzAwMUZBNEM1IC8qIFdlYlZpZXdJY29uTG9h
ZGluZy5tbSAqLzsgfTsKIAkJNTFFNUM3MDIxOTE5QzNCMjAwRDhCM0UxIC8qIHNpbXBsZTIuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUU3ODAzNjE5MTlBRkY4MDAxODI5QTIgLyogc2ltcGxlMi5odG1sICovOyB9OwpAQCAtMjUyMCw3
ICsyNTE5LDYgQEAKIAkJRjZCN0JFOTIxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZv
cm1Db250cm9sc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QjdC
RTkzMTc0NjkxRUYwMDhBMzQ0NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjZCN0JFOTYxNzQ2OUI3RTAwOEEzNDQ1IC8qIGFzc29jaWF0ZS1m
b3JtLWNvbnRyb2xzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYx
OSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvb2tpZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkY0
OUM2NjE1NTQ1QzhEMDAwN0YzOUQgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93RXh0ZW5z
aW9uTm9DYWNoZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkY0
OUM2NzE1NTQ1QzhEMDAwN0YzOUQgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dFeHRlbnNpb25Ob0Nh
Y2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGRERERDIxNDI0MUFENDAw
NEYxNzI5IC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVCcm93c2luZ1B1c2hT
dGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM0NDAsNyArMzQzOCw2IEBACiAJCQkJQkMyNDZEOTcxMzJGMUZFMTAwQjU2RDdDIC8qIENhbkhh
bmRsZVJlcXVlc3RfQnVuZGxlLmNwcCAqLywKIAkJCQkxQTUwQUExQzFBMkE0RTcwMDBGNEMzNDUg
LyogQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgKi8sCiAJCQkJN0M4RERBQTkxNzM1REUx
RDAwRUE1QUMwIC8qIENsb3NlVGhlblRlcm1pbmF0ZS5jcHAgKi8sCi0JCQkJRjZGM0YyOTAxMzM0
MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovLAogCQkJCUY2QjdCRTkzMTc0Njkx
RUYwMDhBMzQ0NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwICovLAogCQkJCUY2QjdC
RTkyMTc0NjkxRUYwMDhBMzQ0NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNw
cCAqLywKIAkJCQk5MzMxNDA3QjE3QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93
bi5jcHAgKi8sCkBAIC00NDExLDcgKzQ0MDgsNiBAQAogCQkJCUNEMEJEMEE2MUY3OTkyNEQwMDFB
QjJDRiAvKiBDb250ZXh0TWVudUltZ1dpdGhWaWRlby5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVD
M0IxRDI2MjJBNzRGNjcwMEJDRjREMCAvKiBDb250ZXh0TWVudXMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1QzI5MzY5MzFENUJGNzBEMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5Lm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNTFEMTI0OUIxRTc4NTQyNTAwMkIyODIwIC8qIENvb2tpZU1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxOUE1MjQxRkQwRjYwMTAwRUVBMzIzIC8qIENv
b2tpZVByaXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMUY2Rjc4MUY5MDU1
ODQwMEI1NTc0NCAvKiBDb3B5SFRNTC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk5OTkxMDhCMUYz
OTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjQ5NDkzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2ll
TWFuYWdlci5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgV0tfSEFWRV9DX1NQSQotCi0jaW5jbHVkZSAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRl
IDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotc3RhdGljIGJvb2wgdGVzdERvbmU7
Ci0vLyBNYWtlIHN1cmUgdGhhdCB0aGUgcG9saWN5IG9uIHRoZSBtYWNoaW5lIHJ1bm5pbmcgdGhl
IHRlc3QgaXMgbm90IGNoYW5nZWQgYWZ0ZXIgcnVubmluZyB0aGUgdGVzdC4KLXN0YXRpYyBXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3kgdXNlclBvbGljeTsKLXN0YXRpYyBXS0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kgdGVzdFBvbGljeTsKLXN0YXRpYyBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IHdr
Q29udGV4dDsKLQotc3RhdGljIHZvaWQgZGlkR2V0VGVzdEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCogY29udGV4
dCkKLXsKLSAgICBFWFBFQ1RfRVEocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwg
Y29udGV4dCk7Ci0gICAgRVhQRUNUX0VRKHRlc3RQb2xpY3ksIHBvbGljeSk7Ci0KLSAgICBXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIo
d2tDb250ZXh0LmdldCgpKTsKLSAgICBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KGNvb2tpZU1hbmFnZXIsIHVzZXJQb2xpY3ksIG51bGxwdHIsIG51bGxwdHIpOwotCi0g
ICAgdGVzdERvbmUgPSB0cnVlOwotfQotCi1zdGF0aWMgdm9pZCBkaWRHZXRVc2VySFRUUENvb2tp
ZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVm
LCB2b2lkKiBjb250ZXh0KQotewotICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PHZvaWQq
PigweDEyMzQ1NzgpLCBjb250ZXh0KTsKLQotICAgIHVzZXJQb2xpY3kgPSBwb2xpY3k7Ci0KLSAg
ICAvLyBNYWtlIHN1cmUgdG8gY2hvb3NlIGEgcG9saWN5IGRpZmZlcmVudCBmcm9tIHRoZSBwb2xp
Y3kgdGhlIHVzZXIgY3VycmVudGx5IGhhcyBzZXQuCi0gICAgdGVzdFBvbGljeSA9ICh1c2VyUG9s
aWN5ICsgMSkgJSAzOwotICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tD
b250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29va2llTWFu
YWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdGVzdFBvbGljeSwg
bnVsbHB0ciwgbnVsbHB0cik7Ci0gICAgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShjb29raWVNYW5hZ2VyLCByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1Nzgp
LCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRp
ZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCopCi17Ci0gICAgV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBX
S0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5nZXQoKSk7Ci0gICAgV0tDb29raWVN
YW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCByZWludGVycHJl
dF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7Ci19Ci0KLVRFU1QoV2ViS2l0LCBDb29raWVNYW5hZ2VyKQotewotICAgIHdrQ29udGV4dC5h
ZG9wdChXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcod2tDb250ZXh0LmdldCgpKTsKLQotICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7Ci0gICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAs
IHNpemVvZihsb2FkZXJDbGllbnQpKTsKLQotICAgIGxvYWRlckNsaWVudC5iYXNlLnZlcnNpb24g
PSAwOwotICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNoTmF2
aWdhdGlvbjsKLQotICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFn
ZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2UpOwotCi0gICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBh
Z2UoKSwgYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSku
Z2V0KCkpOwotCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RG9uZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKLQotI2VuZGlmCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjQ5NDkzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEwICszOCwxMCBA
QAogI2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CiAjaW5jbHVkZSA8
V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5h
Z2VyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdlYktp
dC9XS0ZyYW1lSGFuZGxlUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLSWNvbkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTWVzc2FnZUxpc3RlbmVy
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXkuaD4KQEAgLTg2Niw3ICs4NjYsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJl
bmNlc1NldEJlYWNvbkFQSUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXREaXJlY3RvcnlVcGxvYWRFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAg
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb250ZXh0R2V0Q29va2llTWFuYWdl
cihtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tp
ZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLQ29udGV4dEdldFdlYnNp
dGVEYXRhU3RvcmUobV9jb250ZXh0LmdldCgpKSksIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAg
V0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIApAQCAtMjA5MSw3ICsyMDkxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlk
UmVjZWl2ZVN5bmNocm9ubwogCiAgICAgYXV0byBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0g
WyZdIChXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdLVHlwZVJlZik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgYXV0byBjb250
ZXh0ID0gbmV3IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBlUmVmKT4oV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwotICAgICAgICBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIodGhpcy0+Y29udGV4dCgpKSwgcG9s
aWN5LCBjb250ZXh0LCBbXSAoV0tFcnJvclJlZiBlcnJvciwgdm9pZCogY29udGV4dCkgeworICAg
ICAgICBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tXZWJzaXRl
RGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUo
bV9jb250ZXh0LmdldCgpKSksIHBvbGljeSwgY29udGV4dCwgW10gKHZvaWQqIGNvbnRleHQpIHsK
ICAgICAgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJQb2ludGVyID0gc3RhdGljX2Nhc3Q8
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXS1R5cGVSZWYpPio+KGNvbnRleHQpOwogICAgICAgICAg
ICAgKCpjb21wbGV0aW9uSGFuZGxlclBvaW50ZXIpKG51bGxwdHIpOwogICAgICAgICAgICAgZGVs
ZXRlIGNvbXBsZXRpb25IYW5kbGVyUG9pbnRlcjsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCShyZXZpc2lvbiAyNDk0OTMpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOSArMzMs
OSBAQAogI2luY2x1ZGUgIlVJU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYkNvcmVU
ZXN0U3VwcG9ydC5oIgogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW5j
bHVkZSA8V2ViS2l0L1dLQ29va2llTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0RhdGEu
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tEaWN0aW9uYXJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
SFRUUENvb2tpZVN0b3JlUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW5zcGVjdG9yLmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tSZXRh
aW5QdHIuaD4KQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2Uo
KQogCiAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3VsZExvZ0hpc3RvcnlD
bGllbnRDYWxsYmFja3Moc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcygpKTsKIAotICAg
IFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb250ZXh0R2V0Q29v
a2llTWFuYWdlcihUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgpKSwga1dLSFRU
UENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluLCBudWxscHRyLCBu
dWxscHRyKTsKKyAgICBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLQ29udGV4dEdldFdlYnNpdGVE
YXRhU3RvcmUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSkpLCBrV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4sIG51bGxwdHIsIG51
bGxwdHIpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBvdXQgdmlzaXRlZCBsaW5r
cyBoZXJlLgogCkBAIC05MTIsNyArOTEyLDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0
SW52b2NhdGlvbjo6ZAogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCIpKSB7CiAgICAgICAgIFdLQm9v
bGVhblJlZiBhY2NlcHQgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsK
LSAgICAgICAgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb250
ZXh0R2V0Q29va2llTWFuYWdlcihUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgp
KSwgV0tCb29sZWFuR2V0VmFsdWUoYWNjZXB0KSk7CisgICAgICAgIFdLQ29udGV4dFNldFN0b3Jh
Z2VBY2Nlc3NBUElFbmFibGVkKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCks
IFdLQm9vbGVhbkdldFZhbHVlKGFjY2VwdCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJD
b2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RD
b250cm9sbGVyQ29jb2EubW0JKHJldmlzaW9uIDI0OTQ5MykKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNiBAQAogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRQ
cml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nQ0YuaD4KQEAgLTY5LDcg
KzY4LDcgQEAgdm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24oY29ucwogICAgIGds
b2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVk
ID0gWUVTOwogCi0gICAgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
V0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihjb250ZXh0KSwgdHJ1ZSk7CisgICAgV0tDb250ZXh0
U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoY29udGV4dCwgdHJ1ZSk7CiAKICAgICBXS1dlYnNp
dGVEYXRhU3RvcmUqIHBvb2xXZWJzaXRlRGF0YVN0b3JlID0gKF9fYnJpZGdlIFdLV2Vic2l0ZURh
dGFTdG9yZSAqKVdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoKF9fYnJpZGdlIFdLQ29udGV4
dFJlZilnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCk7CiAgICAgaWYgKGxp
YnJhcnlQYXRoKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378037</attachid>
            <date>2019-09-04 19:29:38 -0700</date>
            <delta_ts>2019-09-05 08:24:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190904192938.patch</filename>
            <type>text/plain</type>
            <size>47805</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk1MDkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA5LTA0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGVwcmVjYXRlIGFs
bCBXS0Nvb2tpZU1hbmFnZXJSZWYgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVpciB1c2Ugd2FzIHJlbW92ZWQgaW4gcmRhcjovL3By
b2JsZW0vNTUwMzkyNzUKKyAgICAgICAgQ3JlYXRlZCByZXBsYWNlbWVudCBDIEFQSSB0aGF0IG1v
cmUgY2xvc2VseSByZXNlbWJsZXMgdGhlIHB1YmxpYyBPYmpDIEFQSSBmb3IgV2ViS2l0VGVzdFJ1
bm5lci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHA6
CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAg
ICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6Cisg
ICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJv
Y2Vzc0Nvb2tpZVN0b3JlKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckdl
dFR5cGVJRCk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQpOgorICAgICAgICAo
V0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV0tDb29r
aWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAgKFdLQ29va2llTWFu
YWdlckRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxs
Q29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZCk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLSFRUUENvb2tpZVN0b3JlR2V0VHlwZUlEKToKKyAgICAgICAgKFdLSFRU
UENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0hUVFBDb29raWVTdG9y
ZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0hUVFBDb29raWVTdG9yZVJlZi5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUdl
dEhUVFBDb29raWVTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tp
ZVN0b3JlQ29jb2EubW06CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29v
a2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToKKyAgICAgICAgKEFQSTo6dG9OU0hU
VFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wOS0w
NCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICAtW1dL
Q29udGVudFZpZXcgc2VsZWN0ZWRUZXh0XSByZXR1cm5zIGFuIGVtcHR5IHN0cmluZyB3aGVuIHNl
bGVjdGluZyBtb3JlIHRoYW4gMjAwIGNoYXJhY3RlcnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkocmV2aXNp
b24gMjQ5NDkzKQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMzQxLDYgKzM0MSw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIu
Y3AKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9B
UEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCiBVSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0
b3JlUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vz
cy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCShyZXZpc2lvbiAyNDk0OTMp
CisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTAwLDYgKzEwMCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRp
b24KIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCogV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25S
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dyYW1tYXJEZXRhaWwqIFdLR3JhbW1h
ckRldGFpbFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSFRUUENvb2tpZVN0b3Jl
KiBXS0hUVFBDb29raWVTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSGl0
VGVzdFJlc3VsdCogV0tIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tJY29uRGF0YWJhc2UqIFdLSWNvbkRhdGFiYXNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVmOwpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAy
NDk0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsMTMgKzI2OCw0IEBAIHZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpkaWRTZXRIVFRQQ28KICAgICBtX2NhbGxiYWNrcy50YWtlPFZvaWRDYWxsYmFj
az4oY2FsbGJhY2tJRCktPnBlcmZvcm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewot
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJs
ZWQoZW5hYmxlZCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7Ci0jZW5kaWYK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMjQ5NDkzKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTgwLDggKzgwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgRnVuY3Rpb248
dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogCi0gICAgdm9pZCBzZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChib29sKTsKLQogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFBBTDo6U2Vzc2lvbklEKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUhUVFBDb29raWVTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAJKHJldmlzaW9uIDI0OTQ5MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTcsNiArMTE3LDM4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWUoY29uc3QKICAgICB9KTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFs
bENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29r
aWVTdG9yYWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICBpZiAoIW1f
b3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQorICAgICAgICAgICAg
ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CisgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3Vw
cGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29raWVNYW5h
Z2VyLT5kZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7Cisg
ICAgLy8gRklYTUU6IFRoZSBDb21wbGV0aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcy4KKyAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIEhUVFBD
b29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byogcG9vbCA9IG1fb3duaW5nRGF0YVN0b3JlLT5wcm9jZXNz
UG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CisgICAgaWYgKCFwb29sKSB7CisgICAg
ICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisg
ICAgICAgICAgICBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUocG9saWN5KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFu
YWdlclByb3h5PigpOworICAgIGNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikg
bXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIGNs
YXNzIEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtMjQ2LDYgKzI3OCw4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVJ
bkRlZmF1bHQKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJ
UHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpIHsgfQogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlc1RvRGVmYXVsdFVJUHJvY2Vzc0Nvb2tp
ZVN0b3JlKEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3Rv
cE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpIHsgfQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVT
dG9yZSgpIHsgfQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpIHsgfQogI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgJKHJldmlz
aW9uIDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2ll
U3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDb29raWVTdG9y
YWdlT2JzZXJ2ZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTYxLDYgKzYyLDkg
QEAgcHVibGljOgogICAgIHZvaWQgY29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICAKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg2LDYg
KzkwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkZWxldGVDb29raWVGcm9tRGVmYXVs
dFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQg
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rp
b248dm9pZCgpPiYmKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUoKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVBy
b2Nlc3NDb29raWVTdG9yZSgpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUlu
RGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAg
UmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gMjQ5NDkz
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgSW50ZXJuYWxEZWJ1Z0ZlYXR1cmU7CiBjbGFz
cyBFeHBlcmltZW50YWxGZWF0dXJlOwogY2xhc3MgRnJhbWVIYW5kbGU7CiBjbGFzcyBGcmFtZUlu
Zm87CitjbGFzcyBIVFRQQ29va2llU3RvcmU7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3Mg
TWVzc2FnZUxpc3RlbmVyOwogY2xhc3MgTmF2aWdhdGlvbjsKQEAgLTEzMyw2ICsxMzQsNyBAQCBX
S19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVJlZiwgV2ViRnJhbWVQCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYsIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0
aW9uUG9zaXRpb25SZWYsIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24pCitXS19BRERfQVBJX01BUFBJ
TkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQSTo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJlZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiAyNDk0
OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTcsNiArNDE3LDExIEBAIGJvb2wgV0tDb250ZXh0R2V0VXNlc1Npbmds
ZVdlYlByb2Nlc3MoV0sKICAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPmNv
bmZpZ3VyYXRpb24oKS51c2VzU2luZ2xlV2ViUHJvY2VzcygpOwogfQogCit2b2lkIFdLQ29udGV4
dFNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBib29s
IGVuYWJsZWQpCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKGVuYWJsZWQpOworfQorCiB2b2lkIFdLQ29udGV4dFNldEN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwg
V0tTdHJpbmdSZWYgbmFtZSkKIHsKICAgICBXZWJLaXQ6OnRvSW1wbChjb250ZXh0UmVmKS0+c2V0
Q3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKFdlYktpdDo6dG9JbXBsKG5h
bWUpLT5zdHJpbmcoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAkocmV2aXNpb24gMjQ5NDkzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNywxMyArMTM3LDE1IEBAIFdLX0VY
UE9SVCB1bnNpZ25lZCBXS0NvbnRleHRHZXRNYXhpbXVtTnUKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBP
UlQgYm9vbCBXS0NvbnRleHRHZXRVc2VzU2luZ2xlV2ViUHJvY2VzcyhXS0NvbnRleHRSZWYpOwog
CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nv
bnRleHRSZWYsIGJvb2wgZW5hYmxlZCk7CisKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0YXJ0
TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tEb3VibGVSZWYgaW50ZXJ2YWwp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFdLQ29udGV4dEdl
dFdlYnNpdGVEYXRhU3RvcmUoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBPUlQgV0tDb29raWVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQ
T1JUIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JUIFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiBXS19FWFBPUlQgV0tJY29uRGF0YWJhc2VSZWYgV0tDb250ZXh0R2V0SWNvbkRh
dGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9yYWdlTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tp
ZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDY0ICsyOCw1MCBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKCkKIHsKLSAg
ICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5OjpBUElUeXBlKTsKKyAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVudEJhc2UqIHdr
Q2xpZW50KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2VyUmVm
LCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKikKIHsKLSAgICB0b0ltcGwoY29va2ll
TWFuYWdlclJlZiktPmluaXRpYWxpemVDbGllbnQod2tDbGllbnQpOwogfQogCi12b2lkIFdLQ29v
a2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0
bmFtZXNGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVz
V2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyR2V0
Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYp
LT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRleHQsIGNhbGxiYWNrKSk7CiB9CiAK
LXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1JlZiBob3N0bmFtZSkKK3ZvaWQgV0tD
b29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiwg
V0tTdHJpbmdSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHsgdG9J
bXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkgfSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVs
ZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZikKK3ZvaWQg
V0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYpCiB7Ci0g
ICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlckRlbGV0
ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlclJlZiwgZG91YmxlIGRhdGUpCit2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tp
ZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYsIGRvdWJsZSkKIHsKLSAgICB0
b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhkYXRlKSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAKLXZvaWQgV0tDb29raWVN
YW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgdm9pZCogY29udGV4dCwg
V0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNr
KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2ll
TWFuYWdlclJlZiwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5LCB2b2lkKiwgV0tDb29raWVNYW5h
Z2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW2NvbnRl
eHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7Ci0gICAgICAgIGlmIChj
YWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJy
b3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiBudWxscHRyLCBj
b250ZXh0KTsKLSAgICB9KTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250
ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2Fs
bGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tD
b29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+Z2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dl
bmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgSFRUUENvb2tp
ZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1h
bmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgYm9vbCBlbmFibGVkKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKGNv
b2tpZU1hbmFnZXIpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChlbmFibGVkKTsKIH0KIAot
dm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVN
YW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tp
ZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdL
Q29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJl
ZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9u
IDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdLQ29va2llTWFu
YWdlcl9oCiAKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
RGVwcmVjYXRlZC5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpAQCAtNTUs
MjggKzU2LDI4IEBAIHR5cGVkZWYgc3RydWN0IFdLQ29va2llTWFuYWdlckNsaWVudFYwIHsKICAg
ICBXS0Nvb2tpZU1hbmFnZXJDb29raWVzRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvb2tpZXNEaWRDaGFuZ2U7CiB9IFdLQ29va2llTWFuYWdlckNsaWVudFYw
OwogCi1XS19FWFBPUlQgV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKCk7CitXS19F
WFBPUlQgV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlEKCkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q2xpZW50KFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNl
KiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q2xpZW50KFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRC
YXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIHR5cGVkZWYgdm9pZCAoKldLQ29v
a2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9y
UmVmLCB2b2lkKik7Ci1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgdm9pZCogY29udGV4
dCwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24gZnVuY3Rpb24pOwor
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFu
YWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uIGZ1bmN0aW9uKSBXS19DX0FQSV9ERVBSRUNB
VEVEOwogCi1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9z
dG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLU3RyaW5nUmVmIGhvc3Ru
YW1lKTsKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVN
YW5hZ2VyLCBXS1N0cmluZ1JlZiBob3N0bmFtZSkgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChX
S0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMpOwogCiAvLyBUaGUgdGltZSBoZXJlIGlz
IHJlbGF0aXZlIHRvIHRoZSBVbml4IGVwb2NoLgotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5h
Z2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBj
b29raWVNYW5hZ2VyLCBkb3VibGUpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVN
YW5hZ2VyLCBkb3VibGUpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIHR5cGVkZWYgdm9pZCAoKldL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbikoV0tFcnJvclJl
Ziwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbGljeSwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKK1dLX0VYUE9SVCB2b2lkIFdL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNv
bnRleHQsIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBj
YWxsYmFjaykgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLSFRUUENvb2tp
ZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24pKFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFn
ZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lGdW5jdGlvbiBjYWxsYmFjaykgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZv
aWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5hYmxlZCk7CitXS19FWFBPUlQgdm9pZCBXS0Nv
b2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYg
Y29va2llTWFuYWdlciwgYm9vbCBlbmFibGVkKSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoV0tDb250ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQpOwogCi1XS19FWFBP
UlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5h
Z2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIpOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBS
RUNBVEVEOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpIFdLX0NfQVBJX0RFUFJF
Q0FURUQ7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9y
ZVJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0hUVFBDb29raWVTdG9yZVJlZi5oIgorCisj
aW5jbHVkZSAiQVBJSFRUUENvb2tpZVN0b3JlLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisK
K1dLVHlwZUlEIFdLSFRUUENvb2tpZVN0b3JlR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gV2Vi
S2l0Ojp0b0FQSShBUEk6OkhUVFBDb29raWVTdG9yZTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLSFRUUENvb2tpZVN0b3JlUmVmIGNvb2tp
ZVN0b3JlLCB2b2lkKiBjb250ZXh0LCBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXNG
dW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwoY29va2llU3RvcmUpLT5kZWxldGVBbGxD
b29raWVzKFtjb250ZXh0LCBjYWxsYmFja10geworICAgICAgICBpZiAoY2FsbGJhY2spCisgICAg
ICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKKyAgICB9KTsKK30KKwordm9pZCBXS0hUVFBDb29r
aWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3RvcmVSZWYgY29v
a2llU3RvcmUsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQs
IFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxi
YWNrKQoreworICAgIHRvSW1wbChjb29raWVTdG9yZSktPnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFtjb250ZXh0LCBjYWxsYmFja10g
eworICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsK
KyAgICB9KTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENv
b2tpZVN0b3JlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLSFRUUENvb2tpZVN0b3JlUmVm
X2gKKyNkZWZpbmUgV0tIVFRQQ29va2llU3RvcmVSZWZfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dL
QmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KKworI2lmZGVmIF9f
Y3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tI
VFRQQ29va2llU3RvcmVHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tIVFRQQ29va2ll
U3RvcmVEZWxldGVBbGxDb29raWVzRnVuY3Rpb24pKHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdL
SFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS0hUVFBDb29raWVTdG9yZVJlZiBjb29r
aWVTdG9yZSwgdm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVz
RnVuY3Rpb24gY2FsbGJhY2spOworICAgIAordHlwZWRlZiB2b2lkICgqV0tIVFRQQ29va2llU3Rv
cmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24pKHZvaWQqKTsKK1dLX0VYUE9SVCB2
b2lkIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29r
aWVTdG9yZVJlZiBjb29raWVTdG9yZSwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwg
dm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24gY2FsbGJhY2spOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tIVFRQQ29va2llU3RvcmVSZWZfaCAqLwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCShy
ZXZpc2lvbiAyNDk0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSwxMSBAQCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0CiAgICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShlbmFibGUp
OwogfQogCitXS0hUVFBDb29raWVTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29v
a2llU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZikKK3sKKyAgICByZXR1
cm4gV2ViS2l0Ojp0b0FQSSgmV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aHR0cENvb2tp
ZVN0b3JlKCkpOworfQorCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGVXaXRoQ29tcGxldGlvbkhhbmRsZXIoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZVN0YXRpc3RpY3NEZWJ1Z01vZGVGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgJKHJl
dmlzaW9uIDI0OTQ5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw4IEBAIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1dlYnNpdGVEYXRhU3RvcmVHZXQKIFdLX0VYUE9SVCBXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgV0tXZWJzaXRlRGF0YVN0b3JlR2V0RGVmYXVsdERhdGFTdG9yZSgpOwogV0tfRVhQ
T1JUIFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJz
aXN0ZW50RGF0YVN0b3JlKCk7CiAKK1dLX0VYUE9SVCBXS0hUVFBDb29raWVTdG9yZVJlZiBXS1dl
YnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZik7CisKIFdLX0VYUE9SVCBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBl
bmFibGUpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBi
b29sIGVuYWJsZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJ
SFRUUENvb2tpZVN0b3JlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCShyZXZpc2lvbiAyNDk0
OTMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0
b3JlQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTcwLDQgKzcwLDMwIEBAIHZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzdG9wT2JzZXJ2aW5nQ2hhbmcKICAgICAgICAgb2JzZXJ2ZXItPnN0b3BPYnNl
cnZpbmcoKTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpCit7CisgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNo
YXJlZEhUVFBDb29raWVTdG9yYWdlXSByZW1vdmVDb29raWVzU2luY2VEYXRlOltOU0RhdGUgZGlz
dGFudFBhc3RdXTsKK30KKworc3RhdGljIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b05TSFRU
UENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3k6OkFsd2F5c0FjY2VwdDoKKyAgICAgICAgcmV0dXJuIE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKKyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGlj
eTo6TmV2ZXI6CisgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsK
KyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6T25seUZyb21NYWluRG9j
dW1lbnREb21haW46CisgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeTo6RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1
cm4gKE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lFeGNs
dXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7Cit9CisK
K3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0
VUlQcm9jZXNzQ29va2llU3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGlj
eSkKK3sKKyAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2Vd
IHNldENvb2tpZUFjY2VwdFBvbGljeTp0b05TSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kp
XTsKK30KKwogfSAvLyBuYW1lc3BhY2UgQVBJCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0OTQ5MykKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTExMDIsNiArMTEwMiw3IEBACiAJCTVDNEI5RDhCMjEwQThDQ0YwMDhGMTREMSAvKiBVbmRv
T3JSZWRvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzRCOUQ4QTIxMEE4QzQ2MDA4RjE0RDEgLyogVW5kb09yUmVkby5oICovOyB9OwogCQk1QzVEMjM4
QzIyN0EyQ0RBMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzVEMjM4OTIyN0ExODkyMDAwQjlC
REEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM2MkZERjkxRUZDMjcxQzAwQ0UwNzJFIC8qIFdLVVJM
U2NoZW1lVGFza1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNjJGREY4MUVGQzI2M0MwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NUM2NkE0QjUyMzIwOTYyNDAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzY2QTRCNDIzMjA5NjE0
MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyog
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2OTIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQk1Qzc5NUQ3MTIyOUYzNzU3MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNFMEMzNkEyMjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1By
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1QzdGQjQ3MDIxRTk3REM1MDA5RTMyNDEgLyogV2ViQ29va2llSmFyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdGQjQ2RjIxRTk3QzBDMDA5RTMy
NDEgLyogV2ViQ29va2llSmFyLmggKi87IH07CkBAIC0xNzIyLDggKzE3MjMsNiBAQAogCQkJY29t
cGlsZXJTcGVjID0gY29tLmFwcGxlLmNvbXBpbGVycy5wcm94eS5zY3JpcHQ7CiAJCQlmaWxlUGF0
dGVybnMgPSAiKi5oIjsKIAkJCWZpbGVUeXBlID0gcGF0dGVybi5wcm94eTsKLQkJCWlucHV0Rmls
ZXMgPSAoCi0JCQkpOwogCQkJaXNFZGl0YWJsZSA9IDE7CiAJCQlvdXRwdXRGaWxlcyA9ICgKIAkJ
CQkiJChIRUFERVJfT1VUUFVUX0RJUikvJChJTlBVVF9GSUxFX05BTUUpIiwKQEAgLTM2MzUsNiAr
MzYzNCw4IEBACiAJCTVDNUQyMzg5MjI3QTE4OTIwMDBCOUJEQSAvKiBfV0tDdXN0b21IZWFkZXJG
aWVsZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQ3VzdG9tSGVhZGVy
RmllbGRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNUQyMzhBMjI3QTFEOUIw
MDBCOUJEQSAvKiBBUElDdXN0b21IZWFkZXJGaWVsZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQVBJQ3VzdG9tSGVhZGVyRmllbGRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDNjJGREY4MUVGQzI2M0MwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM2NkE0QjMyMzIwOTYxMzAwRUE0RDQ0IC8qIFdLSFRUUENv
b2tpZVN0b3JlUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
SFRUUENvb2tpZVN0b3JlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM2
NkE0QjQyMzIwOTYxNDAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSFRUUENvb2tpZVN0b3JlUmVmLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNkNFNkQwMUY1OUJDNDYwMDA3QzZDQiAvKiBQYWdlQ2xp
ZW50SW1wbENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGFnZUNsaWVudEltcGxDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2
Q0U2RDMxRjU5RUEzNTAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNsaWVudEltcGxDb2NvYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1Qzc0MzAwRTIxNTAwNDkyMDA0QkZBMTcgLyogV0tXZWJQcm9j
ZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODAzNSw2ICs4MDM2LDggQEAKIAkJCQlCQzBF
NjE5NjEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8sCiAJCQkJ
QjYyRTczMEYxNDMwNDdBNjAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5jcHAgKi8sCiAJCQkJ
QjYyRTczMTExNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oICovLAorCQkJCTVD
NjZBNEIzMjMyMDk2MTMwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5jcHAgKi8sCisJ
CQkJNUM2NkE0QjQyMzIwOTYxNDAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmggKi8s
CiAJCQkJNTExMEFFMEExMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLywK
IAkJCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLywKIAkJ
CQkxQzhFMjkzODEyNzYxRTVCMDBCQzdCRDAgLyogV0tJbnNwZWN0b3IuY3BwICovLApAQCAtMTAx
OTEsNiArMTAxOTQsNyBAQAogCQkJCTFBNDIyRjhCMThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3Rv
cnlEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2MkU3MzEyMTQzMDQ3QjAw
MDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEyNDk5
MUU3NjNDMDEwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNUM2NkE0QjUyMzIwOTYyNDAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjNDRjFDMTMzRDI2MEEwMDU2RjgwMCAvKiBXS0lj
b25EYXRhYmFzZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkFDMzEyQzkxRjM0MDA4RjlD
MzUgLyogV0tJbWFnZS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk1MDgpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wOS0wNCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIERlcHJl
Y2F0ZSBhbGwgV0tDb29raWVNYW5hZ2VyUmVmIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDczCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgcmVwbGFjZW1lbnQgQyBBUEkgaW4g
V2ViS2l0VGVzdFJ1bm5lci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2ll
TWFuYWdlci5jcHA6IFJlbW92ZWQsIGJlY2F1c2UgdGhlIGZ1bmN0aW9ucyBpdCB0ZXN0cyB3ZXJl
IHJlbW92ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0
ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
aW52b2tlKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6
ZVdlYlZpZXdDb25maWd1cmF0aW9uKToKKwogMjAxOS0wOS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICAtW1dLQ29udGVudFZpZXcgc2VsZWN0ZWRU
ZXh0XSByZXR1cm5zIGFuIGVtcHR5IHN0cmluZyB3aGVuIHNlbGVjdGluZyBtb3JlIHRoYW4gMjAw
IGNoYXJhY3RlcnMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjQ5NDkzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTk1LDcgKzE5NSw2IEBAIGlmIChFTkFCTEVfV0VCS0lUKQogICAgIHNldChUZXN0
V2ViS2l0X1NPVVJDRVMKICAgICAgICAgVGVzdHMvV2ViS2l0L0Fib3V0QmxhbmtMb2FkLmNwcAog
ICAgICAgICBUZXN0cy9XZWJLaXQvQ2FuSGFuZGxlUmVxdWVzdC5jcHAKLSAgICAgICAgVGVzdHMv
V2ViS2l0L0Nvb2tpZU1hbmFnZXIuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9ET01XaW5kb3dF
eHRlbnNpb25CYXNpYy5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlw
dEFsZXJ0Q3Jhc2guY3BwCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQ5
NDkzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3ICsyODAsNiBAQAogCQk1MUNEMUM2
QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUNEMUM2QTFCMzhDRTM2MDAxNDJDQTUgLyogTW9k
YWxBbGVydHMubW0gKi87IH07CiAJCTUxQ0QxQzcyMUIzOEQ0ODQwMDE0MkNBNSAvKiBtb2RhbC1h
bGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQ0QxQzcxMUIzOEQ0ODQwMDE0MkNB
NSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1sICovOyB9Owog
CQk1MUQxMjQ5ODFFNzYzQjAyMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQ5NzFFNzYzQUY4
MDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gKi87IH07Ci0JCTUxRDEyNDlCMUU3ODU0
MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVN
YW5hZ2VyLmNwcCAqLzsgfTsKIAkJNTFEOEMxOTAyMjY3QjI2RDAwNzk3RTQwIC8qIFBERkxpbmtS
ZWZlcnJlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRDhDMThGMjI2N0IyNjcwMDc5N0U0MCAvKiBQREZMaW5rUmVmZXJyZXIubW0gKi87IH07CiAJ
CTUxREIxNkNFMUYwODUxMzcwMDFGQTRDNSAvKiBXZWJWaWV3SWNvbkxvYWRpbmcubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MURCMTZDRDFGMDg1MDQ3
MDAxRkE0QzUgLyogV2ViVmlld0ljb25Mb2FkaW5nLm1tICovOyB9OwogCQk1MUU1QzcwMjE5MTlD
M0IyMDBEOEIzRTEgLyogc2ltcGxlMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTc4MDM2MTkxOUFGRjgwMDE4MjlBMiAvKiBzaW1w
bGUyLmh0bWwgKi87IH07CkBAIC0yNTIwLDcgKzI1MTksNiBAQAogCQlGNkI3QkU5MjE3NDY5MUVG
MDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZCN0JFOTMxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29j
aWF0ZUZvcm1Db250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3Jt
Q29udHJvbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5NjE3NDY5
QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJh
c3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RjQ5QzY2MTU1NDVDOEQwMDA3RjM5RCAvKiBET01XaW5k
b3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RjQ5QzY3MTU1NDVDOEQwMDA3RjM5RCAvKiBET01XaW5k
b3dFeHRlbnNpb25Ob0NhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNkZEREREMjE0MjQxQUQ0MDA0RjE3MjkgLyogUHJpdmF0ZUJyb3dzaW5nUHVzaFN0
YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ0MCw3ICszNDM4LDYgQEAKIAkJCQlCQzI0NkQ5
NzEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdF9CdW5kbGUuY3BwICovLAogCQkJ
CTFBNTBBQTFDMUEyQTRFNzAwMEY0QzM0NSAvKiBDbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNw
cCAqLywKIAkJCQk3QzhEREFBOTE3MzVERTFEMDBFQTVBQzAgLyogQ2xvc2VUaGVuVGVybWluYXRl
LmNwcCAqLywKLQkJCQlGNkYzRjI5MDEzMzQyRkVCMDBBNkJGMTkgLyogQ29va2llTWFuYWdlci5j
cHAgKi8sCiAJCQkJRjZCN0JFOTMxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1D
b250cm9scy5jcHAgKi8sCiAJCQkJRjZCN0JFOTIxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29j
aWF0ZUZvcm1Db250cm9sc19CdW5kbGUuY3BwICovLAogCQkJCTkzMzE0MDdCMTdCNDQxOTAwMEYw
ODNCMSAvKiBEaWROb3RIYW5kbGVLZXlEb3duLmNwcCAqLywKQEAgLTQ0MTEsNyArNDQwOCw2IEBA
CiAJCQkJQ0QwQkQwQTYxRjc5OTI0RDAwMUFCMkNGIC8qIENvbnRleHRNZW51SW1nV2l0aFZpZGVv
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMzQjFEMjYyMkE3NEY2NzAwQkNGNEQwIC8qIENvbnRl
eHRNZW51cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMjkzNjkzMUQ1QkY3MEQwMERFQUIxRSAv
KiBDb29raWVBY2NlcHRQb2xpY3kubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQ5QjFFNzg1
NDI1MDAyQjI4MjAgLyogQ29va2llTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzE5
QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyogQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOUIxRjZGNzgxRjkwNTU4NDAwQjU1NzQ0IC8qIENvcHlIVE1MLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTk5OTEwOEIxRjM5M0M5NjAwOEFENDU1IC8qIENvcHlpbmcubW0gaW4g
U291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nvb2tp
ZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0Nvb2tpZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAyNDk0OTMpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDkzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBXS19I
QVZFX0NfU1BJCi0KLSNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KLSNp
bmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewotCi1zdGF0aWMgYm9vbCB0ZXN0RG9uZTsKLS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBwb2xpY3kg
b24gdGhlIG1hY2hpbmUgcnVubmluZyB0aGUgdGVzdCBpcyBub3QgY2hhbmdlZCBhZnRlciBydW5u
aW5nIHRoZSB0ZXN0Lgotc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB1c2VyUG9saWN5
Owotc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0ZXN0UG9saWN5Owotc3RhdGljIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gd2tDb250ZXh0OwotCi1zdGF0aWMgdm9pZCBkaWRHZXRU
ZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQotewotICAgIEVYUEVDVF9FUShyZWludGVycHJl
dF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBjb250ZXh0KTsKLSAgICBFWFBFQ1RfRVEodGVzdFBv
bGljeSwgcG9saWN5KTsKLQotICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0g
V0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29va2ll
TWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdXNlclBvbGlj
eSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0KLSAgICB0ZXN0RG9uZSA9IHRydWU7Ci19Ci0KLXN0YXRp
YyB2b2lkIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgRVhQRUNU
X0VRKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGNvbnRleHQpOwotCi0gICAg
dXNlclBvbGljeSA9IHBvbGljeTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0byBjaG9vc2UgYSBwb2xp
Y3kgZGlmZmVyZW50IGZyb20gdGhlIHBvbGljeSB0aGUgdXNlciBjdXJyZW50bHkgaGFzIHNldC4K
LSAgICB0ZXN0UG9saWN5ID0gKHVzZXJQb2xpY3kgKyAxKSAlIDM7Ci0gICAgV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4
dC5nZXQoKSk7Ci0gICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShj
b29raWVNYW5hZ2VyLCB0ZXN0UG9saWN5LCBudWxscHRyLCBudWxscHRyKTsKLSAgICBXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9s
aWN5KTsKLX0KLQotc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdL
TmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKLXsKLSAgICBXS0Nvb2tpZU1h
bmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250
ZXh0LmdldCgpKTsKLSAgICBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdl
dFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLX0KLQotVEVTVChXZWJLaXQsIENvb2tpZU1h
bmFnZXIpCi17Ci0gICAgd2tDb250ZXh0LmFkb3B0KFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1
cmF0aW9uKG51bGxwdHIpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyh3a0NvbnRleHQu
Z2V0KCkpOwotCi0gICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKLSAg
ICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwotCi0gICAg
bG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7Ci0gICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlz
aE5hdmlnYXRpb24gPSBkaWRGaW5pc2hOYXZpZ2F0aW9uOwotCi0gICAgV0tQYWdlU2V0UGFnZU5h
dmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7Ci0KLSAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJhYm91dDpibGFuayIpKS5nZXQoKSk7Ci0KLSAgICBVdGlsOjpydW4oJnRlc3RE
b25lKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKSW5kZXg6
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNDk0
OTMpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsMTAgKzM4LDEwIEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0UHJpdmF0ZS5oPgotI2lu
Y2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDcmVk
ZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVIYW5kbGVSZWYuaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQQ29va2ll
U3RvcmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJY29uRGF0YWJhc2UuaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tNZXNzYWdlTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tNb2NrRGlz
cGxheS5oPgpAQCAtODY2LDcgKzg2Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJl
ZmVyZW5jZXNUb0MKICAgICBXS1ByZWZlcmVuY2VzU2V0QmVhY29uQVBJRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldERpcmVjdG9yeVVwbG9hZEVuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwogCi0gICAgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2ll
cyhXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKG1fY29udGV4dC5nZXQoKSkpOworICAgIFdLSFRU
UENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29v
a2llU3RvcmUoV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShtX2NvbnRleHQuZ2V0KCkpKSwg
bnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgCkBAIC0yMDkxLDcgKzIwOTEsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25vCiAKICAgICBhdXRvIHNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBbJl0gKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBlUmVmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgewogICAgICAgICBhdXRvIGNvbnRleHQgPSBuZXcgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXS1R5cGVSZWYpPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIFdLQ29v
a2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb250ZXh0R2V0Q29va2llTWFu
YWdlcih0aGlzLT5jb250ZXh0KCkpLCBwb2xpY3ksIGNvbnRleHQsIFtdIChXS0Vycm9yUmVmIGVy
cm9yLCB2b2lkKiBjb250ZXh0KSB7CisgICAgICAgIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tD
b250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShtX2NvbnRleHQuZ2V0KCkpKSwgcG9saWN5LCBjb250
ZXh0LCBbXSAodm9pZCogY29udGV4dCkgewogICAgICAgICAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlclBvaW50ZXIgPSBzdGF0aWNfY2FzdDxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdLVHlwZVJl
Zik+Kj4oY29udGV4dCk7CiAgICAgICAgICAgICAoKmNvbXBsZXRpb25IYW5kbGVyUG9pbnRlciko
bnVsbHB0cik7CiAgICAgICAgICAgICBkZWxldGUgY29tcGxldGlvbkhhbmRsZXJQb2ludGVyOwpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAJKHJldmlzaW9u
IDI0OTQ5MykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBACiAjaW5jbHVkZSAiVUlTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW5jbHVkZSA8V2ViS2l0
L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLRGF0YS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0RpY3Rpb25h
cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVSZWYuaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tJbnNwZWN0b3IuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZS5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgpAQCAtMTY0LDcgKzE2NCw3IEBAIHZv
aWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyhzaG91bGRMb2dIaXN0b3J5
Q2xpZW50Q2FsbGJhY2tzKCkpOwogCi0gICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5jb250ZXh0KCkpLCBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW4sIG51bGxwdHIsIG51bGxwdHIpOworICAgIFdLSFRUUENvb2tpZVN0b3Jl
U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2ll
U3RvcmUoV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuY29udGV4dCgpKSksIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbiwgbnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIGNsZWFyIG91dCB2aXNpdGVkIGxpbmtzIGhlcmUuCiAKQEAgLTkxMiw3ICs5MTIsNyBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkCiAKICAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkIikpIHsKICAgICAgICAgV0tCb29sZWFuUmVmIGFjY2VwdCA9IHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9y
YWdlQWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCkpLCBXS0Jvb2xlYW5HZXRWYWx1ZShhY2NlcHQpKTsK
KyAgICAgICAgV0tDb250ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSwgV0tCb29sZWFuR2V0VmFsdWUoYWNjZXB0KSk7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjQ5
NDkzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0IDxTZWN1cml0eS9T
ZWNJdGVtLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9XS0Nv
b2tpZU1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tTdHJpbmdDRi5oPgpAQCAtNjksNyArNjgsNyBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3
Q29uZmlndXJhdGlvbihjb25zCiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2FsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzID0gWUVTOwogICAgIGdsb2JhbFdlYlZpZXdDb25m
aWd1cmF0aW9uLl9hcHBsZVBheUVuYWJsZWQgPSBZRVM7CiAKLSAgICBXS0Nvb2tpZU1hbmFnZXJT
ZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKGNvbnRl
eHQpLCB0cnVlKTsKKyAgICBXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChjb250
ZXh0LCB0cnVlKTsKIAogICAgIFdLV2Vic2l0ZURhdGFTdG9yZSogcG9vbFdlYnNpdGVEYXRhU3Rv
cmUgPSAoX19icmlkZ2UgV0tXZWJzaXRlRGF0YVN0b3JlICopV0tDb250ZXh0R2V0V2Vic2l0ZURh
dGFTdG9yZSgoX19icmlkZ2UgV0tDb250ZXh0UmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9u
LnByb2Nlc3NQb29sKTsKICAgICBpZiAobGlicmFyeVBhdGgpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378084</attachid>
            <date>2019-09-05 08:24:41 -0700</date>
            <delta_ts>2019-09-05 08:44:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190905082440.patch</filename>
            <type>text/plain</type>
            <size>52403</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTU3MzA4ZDA2MGY3NzNh
NmE0N2VkNmNlMmUxZjM1MDcwOWFiYzMuLjFlNmM1YWU2NzA5NDU5OTlkNGU0ZGRmNWFmMzZkYTFi
MGEzM2E1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTktMDktMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEZXByZWNhdGUg
YWxsIFdLQ29va2llTWFuYWdlclJlZiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZWlyIHVzZSB3YXMgcmVtb3ZlZCBpbiByZGFyOi8v
cHJvYmxlbS81NTAzOTI3NQorICAgICAgICBDcmVhdGVkIHJlcGxhY2VtZW50IEMgQVBJIHRoYXQg
bW9yZSBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgcHVibGljIE9iakMgQVBJIGZvciBXZWJLaXRUZXN0
UnVubmVyLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNw
cDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKToKKyAg
ICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldENsaWVudCk6CisgICAgICAg
IChXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXS0Nv
b2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV0tDb29raWVN
YW5hZ2VyRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJEZWxldGVB
bGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGUpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV0tIVFRQQ29va2llU3RvcmVHZXRUeXBlSUQpOgorICAgICAgICAoV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdLSFRUUENvb2tpZVN0
b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3Jl
R2V0SFRUUENvb2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29v
a2llU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjp0b05T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA5
LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIE1l
c3NhZ2VSZWdpc3RyeSB0byBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAppbmRleCAwMzkxNGIyMWQyZjgzNzg0ODc3MDE5YTZkY2U1ZjQ4YmFmMGY5ODA0Li5lYjdi
MDYxYzQ5OWRjZmI2NDJkNTQ1ZWIwNmI3MmRkOTA5MzY0OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLR2VvbG9jYXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dyYW1tYXJEZXRhaWwqIFdLR3JhbW1hckRldGFpbFJl
ZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSFRUUENvb2tpZVN0b3JlKiBXS0hUVFBD
b29raWVTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSGl0VGVzdFJlc3Vs
dCogV0tIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJY29u
RGF0YWJhc2UqIFdLSWNvbkRhdGFiYXNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNzgxNGZhYWUzYTI2
MGIzODNmZDkxMGQxODBhYTg5ZDZjNDk5NGY3OC4uYzI2MzBiNDU4NGI4MGE5MWJhZWIyZTMwMjVm
MGM0NzliY2M5ZjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zNDEsNiArMzQxLDcgQEAgVUlQcm9jZXNz
L0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xv
Y2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAor
VUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9D
L1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAK
IFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggZTEyMmVlM2VkYjFjNDIx
OWQxZDg0MTk5MzIxYTgwMDNkNTJjODIxYy4uMWM4NTgzYTI1OGZjYzg2MGVlNzE1NTk1MTYyOWIw
ZDA1YWJiYzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTExNyw2ICsxMTcsMzggQEAgdm9pZCBIVFRQQ29va2llU3Rv
cmU6OmRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgQ29tcGxldGlv
bkhhbmQKICAgICB9KTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tp
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9y
YWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQorICAgICAgICAgICAgZGVsZXRl
Q29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CisgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3VwcGxlbWVu
dDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29raWVNYW5hZ2VyLT5k
ZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7CisgICAgLy8g
RklYTUU6IFRoZSBDb21wbGV0aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIEhUVFBDb29raWVT
dG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgYXV0byogcG9vbCA9IG1fb3duaW5nRGF0YVN0b3JlLT5wcm9jZXNzUG9vbEZv
ckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CisgICAgaWYgKCFwb29sKSB7CisgICAgICAgIGlm
ICghbV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisgICAgICAg
ICAgICBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3Rv
cmUocG9saWN5KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNv
b2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5PigpOworICAgIGNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobV9v
d25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIGNsYXNzIEFQ
SVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtMjQ2LDYgKzI3OCw4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOjpDb29rCiB2b2lkIEhUVFBDb29r
aWVTdG9yZTo6ZGVsZXRlQ29va2llRnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25z
dCBXZWJDb3JlOjpDb29raWUmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzdGFydE9ic2Vy
dmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShGdW5jdGlvbjx2b2lkKCk+
JiYpIHsgfQogdm9pZCBIVFRQQ29va2llU3RvcmU6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZh
dWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5KSB7IH0KICNlbmRpZgogICAg
IAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggZWJmOTZjODhkOGU2ZWYwYTY4ZTU2ZDZkMTE3MzY2
N2M2MDZlODQ2Ni4uOGY3YmYzYjkwMTA5OThhYmI3MzUyMDIyMGE3ZGFhNGI2NjU2OWIxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaApA
QCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDb29raWVTdG9yYWdlT2JzZXJ2ZXI7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRh
U3RvcmU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogfQog
CiBuYW1lc3BhY2UgQVBJIHsKQEAgLTYxLDYgKzYyLDkgQEAgcHVibGljOgogICAgIHZvaWQgY29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
Jik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICAKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgY2xhc3Mg
T2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg2LDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNv
bnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9E
ZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lk
IHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKKyAg
ICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOworICAg
IHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6
IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCmluZGV4IDUxNzM3NTU5NDhkZDQxNWUyN2E1ZjczZWE0NzJmYWM4MDk1YmViMTku
LmRmNmFjZDg0MTNmZTY1NGZmNWJiY2RiYzA5MzUyZTc2Mjg4Yjc2NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIElu
dGVybmFsRGVidWdGZWF0dXJlOwogY2xhc3MgRXhwZXJpbWVudGFsRmVhdHVyZTsKIGNsYXNzIEZy
YW1lSGFuZGxlOwogY2xhc3MgRnJhbWVJbmZvOworY2xhc3MgSFRUUENvb2tpZVN0b3JlOwogY2xh
c3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIE1lc3NhZ2VMaXN0ZW5lcjsKIGNsYXNzIE5hdmlnYXRp
b247CkBAIC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLRnJhbWVSZWYsIFdl
YkZyYW1lUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYs
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYsIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24pCitXS19BRERfQVBJX01BUFBJTkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQ
STo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJl
ZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNl
UmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYs
IFdlYkluc3BlY3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKaW5kZXggMTE3OTA1ZjVkOTM5ZjlkZmQzMzcwZGJhMDViOTExYTNkYzc0YzNkMy4u
YTFhNTViZjc3NWM5OWQ4N2E2YjY3YzE2MDg0NmUyZmM2NWIwZjNkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00MTcsNiArNDE3LDExIEBAIGJv
b2wgV0tDb250ZXh0R2V0VXNlc1NpbmdsZVdlYlByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCiAgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5jb25maWd1cmF0aW9u
KCkudXNlc1NpbmdsZVdlYlByb2Nlc3MoKTsKIH0KIAordm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0NvbnRleHRTZXRDdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IG5hbWUpCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldEN1c3RvbVdlYkNv
bnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXZWJLaXQ6OnRvSW1wbChuYW1lKS0+c3RyaW5n
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCA5YTZj
YmNmYzEyOWQ3NjY2YzMwZDgxZjc0NjhjNzcwZGYwMmUxYWQ0Li5lZjZmZjFiOWMyNzNmMDNkZGQy
ZjE3NWY0YjU4NjUyNjhjZDBlMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaApAQCAtMTM3LDEzICsxMzcsMTUgQEAgV0tfRVhQT1JUIHVuc2lnbmVkIFdLQ29u
dGV4dEdldE1heGltdW1OdW1iZXJPZlByb2Nlc3NlcyhXS0NvbnRleHRSZWYgY29udGV4dCkgV0sK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKFdLQ29udGV4
dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRHZXRVc2VzU2luZ2xlV2ViUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZW5hYmxlZCk7CisKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tEb3VibGVSZWYgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9y
eVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwogCiBXS19FWFBPUlQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBP
UlQgV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRD
b29raWVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
V0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9u
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tJY29uRGF0YWJhc2VS
ZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VY
UE9SVCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9y
YWdlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAppbmRleCAwNjM2ZWE2YzJjNzdlM2Zk
NGQwYjRkYzZmMTJkMDhkZWI4Njk1MDQ4Li43YWZhOGZiNDE3YzAzNmRiMDg2ZWU4OTc1Y2I3Yjc1
ZmQ3MmM5ZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29v
a2llTWFuYWdlci5jcHAKQEAgLTI4LDY0ICsyOCw1MCBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXku
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb29raWVNYW5h
Z2VyR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5
OjpBUElUeXBlKTsKKyAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRD
bGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2ll
TWFuYWdlckNsaWVudEJhc2UqIHdrQ2xpZW50KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGll
bnQoV0tDb29raWVNYW5hZ2VyUmVmLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKikK
IHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmluaXRpYWxpemVDbGllbnQod2tDbGll
bnQpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdL
Q29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tp
ZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29r
aWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lk
KiwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pCiB7Ci0gICAgdG9J
bXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRl
eHQsIGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0bmFtZSkKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
KFdLQ29va2llTWFuYWdlclJlZiwgV0tTdHJpbmdSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1h
bmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIHsgdG9JbXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkgfSk7CiB9CiAKLXZv
aWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlclJlZikKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nv
b2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgZG91YmxlIGRhdGUpCit2b2lkIFdLQ29va2ll
TWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJS
ZWYsIGRvdWJsZSkKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlKSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7
CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUZ1bmN0aW9uIGNhbGxiYWNrKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
LCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9u
KQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSwgW2NvbnRleHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9y
ICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUo
KS5wdHIoKSkgOiBudWxscHRyLCBjb250ZXh0KTsKLSAgICB9KTsKIH0KIAotdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5h
Z2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsK
IH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgYm9vbCBlbmFibGVkKQordm9pZCBXS0Nvb2tp
ZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYsIGJv
b2wpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdLQ29v
a2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYp
CiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV0tDb29r
aWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIpCit2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFdLQ29va2llTWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuaAppbmRleCA3MzM1NGQyY2JhNGVkZjk3YjlhNTc5MjBjZDQ1YmM3NzQyNTJiYWE1Li41NTZi
OTQyMjRjMjllM2U0MjNkOTRlZDQ2OThjODk0OGE2ZDNlY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBXS0Nvb2tpZU1hbmFnZXJfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBl
eHRlcm4gIkMiIHsKQEAgLTU1LDI4ICs1NiwyOCBAQCB0eXBlZGVmIHN0cnVjdCBXS0Nvb2tpZU1h
bmFnZXJDbGllbnRWMCB7CiAgICAgV0tDb29raWVNYW5hZ2VyQ29va2llc0RpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzRGlkQ2hhbmdlOwogfSBXS0Nv
b2tpZU1hbmFnZXJDbGllbnRWMDsKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdl
ckdldFR5cGVJRCgpOworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdlckdldFR5cGVJ
RCgpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tDb29r
aWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tD
b29raWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiB0
eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiko
V0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1
bmN0aW9uIGZ1bmN0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBj
b250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBmdW5jdGlv
bikgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2Vy
RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
LCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7Ci1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJE
ZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpIFdLX0NfQVBJ
X0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKTsKIAog
Ly8gVGhlIHRpbWUgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4KLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQsIFdL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7
CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogdHlw
ZWRlZiB2b2lkICgqV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0
aW9uKShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQg
dm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FU
RUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBib29sIGVuYWJsZWQpOwor
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5hYmxlZCkgV0tfQ19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLQ29udGV4dFNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlcikgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5h
Z2VyKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43M2EyYmEwM2JkZWZkMWRkNzBjMTNlM2I1NzUwNjVmNmFkNGExY2Mx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQ
Q29va2llU3RvcmVSZWYuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tIVFRQQ29va2llU3RvcmVSZWYuaCIKKworI2luY2x1
ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCitXS1R5
cGVJRCBXS0hUVFBDb29raWVTdG9yZUdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIFdlYktpdDo6
dG9BUEkoQVBJOjpIVFRQQ29va2llU3RvcmU6OkFQSVR5cGUpOworfQorCit2b2lkIFdLSFRUUENv
b2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS0hUVFBDb29raWVTdG9yZVJlZiBjb29raWVTdG9y
ZSwgdm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzRnVuY3Rp
b24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKGNvb2tpZVN0b3JlKS0+ZGVsZXRlQWxsQ29va2ll
cyhbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAg
ICAgY2FsbGJhY2soY29udGV4dCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV0tIVFRQQ29va2llU3Rv
cmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZVN0b3JlUmVmIGNvb2tpZVN0
b3JlLCBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0hU
VFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykK
K3sKKyAgICB0b0ltcGwoY29va2llU3RvcmUpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRv
SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAg
ICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CisgICAg
fSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBD
b29raWVTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQQ29v
a2llU3RvcmVSZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDg3NWM0M2U0NjdjYzkwNWFkYTVlNTc1ZGM3NzAx
ZTVjZDdlYTgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXS0hUVFBDb29raWVTdG9yZVJlZl9oCisjZGVmaW5lIFdLSFRUUENvb2tpZVN0b3Jl
UmVmX2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tD
b29raWVNYW5hZ2VyLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLSFRUUENvb2tpZVN0b3JlR2V0VHlwZUlEKCk7CisK
K3R5cGVkZWYgdm9pZCAoKldLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llc0Z1bmN0aW9u
KSh2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tp
ZXMoV0tIVFRQQ29va2llU3RvcmVSZWYgY29va2llU3RvcmUsIHZvaWQqIGNvbnRleHQsIFdLSFRU
UENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llc0Z1bmN0aW9uIGNhbGxiYWNrKTsKKyAgICAKK3R5
cGVkZWYgdm9pZCAoKldLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1
bmN0aW9uKSh2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3RvcmVSZWYgY29va2llU3RvcmUsIFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQsIFdLSFRUUENvb2tpZVN0
b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKKworI2lmZGVm
IF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLSFRUUENvb2tpZVN0b3JlUmVm
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IGM5OTA0MTYyZmNkYTYxMWEzMzY5MzFlZjViMTIxYmEw
MDAzNDE5ZjQuLmIyYWMxMWRmNDk3OTU4YjljZWYwOTE3NzQ5NTY2ODg2MzI1NjZiNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZgogICAg
IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z01vZGUoZW5hYmxlKTsKIH0KIAorV0tIVFRQQ29va2llU3RvcmVSZWYgV0tXZWJzaXRlRGF0
YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYpCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoJldlYktpdDo6dG9JbXBsKGRhdGFTdG9y
ZVJlZiktPmh0dHBDb29raWVTdG9yZSgpKTsKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlLCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVidWdNb2RlRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmgKaW5kZXggN2RlYzkyYTJiMTdjNmVkYzc5MzkwM2NkODNhODhjZjE3NWRjM2JhZC4uZGQw
ZGExODM0MDJiMWE5NzUxMWQ0YzM1MGM2Yjk1ZWQ1Zjc1NGY4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTM3
LDYgKzM3LDggQEAgV0tfRVhQT1JUIFdLVHlwZUlEIFdLV2Vic2l0ZURhdGFTdG9yZUdldFR5cGVJ
RCgpOwogV0tfRVhQT1JUIFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVH
ZXREZWZhdWx0RGF0YVN0b3JlKCk7CiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFdL
V2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKTsKIAorV0tfRVhQ
T1JUIFdLSFRUUENvb2tpZVN0b3JlUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVT
dG9yZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmKTsKKwogV0tfRVhQT1JUIGJv
b2wgV0tXZWJzaXRlRGF0YVN0b3JlR2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSk7CiBXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVD
b2NvYS5tbQppbmRleCA4ODA3NzVjYzc4Njk5NzE4OTI5ZGI5ODRhZDIzZDNlMjUwODBhMjY5Li5h
ZDE5Njc2MWQ0ODQwMjFhYmI2M2ZjOWQ1ZWQwN2VkNjVmZmU0NGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9y
ZUNvY29hLm1tCkBAIC03MCw0ICs3MCwzMCBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3RvcE9i
c2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpCiAgICAgICAgIG9i
c2VydmVyLT5zdG9wT2JzZXJ2aW5nKCk7CiB9CiAKK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKQoreworICAgIFtbTlNIVFRQ
Q29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gcmVtb3ZlQ29va2llc1NpbmNl
RGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07Cit9CisKK3N0YXRpYyBOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgV2Vi
S2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CisgICAgICAgIHJldHVy
biBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNj
ZXB0UG9saWN5TmV2ZXI7CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgY2FzZSBXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKKyAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIH0KKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5QWx3YXlzOworfQorCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhU
VFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6dG9OU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5KV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXgg
OWZkNmE2MTFiNTVjYWRiNjk4MDE2MmRlZGYxZTM1YWY3OWFhYWYyNS4uMzFlNzFmNTI5ZWI2YjQ2
ZDAyNjY0NDlmMzY4MGU4NDFmODgxYzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC01NDQsMTIgKzU0NCw2IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICAgICBtX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkID0g
ZW5hYmxlZDsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgPSBl
bmFibGVkOwotICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoZW5hYmxlZCkpOwotfQotCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpjbGVhclBlcm1hbmVudENyZWRlbnRpYWxzRm9yUHJvdGVjdGlvblNwYWNl
KFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYmIHByb3RlY3Rpb25TcGFjZSkKIHsKICAgICBhdXRv
IHNoYXJlZFN0b3JhZ2UgPSBbTlNVUkxDcmVkZW50aWFsU3RvcmFnZSBzaGFyZWRDcmVkZW50aWFs
U3RvcmFnZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmNwcAppbmRleCA3NDMyODgwZTllMzM2MGFmNWFkZmFhYTI2ZGU3YTdkNDUwYzhiZTY1
Li4wNGQwZGEyZWJlMjhlMmYwOGRlNmRjOWIzMGU1NmYyNDVkY2NhNGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKQEAgLTI2OCwx
MyArMjY4LDQgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koV2ViS2l0OjpDYWxsYmFja0lEIGNhbGwKICAgICBtX2NhbGxiYWNrcy50YWtl
PFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJRCktPnBlcmZvcm1DYWxsYmFjaygpOwogfQogCi12b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHByb2Nlc3NQb29sKCktPnNlbmRU
b05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFj
Y2Vzc0FQSUVuYWJsZWQoZW5hYmxlZCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxl
ZCk7Ci0jZW5kaWYKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDY3M2FkNjQwM2ZiMmI3
ZDRkZDk0ZTAxMTBiYzU0OTUyNWIwNmE0YmMuLjJjOTBkNGM3ZjNkNWU5OWI4Mzc2Y2ExMGRiYzJi
NGIzOGFmNjVjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oCkBAIC04MCw4ICs4MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3ks
IEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIGdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBD
b29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKIAotICAgIHZvaWQg
c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7Ci0KICAgICB2b2lkIHN0YXJ0T2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzZTE5Zjg5ZjA4NTRmMTA3OGJjYjk0ZmQ0YjBkZDAz
ZWExMmMzNzA4Li40YTA0MmRmZGM4OGUyOGFiMzNhZWRjYzY4Zjc1YTY2ZTllM2FiM2IyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00MDgsNiArNDA4
LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpDCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAg
IG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgPSBlbmFibGVkOworICAgIHNlbmRUb05ldHdvcmtp
bmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQoZW5hYmxlZCkpOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRDdXN0b21XZWJD
b250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBjdXN0b21XZWJDb250
ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgLy8gR3VhcmQgYWdhaW5zdCBBUEkg
bWlzdXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMTFm
MjM5MTNjMjk0NDkxMDAwOTIwNzhjZmVjYjkxNjY4YTkxYzMzYy4uYTY4ZTgwNDU4NzlmOGMzZDUy
ZWMxNzk3ODhmOTA3ODNmNWQ5ZmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC00NjUsMTEgKzQ2NSwxMSBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgYm9vbCBjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ7IH0KICAgICB2b2lkIHNl
dENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wpOwotICAgIGJvb2wgc3RvcmFn
ZUFjY2Vzc0FQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VBY2Nlc3NBUElFbmFi
bGVkOyB9Ci0gICAgdm9pZCBzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChib29sKTsKIAogICAg
IHZvaWQgY2xlYXJQZXJtYW5lbnRDcmVkZW50aWFsc0ZvclByb3RlY3Rpb25TcGFjZShXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2UmJik7CiAjZW5kaWYKKyAgICBib29sIHN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZDsgfQorICAg
IHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7CiAKICAgICBzdGF0aWMgdWlu
dDY0X3QgcmVnaXN0ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIoRnVuY3Rpb248dm9pZChX
ZWJQcm9jZXNzUG9vbCYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyUHJvY2Vzc1Bv
b2xDcmVhdGlvbkxpc3RlbmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOwpAQCAtNzU2LDggKzc1Niw4
IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIG1fY29va2llU3Rv
cmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBib29sIG1fc3RvcmFnZUFjY2Vz
c0FQSUVuYWJsZWQgeyBmYWxzZSB9OwogCiAgICAgc3RydWN0IFBhdGhzIHsKICAgICAgICAgU3Ry
aW5nIGluamVjdGVkQnVuZGxlUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ2NzM2MDQwY2UxODgwNzgxNTYyZWVmNDc0MWRiMTc1
M2Q1ZjY1MzIuLmI1NzgyZDUyZDg2ZGU2NjViODIxOWZhYmI4NmJjN2JmYjA4ODI0NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEw
Miw2ICsxMTAyLDcgQEAKIAkJNUM0QjlEOEIyMTBBOENDRjAwOEYxNEQxIC8qIFVuZG9PclJlZG8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI5RDhB
MjEwQThDNDYwMDhGMTREMSAvKiBVbmRvT3JSZWRvLmggKi87IH07CiAJCTVDNUQyMzhDMjI3QTJD
REEwMDBCOUJEQSAvKiBfV0tDdXN0b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNUQyMzg5MjI3QTE4OTIwMDBCOUJEQSAvKiBf
V0tDdXN0b21IZWFkZXJGaWVsZHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk1QzYyRkRGOTFFRkMyNzFDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVU
YXNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM2MkZERjgxRUZDMjYzQzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1QzY2QTRC
NTIzMjA5NjI0MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjZBNEI0MjMyMDk2MTQwMEVBNEQ0
NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTVDNzk1RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRl
eHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDRTBDMzY5MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVu
dEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CTVDNzk1RDcxMjI5RjM3NTcwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0Uw
QzM2QTIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDN0ZC
NDcwMjFFOTdEQzUwMDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAvKiBX
ZWJDb29raWVKYXIuaCAqLzsgfTsKQEAgLTE3MjIsOCArMTcyMyw2IEBACiAJCQljb21waWxlclNw
ZWMgPSBjb20uYXBwbGUuY29tcGlsZXJzLnByb3h5LnNjcmlwdDsKIAkJCWZpbGVQYXR0ZXJucyA9
ICIqLmgiOwogCQkJZmlsZVR5cGUgPSBwYXR0ZXJuLnByb3h5OwotCQkJaW5wdXRGaWxlcyA9ICgK
LQkJCSk7CiAJCQlpc0VkaXRhYmxlID0gMTsKIAkJCW91dHB1dEZpbGVzID0gKAogCQkJCSIkKEhF
QURFUl9PVVRQVVRfRElSKS8kKElOUFVUX0ZJTEVfTkFNRSkiLApAQCAtMzYzNSw2ICszNjM0LDgg
QEAKIAkJNUM1RDIzODkyMjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tDdXN0b21IZWFkZXJGaWVsZHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM1RDIzOEEyMjdBMUQ5QjAwMEI5QkRB
IC8qIEFQSUN1c3RvbUhlYWRlckZpZWxkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBUElDdXN0b21IZWFkZXJGaWVsZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUM2MkZERjgxRUZDMjYzQzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1QzY2QTRCMzIzMjA5NjEzMDBFQTRENDQgLyogV0tIVFRQQ29va2llU3Rv
cmVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tIVFRQQ29v
a2llU3RvcmVSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzY2QTRCNDIz
MjA5NjE0MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tIVFRQQ29va2llU3RvcmVSZWYuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUM2Q0U2RDAxRjU5QkM0NjAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBs
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYWdlQ2xp
ZW50SW1wbENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZDRTZEMzFG
NTlFQTM1MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYWdlQ2xpZW50SW1wbENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDNzQzMDBFMjE1MDA0OTIwMDRCRkExNyAvKiBXS1dlYlByb2Nlc3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MDM1LDYgKzgwMzYsOCBAQAogCQkJCUJDMEU2MTk2MTJE
NkNEMTIwMDEyQTcyQSAvKiBXS0dlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQlCNjJFNzMw
RjE0MzA0N0E2MDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmNwcCAqLywKIAkJCQlCNjJFNzMx
MTE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggKi8sCisJCQkJNUM2NkE0QjMy
MzIwOTYxMzAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmNwcCAqLywKKwkJCQk1QzY2
QTRCNDIzMjA5NjE0MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCAqLywKIAkJCQk1
MTEwQUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovLAogCQkJCTUx
MTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovLAogCQkJCTFDOEUy
OTM4MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5jcHAgKi8sCkBAIC0xMDE5MSw2ICsx
MDE5NCw3IEBACiAJCQkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVn
YXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjYyRTczMTIxNDMwNDdCMDAwNjlFQzM1
IC8qIFdLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFEMTI0OTkxRTc2M0Mw
MTAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzY2
QTRCNTIzMjA5NjI0MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFi
YXNlQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0Y2QUMzMTJDOTFGMzQwMDhGOUMzNSAvKiBX
S0ltYWdlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAxODYxZTU4NjczZWVkY2U5OWFjNTMxNjJhYTI5M2NiMDIwMjY2
YzgyLi45NzJkNWU4Mzk0NDdlNzBiYjgzZDI3ZDg0MzExODQyN2U4MjUyYzNmIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTktMDktMDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBEZXByZWNhdGUgYWxsIFdLQ29va2llTWFuYWdlclJlZiBmdW5jdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ3MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IHJlcGxh
Y2VtZW50IEMgQVBJIGluIFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0Nvb2tpZU1hbmFnZXIuY3BwOiBSZW1vdmVkLCBiZWNhdXNlIHRoZSBmdW5jdGlv
bnMgaXQgdGVzdHMgd2VyZSByZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OmluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6CisKIDIwMTktMDktMDMgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbYm1hbGxvY10gSXNv
VExTTGF5b3V0IGFuZCBBbGxJc29IZWFwcyByZWdpc3RyYXRpb24gaXMgcmFjeSB3aXRoIGRlcml2
ZWQgY2xhc3MgaW5pdGlhbGl6YXRpb24gd2l0aCB2aXJ0dWFsIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQKaW5kZXggMjM5NGI1MzFhZTM2YTNmM2M5YjgyNGIxNWZhNTYyZGQz
NTY5MGE0NS4uY2JlY2EzYTdlNDFkMDk4NGU0YTk0ODBhZTU3ZjMzOWMwZmRmNzJmOSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CkBAIC0xOTUsNyArMTk1LDYgQEAgaWYgKEVOQUJMRV9X
RUJLSVQpCiAgICAgc2V0KFRlc3RXZWJLaXRfU09VUkNFUwogICAgICAgICBUZXN0cy9XZWJLaXQv
QWJvdXRCbGFua0xvYWQuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9DYW5IYW5kbGVSZXF1ZXN0
LmNwcAotICAgICAgICBUZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKICAgICAgICAgVGVz
dHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAogICAgICAgICBUZXN0cy9XZWJL
aXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L0Rv
Y3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggODJhNWZmYmJjNTE2YzhjODc0MDdjY2M5ZTJkODlmOTFiZmFlYzRiNi4uZWZmOGQ5MWRh
MDZhNjNjYjUzMTk5ZjM4YzkxOWE4Y2Q2MjMwNWRhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI4MCw3ICsyODAsNiBAQAogCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxB
bGVydHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUNEMUM2QTFCMzhDRTM2MDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gKi87IH07CiAJCTUxQ0Qx
QzcyMUIzOEQ0ODQwMDE0MkNBNSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdp
bmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQ0QxQzcxMUIzOEQ0ODQwMDE0MkNBNSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFi
b3V0LWJsYW5rLXdpbmRvdy5odG1sICovOyB9OwogCQk1MUQxMjQ5ODFFNzYzQjAyMDAyQjI4MjAg
LyogV0tIVFRQQ29va2llU3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUQxMjQ5NzFFNzYzQUY4MDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3Rv
cmUubW0gKi87IH07Ci0JCTUxRDEyNDlCMUU3ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RjNG
MjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNTFEOEMx
OTAyMjY3QjI2RDAwNzk3RTQwIC8qIFBERkxpbmtSZWZlcnJlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDhDMThGMjI2N0IyNjcwMDc5N0U0MCAv
KiBQREZMaW5rUmVmZXJyZXIubW0gKi87IH07CiAJCTUxREIxNkNFMUYwODUxMzcwMDFGQTRDNSAv
KiBXZWJWaWV3SWNvbkxvYWRpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MURCMTZDRDFGMDg1MDQ3MDAxRkE0QzUgLyogV2ViVmlld0ljb25Mb2Fk
aW5nLm1tICovOyB9OwogCQk1MUU1QzcwMjE5MTlDM0IyMDBEOEIzRTEgLyogc2ltcGxlMi5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RTc4MDM2MTkxOUFGRjgwMDE4MjlBMiAvKiBzaW1wbGUyLmh0bWwgKi87IH07CkBAIC0yNTIwLDcg
KzI1MTksNiBAQAogCQlGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3Jt
Q29udHJvbHNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZCN0JF
OTMxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNkI3QkU5NjE3NDY5QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZv
cm0tY29udHJvbHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhc3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5
IC8qIENvb2tpZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RjQ5
QzY2MTU1NDVDOEQwMDA3RjM5RCAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dFeHRlbnNp
b25Ob0NhY2hlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RjQ5
QzY3MTU1NDVDOEQwMDA3RjM5RCAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2Fj
aGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkZEREREMjE0MjQxQUQ0MDA0
RjE3MjkgLyogUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUJyb3dzaW5nUHVzaFN0
YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzQ0MCw3ICszNDM4LDYgQEAKIAkJCQlCQzI0NkQ5NzEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFu
ZGxlUmVxdWVzdF9CdW5kbGUuY3BwICovLAogCQkJCTFBNTBBQTFDMUEyQTRFNzAwMEY0QzM0NSAv
KiBDbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcCAqLywKIAkJCQk3QzhEREFBOTE3MzVERTFE
MDBFQTVBQzAgLyogQ2xvc2VUaGVuVGVybWluYXRlLmNwcCAqLywKLQkJCQlGNkYzRjI5MDEzMzQy
RkVCMDBBNkJGMTkgLyogQ29va2llTWFuYWdlci5jcHAgKi8sCiAJCQkJRjZCN0JFOTMxNzQ2OTFF
RjAwOEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAgKi8sCiAJCQkJRjZCN0JF
OTIxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9sc19CdW5kbGUuY3Bw
ICovLAogCQkJCTkzMzE0MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWROb3RIYW5kbGVLZXlEb3du
LmNwcCAqLywKQEAgLTQ0MTEsNyArNDQwOCw2IEBACiAJCQkJQ0QwQkQwQTYxRjc5OTI0RDAwMUFC
MkNGIC8qIENvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMz
QjFEMjYyMkE3NEY2NzAwQkNGNEQwIC8qIENvbnRleHRNZW51cy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTVDMjkzNjkzMUQ1QkY3MEQwMERFQUIxRSAvKiBDb29raWVBY2NlcHRQb2xpY3kubW0gaW4g
U291cmNlcyAqLywKLQkJCQk1MUQxMjQ5QjFFNzg1NDI1MDAyQjI4MjAgLyogQ29va2llTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzE5QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyogQ29v
a2llUHJpdmF0ZUJyb3dzaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxRjZGNzgxRjkwNTU4
NDAwQjU1NzQ0IC8qIENvcHlIVE1MLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk5OTEwOEIxRjM5
M0M5NjAwOEFENDU1IC8qIENvcHlpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nvb2tpZU1hbmFnZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg0MGM2YzVhMDYyMThjZDk4M2Q2MThiYzdjNTJkMzllOGY0ZjRh
NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgV0tfSEFWRV9DX1NQSQotCi0jaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5hZ2Vy
Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKLQotc3RhdGljIGJvb2wgdGVzdERvbmU7Ci0vLyBNYWtlIHN1cmUgdGhhdCB0aGUg
cG9saWN5IG9uIHRoZSBtYWNoaW5lIHJ1bm5pbmcgdGhlIHRlc3QgaXMgbm90IGNoYW5nZWQgYWZ0
ZXIgcnVubmluZyB0aGUgdGVzdC4KLXN0YXRpYyBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdXNl
clBvbGljeTsKLXN0YXRpYyBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdGVzdFBvbGljeTsKLXN0
YXRpYyBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IHdrQ29udGV4dDsKLQotc3RhdGljIHZvaWQg
ZGlkR2V0VGVzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
IHBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAgICBFWFBFQ1RfRVEocmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgY29udGV4dCk7Ci0gICAgRVhQRUNUX0VR
KHRlc3RQb2xpY3ksIHBvbGljeSk7Ci0KLSAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKLSAgICBX
S0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHVz
ZXJQb2xpY3ksIG51bGxwdHIsIG51bGxwdHIpOwotCi0gICAgdGVzdERvbmUgPSB0cnVlOwotfQot
Ci1zdGF0aWMgdm9pZCBkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQotewotICAg
IEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBjb250ZXh0KTsK
LQotICAgIHVzZXJQb2xpY3kgPSBwb2xpY3k7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdG8gY2hvb3Nl
IGEgcG9saWN5IGRpZmZlcmVudCBmcm9tIHRoZSBwb2xpY3kgdGhlIHVzZXIgY3VycmVudGx5IGhh
cyBzZXQuCi0gICAgdGVzdFBvbGljeSA9ICh1c2VyUG9saWN5ICsgMSkgJSAzOwotICAgIFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3
a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koY29va2llTWFuYWdlciwgdGVzdFBvbGljeSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0gICAg
V0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCBy
ZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRHZXRUZXN0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdl
UmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCi17Ci0gICAgV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KHdrQ29udGV4dC5nZXQoKSk7Ci0gICAgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShjb29raWVNYW5hZ2VyLCByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1Nzgp
LCBkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci19Ci0KLVRFU1QoV2ViS2l0LCBD
b29raWVNYW5hZ2VyKQotewotICAgIHdrQ29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGVXaXRo
Q29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcod2tD
b250ZXh0LmdldCgpKTsKLQotICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGll
bnQ7Ci0gICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
LQotICAgIGxvYWRlckNsaWVudC5iYXNlLnZlcnNpb24gPSAwOwotICAgIGxvYWRlckNsaWVudC5k
aWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsKLQotICAgIFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2Up
OwotCi0gICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhXS1VSTENyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSkuZ2V0KCkpOwotCi0gICAgVXRpbDo6cnVu
KCZ0ZXN0RG9uZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZiNGJkNDc4
M2MwYjI5YzU1NDVlMDlhNTgxNWNlN2Y3Zjc5YjFlYjcuLjJiNmQ4NmIxOTkxMmM3MzI3YzkwNDA1
MmRlNmYwODM4NzhlODVkYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0zOCwxMCArMzgsMTAgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW5j
bHVkZSA8V2ViS2l0L1dLQ29va2llTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0NyZWRl
bnRpYWwuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZUhhbmRsZVJlZi5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0ZyYW1lSW5mb1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hUVFBDb29raWVT
dG9yZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS01lc3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01vY2tEaXNw
bGF5Lmg+CkBAIC04NjYsNyArODY2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW8KICAgICBX
S1ByZWZlcmVuY2VzU2V0QmVhY29uQVBJRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldERpcmVjdG9yeVVwbG9hZEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogCi0gICAgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0NvbnRleHRHZXRDb29r
aWVNYW5hZ2VyKG1fY29udGV4dC5nZXQoKSkpOworICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRl
QWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tDb250ZXh0
R2V0V2Vic2l0ZURhdGFTdG9yZShtX2NvbnRleHQuZ2V0KCkpKSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAKICAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CiAgICAgCkBAIC0yMDkxLDcgKzIwOTEsNyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmCiAKICAgICBhdXRvIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBbJl0gKFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBl
UmVmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIGNvbnRleHQgPSBuZXcg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXS1R5cGVSZWYpPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih0aGlzLT5jb250ZXh0KCkpLCBwb2xpY3ksIGNvbnRl
eHQsIFtdIChXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBjb250ZXh0KSB7CisgICAgICAgIFdLSFRU
UENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVH
ZXRIVFRQQ29va2llU3RvcmUoV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShtX2NvbnRleHQu
Z2V0KCkpKSwgcG9saWN5LCBjb250ZXh0LCBbXSAodm9pZCogY29udGV4dCkgewogICAgICAgICAg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlclBvaW50ZXIgPSBzdGF0aWNfY2FzdDxDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdLVHlwZVJlZik+Kj4oY29udGV4dCk7CiAgICAgICAgICAgICAoKmNvbXBs
ZXRpb25IYW5kbGVyUG9pbnRlcikobnVsbHB0cik7CiAgICAgICAgICAgICBkZWxldGUgY29tcGxl
dGlvbkhhbmRsZXJQb2ludGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcAppbmRleCA5Zjg3ZGIyZjIxYzBhYzExYTdlOTFhZDFjYzMyMWY2YmQ4YzBkZDdiLi5kYzNh
NWY0MzQ4MDNhMTk3ODI2NThiODIwNTNlNDZjYjQ0ZGUxZDczIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgIlVJ
U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydC5oIgogI2lu
Y2x1ZGUgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLQ29v
a2llTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0RhdGEuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tEaWN0aW9uYXJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3JlUmVm
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW5zcGVjdG9yLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
UGFnZVByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KQEAgLTE2NCw3
ICsxNjQsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogCiAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3Moc2hv
dWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcygpKTsKIAotICAgIFdLQ29va2llTWFuYWdlclNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgpKSwga1dLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluLCBudWxscHRyLCBudWxscHRyKTsKKyAgICBXS0hU
VFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tXZWJzaXRlRGF0YVN0b3Jl
R2V0SFRUUENvb2tpZVN0b3JlKFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLmNvbnRleHQoKSkpLCBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
T25seUZyb21NYWluRG9jdW1lbnREb21haW4sIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBjbGVhciBvdXQgdmlzaXRlZCBsaW5rcyBoZXJlLgogCkBAIC05MTIs
NyArOTEyLDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVj
ZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKIAogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJs
ZWQiKSkgewogICAgICAgICBXS0Jvb2xlYW5SZWYgYWNjZXB0ID0gc3RhdGljX2Nhc3Q8V0tCb29s
ZWFuUmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmNvbnRleHQoKSksIFdLQm9vbGVhbkdldFZhbHVlKGFjY2VwdCkpOworICAg
ICAgICBXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuY29udGV4dCgpLCBXS0Jvb2xlYW5HZXRWYWx1ZShhY2NlcHQpKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggOWE1NTgyNDE5YTZhNjU1OGIy
NmI3MTdhNDg5ODkyZWUyYzkzMDNmNi4uZTgyZWUyMmYzNDE4ODkyOGQ5ZjM1N2M0YTVlNzNhMmVm
ZDBhMDdiNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENv
bnRyb2xsZXJDb2NvYS5tbQpAQCAtMzYsNyArMzYsNiBAQAogI2ltcG9ydCA8U2VjdXJpdHkvU2Vj
SXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KICNp
bXBvcnQgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tDb29r
aWVNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLU3RyaW5nQ0YuaD4KQEAgLTY5LDcgKzY4LDcgQEAgdm9pZCBpbml0aWFsaXplV2ViVmlld0Nv
bmZpZ3VyYXRpb24oY29uc3QgY2hhciogbGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVjdGUK
ICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHMgPSBZRVM7CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2FwcGxlUGF5
RW5hYmxlZCA9IFlFUzsKIAotICAgIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoY29udGV4dCksIHRydWUpOworICAgIFdL
Q29udGV4dFNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGNvbnRleHQsIHRydWUpOwogCiAgICAg
V0tXZWJzaXRlRGF0YVN0b3JlKiBwb29sV2Vic2l0ZURhdGFTdG9yZSA9IChfX2JyaWRnZSBXS1dl
YnNpdGVEYXRhU3RvcmUgKilXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKChfX2JyaWRnZSBX
S0NvbnRleHRSZWYpZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wpOwogICAg
IGlmIChsaWJyYXJ5UGF0aCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378086</attachid>
            <date>2019-09-05 08:44:36 -0700</date>
            <delta_ts>2019-09-05 16:51:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190905084435.patch</filename>
            <type>text/plain</type>
            <size>52432</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTU3MzA4ZDA2MGY3NzNh
NmE0N2VkNmNlMmUxZjM1MDcwOWFiYzMuLjFlNmM1YWU2NzA5NDU5OTlkNGU0ZGRmNWFmMzZkYTFi
MGEzM2E1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTktMDktMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEZXByZWNhdGUg
YWxsIFdLQ29va2llTWFuYWdlclJlZiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZWlyIHVzZSB3YXMgcmVtb3ZlZCBpbiByZGFyOi8v
cHJvYmxlbS81NTAzOTI3NQorICAgICAgICBDcmVhdGVkIHJlcGxhY2VtZW50IEMgQVBJIHRoYXQg
bW9yZSBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgcHVibGljIE9iakMgQVBJIGZvciBXZWJLaXRUZXN0
UnVubmVyLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNw
cDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKToKKyAg
ICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldENsaWVudCk6CisgICAgICAg
IChXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXS0Nv
b2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV0tDb29raWVN
YW5hZ2VyRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJEZWxldGVB
bGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGUpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV0tIVFRQQ29va2llU3RvcmVHZXRUeXBlSUQpOgorICAgICAgICAoV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdLSFRUUENvb2tpZVN0
b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3Jl
R2V0SFRUUENvb2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29v
a2llU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjp0b05T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA5
LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIE1l
c3NhZ2VSZWdpc3RyeSB0byBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAppbmRleCAwMzkxNGIyMWQyZjgzNzg0ODc3MDE5YTZkY2U1ZjQ4YmFmMGY5ODA0Li5lYjdi
MDYxYzQ5OWRjZmI2NDJkNTQ1ZWIwNmI3MmRkOTA5MzY0OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLR2VvbG9jYXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dyYW1tYXJEZXRhaWwqIFdLR3JhbW1hckRldGFpbFJl
ZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSFRUUENvb2tpZVN0b3JlKiBXS0hUVFBD
b29raWVTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSGl0VGVzdFJlc3Vs
dCogV0tIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJY29u
RGF0YWJhc2UqIFdLSWNvbkRhdGFiYXNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNzgxNGZhYWUzYTI2
MGIzODNmZDkxMGQxODBhYTg5ZDZjNDk5NGY3OC4uYzI2MzBiNDU4NGI4MGE5MWJhZWIyZTMwMjVm
MGM0NzliY2M5ZjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zNDEsNiArMzQxLDcgQEAgVUlQcm9jZXNz
L0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xv
Y2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAor
VUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9D
L1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAK
IFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggZTEyMmVlM2VkYjFjNDIx
OWQxZDg0MTk5MzIxYTgwMDNkNTJjODIxYy4uMWM4NTgzYTI1OGZjYzg2MGVlNzE1NTk1MTYyOWIw
ZDA1YWJiYzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTExNyw2ICsxMTcsMzggQEAgdm9pZCBIVFRQQ29va2llU3Rv
cmU6OmRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgQ29tcGxldGlv
bkhhbmQKICAgICB9KTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tp
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9y
YWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQorICAgICAgICAgICAgZGVsZXRl
Q29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CisgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3VwcGxlbWVu
dDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29raWVNYW5hZ2VyLT5k
ZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7CisgICAgLy8g
RklYTUU6IFRoZSBDb21wbGV0aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIEhUVFBDb29raWVT
dG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgYXV0byogcG9vbCA9IG1fb3duaW5nRGF0YVN0b3JlLT5wcm9jZXNzUG9vbEZv
ckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CisgICAgaWYgKCFwb29sKSB7CisgICAgICAgIGlm
ICghbV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisgICAgICAg
ICAgICBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3Rv
cmUocG9saWN5KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNv
b2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5PigpOworICAgIGNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobV9v
d25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIGNsYXNzIEFQ
SVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtMjQ2LDYgKzI3OCw4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOjpDb29rCiB2b2lkIEhUVFBDb29r
aWVTdG9yZTo6ZGVsZXRlQ29va2llRnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25z
dCBXZWJDb3JlOjpDb29raWUmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzdGFydE9ic2Vy
dmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShGdW5jdGlvbjx2b2lkKCk+
JiYpIHsgfQogdm9pZCBIVFRQQ29va2llU3RvcmU6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZh
dWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5KSB7IH0KICNlbmRpZgogICAg
IAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggZWJmOTZjODhkOGU2ZWYwYTY4ZTU2ZDZkMTE3MzY2
N2M2MDZlODQ2Ni4uOGY3YmYzYjkwMTA5OThhYmI3MzUyMDIyMGE3ZGFhNGI2NjU2OWIxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaApA
QCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDb29raWVTdG9yYWdlT2JzZXJ2ZXI7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRh
U3RvcmU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogfQog
CiBuYW1lc3BhY2UgQVBJIHsKQEAgLTYxLDYgKzYyLDkgQEAgcHVibGljOgogICAgIHZvaWQgY29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
Jik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICAKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgY2xhc3Mg
T2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg2LDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNv
bnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9E
ZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lk
IHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKKyAg
ICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOworICAg
IHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6
IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCmluZGV4IDUxNzM3NTU5NDhkZDQxNWUyN2E1ZjczZWE0NzJmYWM4MDk1YmViMTku
LmRmNmFjZDg0MTNmZTY1NGZmNWJiY2RiYzA5MzUyZTc2Mjg4Yjc2NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIElu
dGVybmFsRGVidWdGZWF0dXJlOwogY2xhc3MgRXhwZXJpbWVudGFsRmVhdHVyZTsKIGNsYXNzIEZy
YW1lSGFuZGxlOwogY2xhc3MgRnJhbWVJbmZvOworY2xhc3MgSFRUUENvb2tpZVN0b3JlOwogY2xh
c3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIE1lc3NhZ2VMaXN0ZW5lcjsKIGNsYXNzIE5hdmlnYXRp
b247CkBAIC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLRnJhbWVSZWYsIFdl
YkZyYW1lUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYs
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYsIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24pCitXS19BRERfQVBJX01BUFBJTkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQ
STo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJl
ZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNl
UmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYs
IFdlYkluc3BlY3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKaW5kZXggMTE3OTA1ZjVkOTM5ZjlkZmQzMzcwZGJhMDViOTExYTNkYzc0YzNkMy4u
YTFhNTViZjc3NWM5OWQ4N2E2YjY3YzE2MDg0NmUyZmM2NWIwZjNkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00MTcsNiArNDE3LDExIEBAIGJv
b2wgV0tDb250ZXh0R2V0VXNlc1NpbmdsZVdlYlByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCiAgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5jb25maWd1cmF0aW9u
KCkudXNlc1NpbmdsZVdlYlByb2Nlc3MoKTsKIH0KIAordm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0NvbnRleHRTZXRDdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IG5hbWUpCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldEN1c3RvbVdlYkNv
bnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXZWJLaXQ6OnRvSW1wbChuYW1lKS0+c3RyaW5n
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCA5YTZj
YmNmYzEyOWQ3NjY2YzMwZDgxZjc0NjhjNzcwZGYwMmUxYWQ0Li5lZjZmZjFiOWMyNzNmMDNkZGQy
ZjE3NWY0YjU4NjUyNjhjZDBlMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaApAQCAtMTM3LDEzICsxMzcsMTUgQEAgV0tfRVhQT1JUIHVuc2lnbmVkIFdLQ29u
dGV4dEdldE1heGltdW1OdW1iZXJPZlByb2Nlc3NlcyhXS0NvbnRleHRSZWYgY29udGV4dCkgV0sK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKFdLQ29udGV4
dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRHZXRVc2VzU2luZ2xlV2ViUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZW5hYmxlZCk7CisKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tEb3VibGVSZWYgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9y
eVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwogCiBXS19FWFBPUlQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBP
UlQgV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRD
b29raWVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
V0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9u
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tJY29uRGF0YWJhc2VS
ZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VY
UE9SVCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9y
YWdlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAppbmRleCAwNjM2ZWE2YzJjNzdlM2Zk
NGQwYjRkYzZmMTJkMDhkZWI4Njk1MDQ4Li43YWZhOGZiNDE3YzAzNmRiMDg2ZWU4OTc1Y2I3Yjc1
ZmQ3MmM5ZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29v
a2llTWFuYWdlci5jcHAKQEAgLTI4LDY0ICsyOCw1MCBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXku
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb29raWVNYW5h
Z2VyR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5
OjpBUElUeXBlKTsKKyAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRD
bGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2ll
TWFuYWdlckNsaWVudEJhc2UqIHdrQ2xpZW50KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGll
bnQoV0tDb29raWVNYW5hZ2VyUmVmLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKikK
IHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmluaXRpYWxpemVDbGllbnQod2tDbGll
bnQpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdL
Q29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tp
ZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29r
aWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lk
KiwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pCiB7Ci0gICAgdG9J
bXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRl
eHQsIGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0bmFtZSkKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
KFdLQ29va2llTWFuYWdlclJlZiwgV0tTdHJpbmdSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1h
bmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIHsgdG9JbXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkgfSk7CiB9CiAKLXZv
aWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlclJlZikKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nv
b2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgZG91YmxlIGRhdGUpCit2b2lkIFdLQ29va2ll
TWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJS
ZWYsIGRvdWJsZSkKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlKSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7
CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUZ1bmN0aW9uIGNhbGxiYWNrKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
LCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9u
KQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSwgW2NvbnRleHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9y
ICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUo
KS5wdHIoKSkgOiBudWxscHRyLCBjb250ZXh0KTsKLSAgICB9KTsKIH0KIAotdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5h
Z2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsK
IH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgYm9vbCBlbmFibGVkKQordm9pZCBXS0Nvb2tp
ZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYsIGJv
b2wpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdLQ29v
a2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYp
CiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV0tDb29r
aWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIpCit2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFdLQ29va2llTWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuaAppbmRleCA3MzM1NGQyY2JhNGVkZjk3YjlhNTc5MjBjZDQ1YmM3NzQyNTJiYWE1Li41NTZi
OTQyMjRjMjllM2U0MjNkOTRlZDQ2OThjODk0OGE2ZDNlY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBXS0Nvb2tpZU1hbmFnZXJfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBl
eHRlcm4gIkMiIHsKQEAgLTU1LDI4ICs1NiwyOCBAQCB0eXBlZGVmIHN0cnVjdCBXS0Nvb2tpZU1h
bmFnZXJDbGllbnRWMCB7CiAgICAgV0tDb29raWVNYW5hZ2VyQ29va2llc0RpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzRGlkQ2hhbmdlOwogfSBXS0Nv
b2tpZU1hbmFnZXJDbGllbnRWMDsKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdl
ckdldFR5cGVJRCgpOworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdlckdldFR5cGVJ
RCgpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tDb29r
aWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tD
b29raWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiB0
eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiko
V0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1
bmN0aW9uIGZ1bmN0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBj
b250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBmdW5jdGlv
bikgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2Vy
RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
LCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7Ci1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJE
ZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpIFdLX0NfQVBJ
X0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKTsKIAog
Ly8gVGhlIHRpbWUgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4KLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQsIFdL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7
CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogdHlw
ZWRlZiB2b2lkICgqV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0
aW9uKShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQg
dm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FU
RUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBib29sIGVuYWJsZWQpOwor
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5hYmxlZCkgV0tfQ19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLQ29udGV4dFNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlcikgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5h
Z2VyKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43M2EyYmEwM2JkZWZkMWRkNzBjMTNlM2I1NzUwNjVmNmFkNGExY2Mx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQ
Q29va2llU3RvcmVSZWYuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tIVFRQQ29va2llU3RvcmVSZWYuaCIKKworI2luY2x1
ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCitXS1R5
cGVJRCBXS0hUVFBDb29raWVTdG9yZUdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIFdlYktpdDo6
dG9BUEkoQVBJOjpIVFRQQ29va2llU3RvcmU6OkFQSVR5cGUpOworfQorCit2b2lkIFdLSFRUUENv
b2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS0hUVFBDb29raWVTdG9yZVJlZiBjb29raWVTdG9y
ZSwgdm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzRnVuY3Rp
b24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKGNvb2tpZVN0b3JlKS0+ZGVsZXRlQWxsQ29va2ll
cyhbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAg
ICAgY2FsbGJhY2soY29udGV4dCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV0tIVFRQQ29va2llU3Rv
cmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZVN0b3JlUmVmIGNvb2tpZVN0
b3JlLCBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0hU
VFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykK
K3sKKyAgICB0b0ltcGwoY29va2llU3RvcmUpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRv
SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAg
ICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CisgICAg
fSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBD
b29raWVTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQQ29v
a2llU3RvcmVSZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDg3NWM0M2U0NjdjYzkwNWFkYTVlNTc1ZGM3NzAx
ZTVjZDdlYTgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXS0hUVFBDb29raWVTdG9yZVJlZl9oCisjZGVmaW5lIFdLSFRUUENvb2tpZVN0b3Jl
UmVmX2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tD
b29raWVNYW5hZ2VyLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLSFRUUENvb2tpZVN0b3JlR2V0VHlwZUlEKCk7CisK
K3R5cGVkZWYgdm9pZCAoKldLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llc0Z1bmN0aW9u
KSh2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tp
ZXMoV0tIVFRQQ29va2llU3RvcmVSZWYgY29va2llU3RvcmUsIHZvaWQqIGNvbnRleHQsIFdLSFRU
UENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llc0Z1bmN0aW9uIGNhbGxiYWNrKTsKKyAgICAKK3R5
cGVkZWYgdm9pZCAoKldLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1
bmN0aW9uKSh2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3RvcmVSZWYgY29va2llU3RvcmUsIFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQsIFdLSFRUUENvb2tpZVN0
b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKKworI2lmZGVm
IF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLSFRUUENvb2tpZVN0b3JlUmVm
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IGM5OTA0MTYyZmNkYTYxMWEzMzY5MzFlZjViMTIxYmEw
MDAzNDE5ZjQuLmIyYWMxMWRmNDk3OTU4YjljZWYwOTE3NzQ5NTY2ODg2MzI1NjZiNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZgogICAg
IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z01vZGUoZW5hYmxlKTsKIH0KIAorV0tIVFRQQ29va2llU3RvcmVSZWYgV0tXZWJzaXRlRGF0
YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYpCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoJldlYktpdDo6dG9JbXBsKGRhdGFTdG9y
ZVJlZiktPmh0dHBDb29raWVTdG9yZSgpKTsKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlLCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVidWdNb2RlRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmgKaW5kZXggN2RlYzkyYTJiMTdjNmVkYzc5MzkwM2NkODNhODhjZjE3NWRjM2JhZC4uZGQw
ZGExODM0MDJiMWE5NzUxMWQ0YzM1MGM2Yjk1ZWQ1Zjc1NGY4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTM3
LDYgKzM3LDggQEAgV0tfRVhQT1JUIFdLVHlwZUlEIFdLV2Vic2l0ZURhdGFTdG9yZUdldFR5cGVJ
RCgpOwogV0tfRVhQT1JUIFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVH
ZXREZWZhdWx0RGF0YVN0b3JlKCk7CiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFdL
V2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKTsKIAorV0tfRVhQ
T1JUIFdLSFRUUENvb2tpZVN0b3JlUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVT
dG9yZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmKTsKKwogV0tfRVhQT1JUIGJv
b2wgV0tXZWJzaXRlRGF0YVN0b3JlR2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSk7CiBXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVD
b2NvYS5tbQppbmRleCA4ODA3NzVjYzc4Njk5NzE4OTI5ZGI5ODRhZDIzZDNlMjUwODBhMjY5Li5h
ZDE5Njc2MWQ0ODQwMjFhYmI2M2ZjOWQ1ZWQwN2VkNjVmZmU0NGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENvb2tpZVN0b3JlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9y
ZUNvY29hLm1tCkBAIC03MCw0ICs3MCwzMCBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6c3RvcE9i
c2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpCiAgICAgICAgIG9i
c2VydmVyLT5zdG9wT2JzZXJ2aW5nKCk7CiB9CiAKK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKQoreworICAgIFtbTlNIVFRQ
Q29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gcmVtb3ZlQ29va2llc1NpbmNl
RGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07Cit9CisKK3N0YXRpYyBOU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2llQWNj
ZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgV2Vi
S2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2NlcHQ6CisgICAgICAgIHJldHVy
biBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNj
ZXB0UG9saWN5TmV2ZXI7CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6
Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgY2FzZSBXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFp
bjoKKyAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIH0KKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5QWx3YXlzOworfQorCit2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKFdlYktpdDo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhU
VFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6dG9OU0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5KV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXgg
OWZkNmE2MTFiNTVjYWRiNjk4MDE2MmRlZGYxZTM1YWY3OWFhYWYyNS4uMzFlNzFmNTI5ZWI2YjQ2
ZDAyNjY0NDlmMzY4MGU4NDFmODgxYzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC01NDQsMTIgKzU0NCw2IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICAgICBtX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkID0g
ZW5hYmxlZDsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgPSBl
bmFibGVkOwotICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoZW5hYmxlZCkpOwotfQotCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpjbGVhclBlcm1hbmVudENyZWRlbnRpYWxzRm9yUHJvdGVjdGlvblNwYWNl
KFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYmIHByb3RlY3Rpb25TcGFjZSkKIHsKICAgICBhdXRv
IHNoYXJlZFN0b3JhZ2UgPSBbTlNVUkxDcmVkZW50aWFsU3RvcmFnZSBzaGFyZWRDcmVkZW50aWFs
U3RvcmFnZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmNwcAppbmRleCA3NDMyODgwZTllMzM2MGFmNWFkZmFhYTI2ZGU3YTdkNDUwYzhiZTY1
Li4wNGQwZGEyZWJlMjhlMmYwOGRlNmRjOWIzMGU1NmYyNDVkY2NhNGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKQEAgLTI2OCwx
MyArMjY4LDQgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koV2ViS2l0OjpDYWxsYmFja0lEIGNhbGwKICAgICBtX2NhbGxiYWNrcy50YWtl
PFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJRCktPnBlcmZvcm1DYWxsYmFjaygpOwogfQogCi12b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHByb2Nlc3NQb29sKCktPnNlbmRU
b05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFj
Y2Vzc0FQSUVuYWJsZWQoZW5hYmxlZCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxl
ZCk7Ci0jZW5kaWYKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDY3M2FkNjQwM2ZiMmI3
ZDRkZDk0ZTAxMTBiYzU0OTUyNWIwNmE0YmMuLjJjOTBkNGM3ZjNkNWU5OWI4Mzc2Y2ExMGRiYzJi
NGIzOGFmNjVjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oCkBAIC04MCw4ICs4MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3ks
IEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIGdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBD
b29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKIAotICAgIHZvaWQg
c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7Ci0KICAgICB2b2lkIHN0YXJ0T2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzZTE5Zjg5ZjA4NTRmMTA3OGJjYjk0ZmQ0YjBkZDAz
ZWExMmMzNzA4Li4zZDcyMjc5ZjE1MTYxN2NiYjczMGM5ZjQ5MzU5NTNmZThmYzBhNGY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00MDgsNiArNDA4
LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpDCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAg
IG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgPSBlbmFibGVkOworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoZW5hYmxlZCkpOworI2VuZGlmCit9CisKIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmll
cihjb25zdCBTdHJpbmcmIGN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcikK
IHsKICAgICAvLyBHdWFyZCBhZ2FpbnN0IEFQSSBtaXN1c2UuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxMWYyMzkxM2MyOTQ0OTEwMDA5MjA3OGNmZWNiOTE2
NjhhOTFjMzNjLi5hNjhlODA0NTg3OWY4YzNkNTJlYzE3OTc4OGY5MDc4M2Y1ZDlmZDU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ2NSwxMSArNDY1LDEx
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIGNvb2tpZVN0b3JhZ2VQ
YXJ0aXRpb25pbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jb29raWVTdG9yYWdlUGFydGl0
aW9uaW5nRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0Vu
YWJsZWQoYm9vbCk7Ci0gICAgYm9vbCBzdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBjbGVhclBlcm1hbmVudENyZWRlbnRp
YWxzRm9yUHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYmKTsKICNlbmRp
ZgorICAgIGJvb2wgc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0
b3JhZ2VBY2Nlc3NBUElFbmFibGVkOyB9CisgICAgdm9pZCBzZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChib29sKTsKIAogICAgIHN0YXRpYyB1aW50NjRfdCByZWdpc3RlclByb2Nlc3NQb29sQ3Jl
YXRpb25MaXN0ZW5lcihGdW5jdGlvbjx2b2lkKFdlYlByb2Nlc3NQb29sJik+JiYpOwogICAgIHN0
YXRpYyB2b2lkIHVucmVnaXN0ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIodWludDY0X3Qg
aWRlbnRpZmllcik7CkBAIC03NTYsOCArNzU2LDggQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGJvb2wgbV9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkIHsgZmFsc2UgfTsKICNl
bmRpZgorICAgIGJvb2wgbV9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAKICAg
ICBzdHJ1Y3QgUGF0aHMgewogICAgICAgICBTdHJpbmcgaW5qZWN0ZWRCdW5kbGVQYXRoOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDY3
MzYwNDBjZTE4ODA3ODE1NjJlZWY0NzQxZGIxNzUzZDVmNjUzMi4uYjU3ODJkNTJkODZkZTY2NWI4
MjE5ZmFiYjg2YmM3YmZiMDg4MjQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAyLDYgKzExMDIsNyBAQAogCQk1QzRCOUQ4QjIx
MEE4Q0NGMDA4RjE0RDEgLyogVW5kb09yUmVkby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjlEOEEyMTBBOEM0NjAwOEYxNEQxIC8qIFVuZG9PclJl
ZG8uaCAqLzsgfTsKIAkJNUM1RDIzOEMyMjdBMkNEQTAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRl
ckZpZWxkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUM1RDIzODkyMjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDNjJGREY5MUVG
QzI3MUMwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUg
LyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTVDNjZBNEI1MjMyMDk2MjQwMEVBNEQ0NCAvKiBXS0hUVFBD
b29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM2NkE0QjQyMzIwOTYxNDAwRUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM3OTVE
NzAyMjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNFMEMzNjkyMjlGMkQ0QTAw
MzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJNUM3OTVENzEyMjlGMzc1NzAwM0ZGMUM0IC8q
IFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTBDMzZBMjI5RjJENEEwMDM2OTVGMCAvKiBXS0Nv
bnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM3RkI0NzAyMUU5N0RDNTAwOUUzMjQxIC8qIFdlYkNv
b2tpZUphci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUM3RkI0NkYyMUU5N0MwQzAwOUUzMjQxIC8qIFdlYkNvb2tpZUphci5oICovOyB9OwpAQCAtMTcy
Miw4ICsxNzIzLDYgQEAKIAkJCWNvbXBpbGVyU3BlYyA9IGNvbS5hcHBsZS5jb21waWxlcnMucHJv
eHkuc2NyaXB0OwogCQkJZmlsZVBhdHRlcm5zID0gIiouaCI7CiAJCQlmaWxlVHlwZSA9IHBhdHRl
cm4ucHJveHk7Ci0JCQlpbnB1dEZpbGVzID0gKAotCQkJKTsKIAkJCWlzRWRpdGFibGUgPSAxOwog
CQkJb3V0cHV0RmlsZXMgPSAoCiAJCQkJIiQoSEVBREVSX09VVFBVVF9ESVIpLyQoSU5QVVRfRklM
RV9OQU1FKSIsCkBAIC0zNjM1LDYgKzM2MzQsOCBAQAogCQk1QzVEMjM4OTIyN0ExODkyMDAwQjlC
REEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzVEMjM4QTIyN0ExRDlCMDAwQjlCREEgLyogQVBJQ3VzdG9tSGVhZGVyRmllbGRzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUN1c3RvbUhlYWRlckZpZWxkcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUg
LyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZVRh
c2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjZBNEIzMjMyMDk2
MTMwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS0hUVFBDb29raWVTdG9yZVJlZi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDNjZBNEI0MjMyMDk2MTQwMEVBNEQ0NCAvKiBXS0hUVFBDb29r
aWVTdG9yZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0hUVFBDb29r
aWVTdG9yZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZDRTZEMDFGNTlC
QzQ2MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBsQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDNkNFNkQzMUY1OUVBMzUwMDA3QzZDQiAvKiBQYWdlQ2xpZW50
SW1wbENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDbGllbnRJ
bXBsQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3NDMwMEUyMTUwMDQ5
MjAwNEJGQTE3IC8qIFdLV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMzUs
NiArODAzNiw4IEBACiAJCQkJQkMwRTYxOTYxMkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAogCQkJCUI2MkU3MzBGMTQzMDQ3QTYwMDY5RUMzNSAvKiBXS0hpdFRl
c3RSZXN1bHQuY3BwICovLAogCQkJCUI2MkU3MzExMTQzMDQ3QjAwMDY5RUMzNSAvKiBXS0hpdFRl
c3RSZXN1bHQuaCAqLywKKwkJCQk1QzY2QTRCMzIzMjA5NjEzMDBFQTRENDQgLyogV0tIVFRQQ29v
a2llU3RvcmVSZWYuY3BwICovLAorCQkJCTVDNjZBNEI0MjMyMDk2MTQwMEVBNEQ0NCAvKiBXS0hU
VFBDb29raWVTdG9yZVJlZi5oICovLAogCQkJCTUxMTBBRTBBMTMzQzE2Q0IwMDcyNzE3QSAvKiBX
S0ljb25EYXRhYmFzZS5jcHAgKi8sCiAJCQkJNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdL
SWNvbkRhdGFiYXNlLmggKi8sCiAJCQkJMUM4RTI5MzgxMjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5z
cGVjdG9yLmNwcCAqLywKQEAgLTEwMTkxLDYgKzEwMTk0LDcgQEAKIAkJCQkxQTQyMkY4QjE4QjI5
QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUQxMjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3Rv
cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDNjZBNEI1MjMyMDk2MjQwMEVBNEQ0NCAvKiBXS0hU
VFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMEFFMEQxMzNDMTZDQjAw
NzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIzQ0YxQzEz
M0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDRjZBQzMxMkM5MUYzNDAwOEY5QzM1IC8qIFdLSW1hZ2UuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE4NjFlNTg2
NzNlZWRjZTk5YWM1MzE2MmFhMjkzY2IwMjAyNjZjODIuLjk3MmQ1ZTgzOTQ0N2U3MGJiODNkMjdk
ODQzMTE4NDI3ZTgyNTJjM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wOS0wNSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIERlcHJlY2F0ZSBhbGwgV0tD
b29raWVNYW5hZ2VyUmVmIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRvcHQgcmVwbGFjZW1lbnQgQyBBUEkgaW4gV2ViS2l0VGVzdFJ1
bm5lci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHA6
IFJlbW92ZWQsIGJlY2F1c2UgdGhlIGZ1bmN0aW9ucyBpdCB0ZXN0cyB3ZXJlIHJlbW92ZWQuCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6aW52b2tlKToKKyAg
ICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6aW5pdGlhbGl6ZVdlYlZpZXdDb25m
aWd1cmF0aW9uKToKKwogMjAxOS0wOS0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtibWFsbG9jXSBJc29UTFNMYXlvdXQgYW5kIEFsbElzb0hlYXBzIHJl
Z2lzdHJhdGlvbiBpcyByYWN5IHdpdGggZGVyaXZlZCBjbGFzcyBpbml0aWFsaXphdGlvbiB3aXRo
IHZpcnR1YWwgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCAyMzk0
YjUzMWFlMzZhM2YzYzliODI0YjE1ZmE1NjJkZDM1NjkwYTQ1Li5jYmVjYTNhN2U0MWQwOTg0ZTRh
OTQ4MGFlNTdmMzM5YzBmZGY3MmY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAg
LTE5NSw3ICsxOTUsNiBAQCBpZiAoRU5BQkxFX1dFQktJVCkKICAgICBzZXQoVGVzdFdlYktpdF9T
T1VSQ0VTCiAgICAgICAgIFRlc3RzL1dlYktpdC9BYm91dEJsYW5rTG9hZC5jcHAKICAgICAgICAg
VGVzdHMvV2ViS2l0L0NhbkhhbmRsZVJlcXVlc3QuY3BwCi0gICAgICAgIFRlc3RzL1dlYktpdC9D
b29raWVNYW5hZ2VyLmNwcAogICAgICAgICBUZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9u
QmFzaWMuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hl
LmNwcAogICAgICAgICBUZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENy
YXNoLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MmE1ZmZiYmM1MTZjOGM4NzQwN2Nj
YzllMmQ4OWY5MWJmYWVjNGI2Li5lZmY4ZDkxZGEwNmE2M2NiNTMxOTlmMzhjOTE5YThjZDYyMzA1
ZGE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgwLDcgKzI4MCw2IEBACiAJCTUxQ0Qx
QzZDMUIzOENFNDMwMDE0MkNBNSAvKiBNb2RhbEFsZXJ0cy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQ0QxQzZBMUIzOENFMzYwMDE0MkNBNSAvKiBN
b2RhbEFsZXJ0cy5tbSAqLzsgfTsKIAkJNTFDRDFDNzIxQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFs
LWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNzExQjM4RDQ4NDAwMTQy
Q0E1IC8qIG1vZGFsLWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgKi87IH07
CiAJCTUxRDEyNDk4MUU3NjNCMDIwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDk3MUU3NjNB
RjgwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLzsgfTsKLQkJNTFEMTI0OUIxRTc4
NTQyNTAwMkIyODIwIC8qIENvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENvb2tp
ZU1hbmFnZXIuY3BwICovOyB9OwogCQk1MUQ4QzE5MDIyNjdCMjZEMDA3OTdFNDAgLyogUERGTGlu
a1JlZmVycmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFEOEMxOEYyMjY3QjI2NzAwNzk3RTQwIC8qIFBERkxpbmtSZWZlcnJlci5tbSAqLzsgfTsK
IAkJNTFEQjE2Q0UxRjA4NTEzNzAwMUZBNEM1IC8qIFdlYlZpZXdJY29uTG9hZGluZy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREIxNkNEMUYwODUw
NDcwMDFGQTRDNSAvKiBXZWJWaWV3SWNvbkxvYWRpbmcubW0gKi87IH07CiAJCTUxRTVDNzAyMTkx
OUMzQjIwMEQ4QjNFMSAvKiBzaW1wbGUyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNzgwMzYxOTE5QUZGODAwMTgyOUEyIC8qIHNp
bXBsZTIuaHRtbCAqLzsgfTsKQEAgLTI1MjAsNyArMjUxOSw2IEBACiAJCUY2QjdCRTkyMTc0Njkx
RUYwMDhBMzQ0NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERpZEFzc29jaWF0ZUZvcm1Db250cm9sc19CdW5kbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5MzE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpZEFzc29jaWF0ZUZv
cm1Db250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QjdCRTk2MTc0
NjlCN0UwMDhBMzQ0NSAvKiBhc3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlGNkYzRjI5MDEzMzQyRkVCMDBBNkJGMTkgLyogQ29va2llTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29raWVNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjYxNTU0NUM4RDAwMDdGMzlEIC8qIERPTVdp
bmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjcxNTU0NUM4RDAwMDdGMzlEIC8qIERPTVdp
bmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY2RkREREQyMTQyNDFBRDQwMDRGMTcyOSAvKiBQcml2YXRlQnJvd3NpbmdQdXNo
U3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDQwLDcgKzM0MzgsNiBAQAogCQkJCUJDMjQ2
RDk3MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi8sCiAJ
CQkJMUE1MEFBMUMxQTJBNEU3MDAwRjRDMzQ1IC8qIENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2Uu
Y3BwICovLAogCQkJCTdDOEREQUE5MTczNURFMUQwMEVBNUFDMCAvKiBDbG9zZVRoZW5UZXJtaW5h
dGUuY3BwICovLAotCQkJCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2Vy
LmNwcCAqLywKIAkJCQlGNkI3QkU5MzE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzLmNwcCAqLywKIAkJCQlGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8sCiAJCQkJOTMzMTQwN0IxN0I0NDE5MDAw
RjA4M0IxIC8qIERpZE5vdEhhbmRsZUtleURvd24uY3BwICovLApAQCAtNDQxMSw3ICs0NDA4LDYg
QEAKIAkJCQlDRDBCRDBBNjFGNzk5MjREMDAxQUIyQ0YgLyogQ29udGV4dE1lbnVJbWdXaXRoVmlk
ZW8ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzNCMUQyNjIyQTc0RjY3MDBCQ0Y0RDAgLyogQ29u
dGV4dE1lbnVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMyOTM2OTMxRDVCRjcwRDAwREVBQjFF
IC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxRDEyNDlCMUU3
ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVD
MTlBNTI0MUZEMEY2MDEwMEVFQTMyMyAvKiBDb29raWVQcml2YXRlQnJvd3NpbmcubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5QjFGNkY3ODFGOTA1NTg0MDBCNTU3NDQgLyogQ29weUhUTUwubW0gaW4g
U291cmNlcyAqLywKIAkJCQk5OTk5MTA4QjFGMzkzQzk2MDA4QUQ0NTUgLyogQ29weWluZy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvQ29va2llTWFuYWdlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9D
b29raWVNYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQwYzZjNWEw
NjIxOGNkOTgzZDYxOGJjN2M1MmQzOWU4ZjRmNGE2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9D
b29raWVNYW5hZ2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBXS19IQVZFX0NfU1BJCi0KLSNpbmNsdWRl
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgotI2lu
Y2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tSZXRh
aW5QdHIuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1zdGF0aWMgYm9vbCB0ZXN0
RG9uZTsKLS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBwb2xpY3kgb24gdGhlIG1hY2hpbmUgcnVubmlu
ZyB0aGUgdGVzdCBpcyBub3QgY2hhbmdlZCBhZnRlciBydW5uaW5nIHRoZSB0ZXN0Lgotc3RhdGlj
IFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB1c2VyUG9saWN5Owotc3RhdGljIFdLSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSB0ZXN0UG9saWN5Owotc3RhdGljIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gd2tDb250ZXh0OwotCi1zdGF0aWMgdm9pZCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBj
b250ZXh0KQotewotICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1
NzgpLCBjb250ZXh0KTsKLSAgICBFWFBFQ1RfRVEodGVzdFBvbGljeSwgcG9saWN5KTsKLQotICAg
IFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFu
YWdlcih3a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdXNlclBvbGljeSwgbnVsbHB0ciwgbnVsbHB0cik7
Ci0KLSAgICB0ZXN0RG9uZSA9IHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEdldFVzZXJIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIFdLRXJy
b3JSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KDB4MTIzNDU3OCksIGNvbnRleHQpOwotCi0gICAgdXNlclBvbGljeSA9IHBvbGljeTsK
LQotICAgIC8vIE1ha2Ugc3VyZSB0byBjaG9vc2UgYSBwb2xpY3kgZGlmZmVyZW50IGZyb20gdGhl
IHBvbGljeSB0aGUgdXNlciBjdXJyZW50bHkgaGFzIHNldC4KLSAgICB0ZXN0UG9saWN5ID0gKHVz
ZXJQb2xpY3kgKyAxKSAlIDM7Ci0gICAgV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIg
PSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5nZXQoKSk7Ci0gICAgV0tDb29r
aWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCB0ZXN0UG9s
aWN5LCBudWxscHRyLCBudWxscHRyKTsKLSAgICBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIz
NDU3OCksIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLX0KLQotc3RhdGljIHZv
aWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKikKLXsKLSAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdl
ciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKLSAgICBXS0Nv
b2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0
UG9saWN5KTsKLX0KLQotVEVTVChXZWJLaXQsIENvb2tpZU1hbmFnZXIpCi17Ci0gICAgd2tDb250
ZXh0LmFkb3B0KFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyh3a0NvbnRleHQuZ2V0KCkpOwotCi0gICAgV0tQYWdl
TmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKLSAgICBtZW1zZXQoJmxvYWRlckNsaWVu
dCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwotCi0gICAgbG9hZGVyQ2xpZW50LmJhc2UudmVy
c2lvbiA9IDA7Ci0gICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaE5hdmlnYXRpb24gPSBkaWRGaW5p
c2hOYXZpZ2F0aW9uOwotCi0gICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmll
dy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7Ci0KLSAgICBXS1BhZ2VMb2FkVVJMKHdlYlZp
ZXcucGFnZSgpLCBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFu
ayIpKS5nZXQoKSk7Ci0KLSAgICBVdGlsOjpydW4oJnRlc3REb25lKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggZmI0YmQ0NzgzYzBiMjljNTU0NWUwOWE1ODE1Y2U3ZjdmNzli
MWViNy4uMmI2ZDg2YjE5OTEyYzczMjdjOTA0MDUyZGU2ZjA4Mzg3OGU4NWRiYyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTM4LDEwICszOCwxMCBAQAog
I2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdlYktpdC9X
S0ZyYW1lSGFuZGxlUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLSWNvbkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTWVzc2FnZUxpc3RlbmVyLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXkuaD4KQEAgLTg2Niw3ICs4NjYsNyBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJlZmVyZW5jZXNTZXRCZWFjb25BUElFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGlyZWN0b3J5VXBs
b2FkRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKLSAgICBXS0Nvb2tpZU1hbmFnZXJEZWxl
dGVBbGxDb29raWVzKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSk7
CisgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9y
ZUdldEhUVFBDb29raWVTdG9yZShXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKG1fY29udGV4
dC5nZXQoKSkpLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICAKQEAgLTIwOTEs
NyArMjA5MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYKIAogICAgIGF1dG8gc2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSA9IFsmXSAoV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXS1R5cGVSZWYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
CiAgICAgICAgIGF1dG8gY29udGV4dCA9IG5ldyBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdLVHlw
ZVJlZik+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgV0tDb29raWVNYW5h
Z2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHRo
aXMtPmNvbnRleHQoKSksIHBvbGljeSwgY29udGV4dCwgW10gKFdLRXJyb3JSZWYgZXJyb3IsIHZv
aWQqIGNvbnRleHQpIHsKKyAgICAgICAgV0tIVFRQQ29va2llU3RvcmVTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZShXS0NvbnRleHRH
ZXRXZWJzaXRlRGF0YVN0b3JlKG1fY29udGV4dC5nZXQoKSkpLCBwb2xpY3ksIGNvbnRleHQsIFtd
ICh2b2lkKiBjb250ZXh0KSB7CiAgICAgICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyUG9p
bnRlciA9IHN0YXRpY19jYXN0PENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBlUmVmKT4qPihj
b250ZXh0KTsKICAgICAgICAgICAgICgqY29tcGxldGlvbkhhbmRsZXJQb2ludGVyKShudWxscHRy
KTsKICAgICAgICAgICAgIGRlbGV0ZSBjb21wbGV0aW9uSGFuZGxlclBvaW50ZXI7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDlmODdkYjJmMjFjMGFjMTFh
N2U5MWFkMWNjMzIxZjZiZDhjMGRkN2IuLmRjM2E1ZjQzNDgwM2ExOTc4MjY1OGI4MjA1M2U0NmNi
NDRkZTFkNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC0zMyw5ICszMyw5IEBACiAjaW5jbHVkZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dFByaXZh
dGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLRGF0YS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0RpY3Rpb25hcnkuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJbnNw
ZWN0b3IuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS1JldGFpblB0ci5oPgpAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgVGVzdEludm9jYXRp
b246Omludm9rZSgpCiAKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxk
TG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyhzaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tz
KCkpOwogCi0gICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nv
bnRleHRHZXRDb29raWVNYW5hZ2VyKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0
KCkpLCBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4s
IG51bGxwdHIsIG51bGxwdHIpOworICAgIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tDb250ZXh0
R2V0V2Vic2l0ZURhdGFTdG9yZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgp
KSksIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiwg
bnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNsZWFyIG91dCB2
aXNpdGVkIGxpbmtzIGhlcmUuCiAKQEAgLTkxMiw3ICs5MTIsNyBAQCBXS1JldGFpblB0cjxXS1R5
cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUlu
amVjdGVkQgogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCIpKSB7CiAgICAgICAgIFdLQm9vbGVhblJl
ZiBhY2NlcHQgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKLSAgICAg
ICAgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb250ZXh0R2V0
Q29va2llTWFuYWdlcihUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29udGV4dCgpKSwgV0tC
b29sZWFuR2V0VmFsdWUoYWNjZXB0KSk7CisgICAgICAgIFdLQ29udGV4dFNldFN0b3JhZ2VBY2Nl
c3NBUElFbmFibGVkKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCksIFdLQm9v
bGVhbkdldFZhbHVlKGFjY2VwdCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJD
b2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2Nv
YS5tbQppbmRleCA5YTU1ODI0MTlhNmE2NTU4YjI2YjcxN2E0ODk4OTJlZTJjOTMwM2Y2Li5lODJl
ZTIyZjM0MTg4OTI4ZDlmMzU3YzRhNWU3M2EyZWZkMGEwN2I2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zNiw3ICsz
Niw2IEBACiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dFByaXZh
dGUuaD4KLSNpbXBvcnQgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bv
b2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tTdHJpbmdDRi5oPgpAQCAtNjksNyArNjgs
NyBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJy
YXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0
aW9uLl9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKICAgICBnbG9iYWxX
ZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwogCi0gICAgV0tDb29r
aWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoV0tDb250ZXh0R2V0Q29va2llTWFu
YWdlcihjb250ZXh0KSwgdHJ1ZSk7CisgICAgV0tDb250ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQoY29udGV4dCwgdHJ1ZSk7CiAKICAgICBXS1dlYnNpdGVEYXRhU3RvcmUqIHBvb2xXZWJz
aXRlRGF0YVN0b3JlID0gKF9fYnJpZGdlIFdLV2Vic2l0ZURhdGFTdG9yZSAqKVdLQ29udGV4dEdl
dFdlYnNpdGVEYXRhU3RvcmUoKF9fYnJpZGdlIFdLQ29udGV4dFJlZilnbG9iYWxXZWJWaWV3Q29u
ZmlndXJhdGlvbi5wcm9jZXNzUG9vbCk7CiAgICAgaWYgKGxpYnJhcnlQYXRoKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378137</attachid>
            <date>2019-09-05 16:51:49 -0700</date>
            <delta_ts>2019-09-05 17:18:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190905165148.patch</filename>
            <type>text/plain</type>
            <size>52448</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTU3MzA4ZDA2MGY3NzNh
NmE0N2VkNmNlMmUxZjM1MDcwOWFiYzMuLjFlNmM1YWU2NzA5NDU5OTlkNGU0ZGRmNWFmMzZkYTFi
MGEzM2E1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTktMDktMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEZXByZWNhdGUg
YWxsIFdLQ29va2llTWFuYWdlclJlZiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZWlyIHVzZSB3YXMgcmVtb3ZlZCBpbiByZGFyOi8v
cHJvYmxlbS81NTAzOTI3NQorICAgICAgICBDcmVhdGVkIHJlcGxhY2VtZW50IEMgQVBJIHRoYXQg
bW9yZSBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgcHVibGljIE9iakMgQVBJIGZvciBXZWJLaXRUZXN0
UnVubmVyLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNw
cDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKToKKyAg
ICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldENsaWVudCk6CisgICAgICAg
IChXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXS0Nv
b2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV0tDb29raWVN
YW5hZ2VyRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJEZWxldGVB
bGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGUpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV0tIVFRQQ29va2llU3RvcmVHZXRUeXBlSUQpOgorICAgICAgICAoV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdLSFRUUENvb2tpZVN0
b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3Jl
R2V0SFRUUENvb2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29v
a2llU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjp0b05T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA5
LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIE1l
c3NhZ2VSZWdpc3RyeSB0byBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAppbmRleCAwMzkxNGIyMWQyZjgzNzg0ODc3MDE5YTZkY2U1ZjQ4YmFmMGY5ODA0Li5lYjdi
MDYxYzQ5OWRjZmI2NDJkNTQ1ZWIwNmI3MmRkOTA5MzY0OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLR2VvbG9jYXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dyYW1tYXJEZXRhaWwqIFdLR3JhbW1hckRldGFpbFJl
ZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSFRUUENvb2tpZVN0b3JlKiBXS0hUVFBD
b29raWVTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSGl0VGVzdFJlc3Vs
dCogV0tIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJY29u
RGF0YWJhc2UqIFdLSWNvbkRhdGFiYXNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNzgxNGZhYWUzYTI2
MGIzODNmZDkxMGQxODBhYTg5ZDZjNDk5NGY3OC4uYzI2MzBiNDU4NGI4MGE5MWJhZWIyZTMwMjVm
MGM0NzliY2M5ZjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zNDEsNiArMzQxLDcgQEAgVUlQcm9jZXNz
L0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xv
Y2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAor
VUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9D
L1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAK
IFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggZTEyMmVlM2VkYjFjNDIx
OWQxZDg0MTk5MzIxYTgwMDNkNTJjODIxYy4uMWM4NTgzYTI1OGZjYzg2MGVlNzE1NTk1MTYyOWIw
ZDA1YWJiYzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTExNyw2ICsxMTcsMzggQEAgdm9pZCBIVFRQQ29va2llU3Rv
cmU6OmRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgQ29tcGxldGlv
bkhhbmQKICAgICB9KTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tp
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9y
YWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQorICAgICAgICAgICAgZGVsZXRl
Q29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CisgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3VwcGxlbWVu
dDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29raWVNYW5hZ2VyLT5k
ZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7CisgICAgLy8g
RklYTUU6IFRoZSBDb21wbGV0aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIEhUVFBDb29raWVT
dG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgYXV0byogcG9vbCA9IG1fb3duaW5nRGF0YVN0b3JlLT5wcm9jZXNzUG9vbEZv
ckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CisgICAgaWYgKCFwb29sKSB7CisgICAgICAgIGlm
ICghbV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisgICAgICAg
ICAgICBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3Rv
cmUocG9saWN5KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNv
b2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5PigpOworICAgIGNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobV9v
d25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIGNsYXNzIEFQ
SVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtMjQ2LDYgKzI3OCw4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOjpDb29rCiB2b2lkIEhUVFBDb29r
aWVTdG9yZTo6ZGVsZXRlQ29va2llRnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25z
dCBXZWJDb3JlOjpDb29raWUmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzdGFydE9ic2Vy
dmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShGdW5jdGlvbjx2b2lkKCk+
JiYpIHsgfQogdm9pZCBIVFRQQ29va2llU3RvcmU6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZh
dWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5KSB7IH0KICNlbmRpZgogICAg
IAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggZWJmOTZjODhkOGU2ZWYwYTY4ZTU2ZDZkMTE3MzY2
N2M2MDZlODQ2Ni4uOGY3YmYzYjkwMTA5OThhYmI3MzUyMDIyMGE3ZGFhNGI2NjU2OWIxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaApA
QCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDb29raWVTdG9yYWdlT2JzZXJ2ZXI7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRh
U3RvcmU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogfQog
CiBuYW1lc3BhY2UgQVBJIHsKQEAgLTYxLDYgKzYyLDkgQEAgcHVibGljOgogICAgIHZvaWQgY29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
Jik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICAKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgY2xhc3Mg
T2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg2LDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNv
bnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9E
ZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lk
IHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKKyAg
ICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOworICAg
IHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6
IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCmluZGV4IDUxNzM3NTU5NDhkZDQxNWUyN2E1ZjczZWE0NzJmYWM4MDk1YmViMTku
LmRmNmFjZDg0MTNmZTY1NGZmNWJiY2RiYzA5MzUyZTc2Mjg4Yjc2NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIElu
dGVybmFsRGVidWdGZWF0dXJlOwogY2xhc3MgRXhwZXJpbWVudGFsRmVhdHVyZTsKIGNsYXNzIEZy
YW1lSGFuZGxlOwogY2xhc3MgRnJhbWVJbmZvOworY2xhc3MgSFRUUENvb2tpZVN0b3JlOwogY2xh
c3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIE1lc3NhZ2VMaXN0ZW5lcjsKIGNsYXNzIE5hdmlnYXRp
b247CkBAIC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLRnJhbWVSZWYsIFdl
YkZyYW1lUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYs
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYsIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24pCitXS19BRERfQVBJX01BUFBJTkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQ
STo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJl
ZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNl
UmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYs
IFdlYkluc3BlY3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKaW5kZXggMTE3OTA1ZjVkOTM5ZjlkZmQzMzcwZGJhMDViOTExYTNkYzc0YzNkMy4u
YTFhNTViZjc3NWM5OWQ4N2E2YjY3YzE2MDg0NmUyZmM2NWIwZjNkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00MTcsNiArNDE3LDExIEBAIGJv
b2wgV0tDb250ZXh0R2V0VXNlc1NpbmdsZVdlYlByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCiAgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5jb25maWd1cmF0aW9u
KCkudXNlc1NpbmdsZVdlYlByb2Nlc3MoKTsKIH0KIAordm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0NvbnRleHRTZXRDdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IG5hbWUpCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldEN1c3RvbVdlYkNv
bnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXZWJLaXQ6OnRvSW1wbChuYW1lKS0+c3RyaW5n
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCA5YTZj
YmNmYzEyOWQ3NjY2YzMwZDgxZjc0NjhjNzcwZGYwMmUxYWQ0Li5lZjZmZjFiOWMyNzNmMDNkZGQy
ZjE3NWY0YjU4NjUyNjhjZDBlMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaApAQCAtMTM3LDEzICsxMzcsMTUgQEAgV0tfRVhQT1JUIHVuc2lnbmVkIFdLQ29u
dGV4dEdldE1heGltdW1OdW1iZXJPZlByb2Nlc3NlcyhXS0NvbnRleHRSZWYgY29udGV4dCkgV0sK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKFdLQ29udGV4
dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRHZXRVc2VzU2luZ2xlV2ViUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZW5hYmxlZCk7CisKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tEb3VibGVSZWYgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9y
eVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwogCiBXS19FWFBPUlQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBP
UlQgV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRD
b29raWVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
V0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9u
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tJY29uRGF0YWJhc2VS
ZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VY
UE9SVCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9y
YWdlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAppbmRleCAwNjM2ZWE2YzJjNzdlM2Zk
NGQwYjRkYzZmMTJkMDhkZWI4Njk1MDQ4Li43YWZhOGZiNDE3YzAzNmRiMDg2ZWU4OTc1Y2I3Yjc1
ZmQ3MmM5ZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29v
a2llTWFuYWdlci5jcHAKQEAgLTI4LDY0ICsyOCw1MCBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXku
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb29raWVNYW5h
Z2VyR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5
OjpBUElUeXBlKTsKKyAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRD
bGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2ll
TWFuYWdlckNsaWVudEJhc2UqIHdrQ2xpZW50KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGll
bnQoV0tDb29raWVNYW5hZ2VyUmVmLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKikK
IHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmluaXRpYWxpemVDbGllbnQod2tDbGll
bnQpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdL
Q29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tp
ZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29r
aWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lk
KiwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pCiB7Ci0gICAgdG9J
bXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRl
eHQsIGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0bmFtZSkKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
KFdLQ29va2llTWFuYWdlclJlZiwgV0tTdHJpbmdSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1h
bmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIHsgdG9JbXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkgfSk7CiB9CiAKLXZv
aWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlclJlZikKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nv
b2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgZG91YmxlIGRhdGUpCit2b2lkIFdLQ29va2ll
TWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJS
ZWYsIGRvdWJsZSkKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlKSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7
CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUZ1bmN0aW9uIGNhbGxiYWNrKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
LCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9u
KQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSwgW2NvbnRleHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9y
ICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUo
KS5wdHIoKSkgOiBudWxscHRyLCBjb250ZXh0KTsKLSAgICB9KTsKIH0KIAotdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5h
Z2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsK
IH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgYm9vbCBlbmFibGVkKQordm9pZCBXS0Nvb2tp
ZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYsIGJv
b2wpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdLQ29v
a2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYp
CiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV0tDb29r
aWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIpCit2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFdLQ29va2llTWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuaAppbmRleCA3MzM1NGQyY2JhNGVkZjk3YjlhNTc5MjBjZDQ1YmM3NzQyNTJiYWE1Li41NTZi
OTQyMjRjMjllM2U0MjNkOTRlZDQ2OThjODk0OGE2ZDNlY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBXS0Nvb2tpZU1hbmFnZXJfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBl
eHRlcm4gIkMiIHsKQEAgLTU1LDI4ICs1NiwyOCBAQCB0eXBlZGVmIHN0cnVjdCBXS0Nvb2tpZU1h
bmFnZXJDbGllbnRWMCB7CiAgICAgV0tDb29raWVNYW5hZ2VyQ29va2llc0RpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzRGlkQ2hhbmdlOwogfSBXS0Nv
b2tpZU1hbmFnZXJDbGllbnRWMDsKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdl
ckdldFR5cGVJRCgpOworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdlckdldFR5cGVJ
RCgpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tDb29r
aWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tD
b29raWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiB0
eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiko
V0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1
bmN0aW9uIGZ1bmN0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBj
b250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBmdW5jdGlv
bikgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2Vy
RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
LCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7Ci1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJE
ZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpIFdLX0NfQVBJ
X0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKTsKIAog
Ly8gVGhlIHRpbWUgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4KLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQsIFdL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7
CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogdHlw
ZWRlZiB2b2lkICgqV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0
aW9uKShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQg
dm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FU
RUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBib29sIGVuYWJsZWQpOwor
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5hYmxlZCkgV0tfQ19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLQ29udGV4dFNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlcikgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5h
Z2VyKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZWVjODFjMjRiZjQyNDEzZDg5MWNjMzRhZjJjYWNmOTA3N2ZkZTFm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQ
Q29va2llU3RvcmVSZWYuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tIVFRQQ29va2llU3RvcmVSZWYuaCIKKworI2luY2x1
ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCitXS1R5
cGVJRCBXS0hUVFBDb29raWVTdG9yZUdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIFdlYktpdDo6
dG9BUEkoQVBJOjpIVFRQQ29va2llU3RvcmU6OkFQSVR5cGUpOworfQorCit2b2lkIFdLSFRUUENv
b2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS0hUVFBDb29raWVTdG9yZVJlZiBjb29raWVTdG9y
ZSwgdm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzRnVuY3Rp
b24gY2FsbGJhY2spCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoY29va2llU3RvcmUpLT5kZWxldGVB
bGxDb29raWVzKFtjb250ZXh0LCBjYWxsYmFja10geworICAgICAgICBpZiAoY2FsbGJhY2spCisg
ICAgICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKKyAgICB9KTsKK30KKwordm9pZCBXS0hUVFBD
b29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3RvcmVSZWYg
Y29va2llU3RvcmUsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRl
eHQsIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNh
bGxiYWNrKQoreworICAgIFdlYktpdDo6dG9JbXBsKGNvb2tpZVN0b3JlKS0+c2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSh0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW2NvbnRleHQs
IGNhbGxiYWNrXSB7CisgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgIGNhbGxiYWNr
KGNvbnRleHQpOworICAgIH0pOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ4NzVjNDNlNDY3Y2M5
MDVhZGE1ZTU3NWRjNzcwMWU1Y2Q3ZWE4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmgKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV0tIVFRQQ29va2llU3RvcmVSZWZfaAorI2RlZmluZSBX
S0hUVFBDb29raWVTdG9yZVJlZl9oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQ29va2llTWFuYWdlci5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0hUVFBDb29raWVTdG9y
ZUdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFs
bENvb2tpZXNGdW5jdGlvbikodm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tIVFRQQ29va2llU3Rv
cmVEZWxldGVBbGxDb29raWVzKFdLSFRUUENvb2tpZVN0b3JlUmVmIGNvb2tpZVN0b3JlLCB2b2lk
KiBjb250ZXh0LCBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXNGdW5jdGlvbiBjYWxs
YmFjayk7CisgICAgCit0eXBlZGVmIHZvaWQgKCpXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3lGdW5jdGlvbikodm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tIVFRQQ29v
a2llU3RvcmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZVN0b3JlUmVmIGNv
b2tpZVN0b3JlLCBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCB2b2lkKiBjb250ZXh0
LCBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxs
YmFjayk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0hU
VFBDb29raWVTdG9yZVJlZl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCBjOTkwNDE2MmZjZGE2MTFh
MzM2OTMxZWY1YjEyMWJhMDAwMzQxOWY0Li5iMmFjMTFkZjQ5Nzk1OGI5Y2VmMDkxNzc0OTU2Njg4
NjMyNTY2Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTc1LDYgKzc1LDExIEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShXS1dlYnNpdGVE
YXRhU3RvcmVSZWYKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGVuYWJsZSk7CiB9CiAKK1dLSFRUUENvb2tpZVN0b3Jl
UmVmIFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZShXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmKQoreworICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKCZXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5odHRwQ29va2llU3RvcmUoKSk7Cit9CisKIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21w
bGV0aW9uSGFuZGxlcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVu
YWJsZSwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlYnVnTW9k
ZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IDdkZWM5MmEyYjE3YzZlZGM3OTM5MDNjZDgzYTg4
Y2YxNzVkYzNiYWQuLmRkMGRhMTgzNDAyYjFhOTc1MTFkNGMzNTBjNmI5NWVkNWY3NTRmODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oCkBAIC0zNyw2ICszNyw4IEBAIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1dlYnNpdGVE
YXRhU3RvcmVHZXRUeXBlSUQoKTsKIFdLX0VYUE9SVCBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgV0tX
ZWJzaXRlRGF0YVN0b3JlR2V0RGVmYXVsdERhdGFTdG9yZSgpOwogV0tfRVhQT1JUIFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0
b3JlKCk7CiAKK1dLX0VYUE9SVCBXS0hUVFBDb29raWVTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3Rv
cmVHZXRIVFRQQ29va2llU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7
CisKIFdLX0VYUE9SVCBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tfRVhQ
T1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUpOwogV0tf
RVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJSFRUUENv
b2tpZVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJ
SFRUUENvb2tpZVN0b3JlQ29jb2EubW0KaW5kZXggODgwNzc1Y2M3ODY5OTcxODkyOWRiOTg0YWQy
M2QzZTI1MDgwYTI2OS4uYWQxOTY3NjFkNDg0MDIxYWJiNjNmYzlkNWVkMDdlZDY1ZmZlNDRjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29r
aWVTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9B
UElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQpAQCAtNzAsNCArNzAsMzAgQEAgdm9pZCBIVFRQQ29v
a2llU3RvcmU6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3Rv
cmUoKQogICAgICAgICBvYnNlcnZlci0+c3RvcE9ic2VydmluZygpOwogfQogCit2b2lkIEhUVFBD
b29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCkK
K3sKKyAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHJl
bW92ZUNvb2tpZXNTaW5jZURhdGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOworfQorCitzdGF0aWMg
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktp
dDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgc3dpdGNoIChwb2xpY3kp
IHsKKyAgICBjYXNlIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeTo6QWx3YXlzQWNjZXB0
OgorICAgICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNh
c2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcjoKKyAgICAgICAgcmV0dXJu
IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOworICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5OjpPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0
dXJuIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwor
ICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpFeGNsdXNpdmVseUZyb21N
YWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiAoTlNIVFRQQ29va2llQWNjZXB0UG9s
aWN5KU5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5TSFRU
UENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKwordm9pZCBIVFRQQ29va2llU3RvcmU6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShXZWJL
aXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIFtbTlNIVFRQQ29va2ll
U3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5OnRv
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSldOworfQorCiB9IC8vIG5hbWVzcGFjZSBB
UEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IDlmZDZhNjExYjU1Y2FkYjY5ODAxNjJkZWRmMWUzNWFmNzlhYWFmMjUu
LjMxZTcxZjUyOWViNmI0NmQwMjY2NDQ5ZjM2ODBlODQxZjg4MWMxM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAt
NTQ0LDEyICs1NDQsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRDb29raWVTdG9yYWdlUGFy
dGl0aW9uaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9jb29raWVTdG9yYWdlUGFydGl0
aW9uaW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFN0
b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3N0b3JhZ2VBY2Nl
c3NBUElFbmFibGVkID0gZW5hYmxlZDsKLSAgICBzZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGVuYWJsZWQp
KTsKLX0KLQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJQZXJtYW5lbnRDcmVkZW50aWFsc0Zv
clByb3RlY3Rpb25TcGFjZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmJiBwcm90ZWN0aW9uU3Bh
Y2UpCiB7CiAgICAgYXV0byBzaGFyZWRTdG9yYWdlID0gW05TVVJMQ3JlZGVudGlhbFN0b3JhZ2Ug
c2hhcmVkQ3JlZGVudGlhbFN0b3JhZ2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzQzMjg4MGU5ZTMzNjBhZjVhZGZhYWEy
NmRlN2E3ZDQ1MGM4YmU2NS4uMDRkMGRhMmViZTI4ZTJmMDhkZTZkYzliMzBlNTZmMjQ1ZGNjYTRm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0yNjgsMTMgKzI2OCw0IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpk
aWRTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsCiAgICAg
bV9jYWxsYmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpLT5wZXJmb3JtQ2FsbGJh
Y2soKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldFN0b3JhZ2VBY2Nlc3NB
UElFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBwcm9j
ZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGVuYWJsZWQpKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGVuYWJsZWQpOwotI2VuZGlmCi19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAppbmRl
eCA2NzNhZDY0MDNmYjJiN2Q0ZGQ5NGUwMTEwYmM1NDk1MjViMDZhNGJjLi4yYzkwZDRjN2YzZDVl
OTliODM3NmNhMTBkYmMyYjRiMzhhZjY1Y2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtODAsOCArODAsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7
CiAgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBGdW5j
dGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4m
Jik7CiAKLSAgICB2b2lkIHNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGJvb2wpOwotCiAgICAg
dm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogICAgIHZv
aWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggM2UxOWY4OWYwODU0ZjEw
NzhiY2I5NGZkNGIwZGQwM2VhMTJjMzcwOC4uM2Q3MjI3OWYxNTE2MTdjYmI3MzBjOWY0OTM1OTUz
ZmU4ZmMwYTRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtNDA4LDYgKzQwOCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRMZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6QwogI2VuZGlmCiB9
CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICBtX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkID0gZW5hYmxlZDsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBzZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGVuYWJsZWQpKTsKKyNl
bmRpZgorfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRDdXN0b21XZWJDb250ZW50U2Vydmlj
ZUJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBjdXN0b21XZWJDb250ZW50U2VydmljZUJ1
bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgLy8gR3VhcmQgYWdhaW5zdCBBUEkgbWlzdXNlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMTFmMjM5MTNjMjk0NDkx
MDAwOTIwNzhjZmVjYjkxNjY4YTkxYzMzYy4uYTY4ZTgwNDU4NzlmOGMzZDUyZWMxNzk3ODhmOTA3
ODNmNWQ5ZmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBA
IC00NjUsMTEgKzQ2NSwxMSBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9v
bCBjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldENvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wpOwotICAgIGJvb2wgc3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkOyB9Ci0gICAg
dm9pZCBzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChib29sKTsKIAogICAgIHZvaWQgY2xlYXJQ
ZXJtYW5lbnRDcmVkZW50aWFsc0ZvclByb3RlY3Rpb25TcGFjZShXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2UmJik7CiAjZW5kaWYKKyAgICBib29sIHN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZDsgfQorICAgIHZvaWQgc2V0U3Rv
cmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7CiAKICAgICBzdGF0aWMgdWludDY0X3QgcmVnaXN0
ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIoRnVuY3Rpb248dm9pZChXZWJQcm9jZXNzUG9v
bCYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyUHJvY2Vzc1Bvb2xDcmVhdGlvbkxp
c3RlbmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOwpAQCAtNzU2LDggKzc1Niw4IEBAIHByaXZhdGU6
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIG1fY29va2llU3RvcmFnZVBhcnRpdGlv
bmluZ0VuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBib29sIG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQg
eyBmYWxzZSB9OwogCiAgICAgc3RydWN0IFBhdGhzIHsKICAgICAgICAgU3RyaW5nIGluamVjdGVk
QnVuZGxlUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDQ2NzM2MDQwY2UxODgwNzgxNTYyZWVmNDc0MWRiMTc1M2Q1ZjY1MzIuLmI1
NzgyZDUyZDg2ZGU2NjViODIxOWZhYmI4NmJjN2JmYjA4ODI0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwMiw2ICsxMTAyLDcg
QEAKIAkJNUM0QjlEOEIyMTBBOENDRjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI5RDhBMjEwQThDNDYwMDhG
MTREMSAvKiBVbmRvT3JSZWRvLmggKi87IH07CiAJCTVDNUQyMzhDMjI3QTJDREEwMDBCOUJEQSAv
KiBfV0tDdXN0b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDNUQyMzg5MjI3QTE4OTIwMDBCOUJEQSAvKiBfV0tDdXN0b21IZWFk
ZXJGaWVsZHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1QzYyRkRGOTFFRkMyNzFDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2MkZERjgx
RUZDMjYzQzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1QzY2QTRCNTIzMjA5NjI0MDBF
QTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjZBNEI0MjMyMDk2MTQwMEVBNEQ0NCAvKiBXS0hUVFBD
b29raWVTdG9yZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTVDNzk1RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVu
dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
RTBDMzY5MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTVDNzk1RDcxMjI5
RjM3NTcwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2QTIyOUYyRDRB
MDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDN0ZCNDcwMjFFOTdEQzUw
MDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAvKiBXZWJDb29raWVKYXIu
aCAqLzsgfTsKQEAgLTE3MjIsOCArMTcyMyw2IEBACiAJCQljb21waWxlclNwZWMgPSBjb20uYXBw
bGUuY29tcGlsZXJzLnByb3h5LnNjcmlwdDsKIAkJCWZpbGVQYXR0ZXJucyA9ICIqLmgiOwogCQkJ
ZmlsZVR5cGUgPSBwYXR0ZXJuLnByb3h5OwotCQkJaW5wdXRGaWxlcyA9ICgKLQkJCSk7CiAJCQlp
c0VkaXRhYmxlID0gMTsKIAkJCW91dHB1dEZpbGVzID0gKAogCQkJCSIkKEhFQURFUl9PVVRQVVRf
RElSKS8kKElOUFVUX0ZJTEVfTkFNRSkiLApAQCAtMzYzNSw2ICszNjM0LDggQEAKIAkJNUM1RDIz
ODkyMjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tDdXN0b21IZWFkZXJGaWVsZHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM1RDIzOEEyMjdBMUQ5QjAwMEI5QkRBIC8qIEFQSUN1c3Rv
bUhlYWRlckZpZWxkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDdXN0
b21IZWFkZXJGaWVsZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2MkZERjgx
RUZDMjYzQzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1QzY2QTRCMzIzMjA5NjEzMDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tIVFRQQ29va2llU3RvcmVSZWYu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzY2QTRCNDIzMjA5NjE0MDBFQTRE
NDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tIVFRQQ29va2llU3RvcmVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUM2Q0U2RDAxRjU5QkM0NjAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYWdlQ2xpZW50SW1wbENvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZDRTZEMzFGNTlFQTM1MDAwN0M2
Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYWdlQ2xpZW50SW1wbENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDNzQzMDBFMjE1MDA0OTIwMDRCRkExNyAvKiBXS1dlYlByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04MDM1LDYgKzgwMzYsOCBAQAogCQkJCUJDMEU2MTk2MTJENkNEMTIwMDEyQTcy
QSAvKiBXS0dlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQlCNjJFNzMwRjE0MzA0N0E2MDA2
OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmNwcCAqLywKIAkJCQlCNjJFNzMxMTE0MzA0N0IwMDA2
OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggKi8sCisJCQkJNUM2NkE0QjMyMzIwOTYxMzAwRUE0
RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmNwcCAqLywKKwkJCQk1QzY2QTRCNDIzMjA5NjE0
MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCAqLywKIAkJCQk1MTEwQUUwQTEzM0Mx
NkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovLAogCQkJCTUxMTBBRTBCMTMzQzE2
Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovLAogCQkJCTFDOEUyOTM4MTI3NjFFNUIw
MEJDN0JEMCAvKiBXS0luc3BlY3Rvci5jcHAgKi8sCkBAIC0xMDE5MSw2ICsxMDE5NCw3IEBACiAJ
CQkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjYyRTczMTIxNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVz
dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFEMTI0OTkxRTc2M0MwMTAwMkIyODIwIC8q
IFdLSFRUUENvb2tpZVN0b3JlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzY2QTRCNTIzMjA5NjI0
MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDQ0Y2QUMzMTJDOTFGMzQwMDhGOUMzNSAvKiBXS0ltYWdlLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAxODYxZTU4NjczZWVkY2U5OWFjNTMxNjJhYTI5M2NiMDIwMjY2YzgyLi45NzJkNWU4
Mzk0NDdlNzBiYjgzZDI3ZDg0MzExODQyN2U4MjUyYzNmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDktMDUg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBE
ZXByZWNhdGUgYWxsIFdLQ29va2llTWFuYWdlclJlZiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IHJlcGxhY2VtZW50IEMgQVBJ
IGluIFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nv
b2tpZU1hbmFnZXIuY3BwOiBSZW1vdmVkLCBiZWNhdXNlIHRoZSBmdW5jdGlvbnMgaXQgdGVzdHMg
d2VyZSByZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29u
c2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRp
b246Omludm9rZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3lu
Y2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OmluaXRp
YWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6CisKIDIwMTktMDktMDMgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbYm1hbGxvY10gSXNvVExTTGF5b3V0IGFu
ZCBBbGxJc29IZWFwcyByZWdpc3RyYXRpb24gaXMgcmFjeSB3aXRoIGRlcml2ZWQgY2xhc3MgaW5p
dGlhbGl6YXRpb24gd2l0aCB2aXJ0dWFsIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKaW5kZXggMjM5NGI1MzFhZTM2YTNmM2M5YjgyNGIxNWZhNTYyZGQzNTY5MGE0NS4uY2Jl
Y2EzYTdlNDFkMDk4NGU0YTk0ODBhZTU3ZjMzOWMwZmRmNzJmOSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0CkBAIC0xOTUsNyArMTk1LDYgQEAgaWYgKEVOQUJMRV9XRUJLSVQpCiAgICAg
c2V0KFRlc3RXZWJLaXRfU09VUkNFUwogICAgICAgICBUZXN0cy9XZWJLaXQvQWJvdXRCbGFua0xv
YWQuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9DYW5IYW5kbGVSZXF1ZXN0LmNwcAotICAgICAg
ICBUZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAogICAgICAgICBUZXN0cy9XZWJLaXQvRE9NV2luZG93
RXh0ZW5zaW9uTm9DYWNoZS5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRV
c2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODJhNWZm
YmJjNTE2YzhjODc0MDdjY2M5ZTJkODlmOTFiZmFlYzRiNi4uZWZmOGQ5MWRhMDZhNjNjYjUzMTk5
ZjM4YzkxOWE4Y2Q2MjMwNWRhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw3ICsy
ODAsNiBAQAogCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUNEMUM2QTFCMzhD
RTM2MDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gKi87IH07CiAJCTUxQ0QxQzcyMUIzOEQ0ODQw
MDE0MkNBNSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdpbmRvdy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQ0Qx
QzcxMUIzOEQ0ODQwMDE0MkNBNSAvKiBtb2RhbC1hbGVydHMtaW4tbmV3LWFib3V0LWJsYW5rLXdp
bmRvdy5odG1sICovOyB9OwogCQk1MUQxMjQ5ODFFNzYzQjAyMDAyQjI4MjAgLyogV0tIVFRQQ29v
a2llU3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUQxMjQ5NzFFNzYzQUY4MDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gKi87IH07
Ci0JCTUxRDEyNDlCMUU3ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RjNGMjkwMTMzNDJGRUIw
MEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNTFEOEMxOTAyMjY3QjI2RDAw
Nzk3RTQwIC8qIFBERkxpbmtSZWZlcnJlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDhDMThGMjI2N0IyNjcwMDc5N0U0MCAvKiBQREZMaW5rUmVm
ZXJyZXIubW0gKi87IH07CiAJCTUxREIxNkNFMUYwODUxMzcwMDFGQTRDNSAvKiBXZWJWaWV3SWNv
bkxvYWRpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MURCMTZDRDFGMDg1MDQ3MDAxRkE0QzUgLyogV2ViVmlld0ljb25Mb2FkaW5nLm1tICovOyB9
OwogCQk1MUU1QzcwMjE5MTlDM0IyMDBEOEIzRTEgLyogc2ltcGxlMi5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTc4MDM2MTkxOUFG
RjgwMDE4MjlBMiAvKiBzaW1wbGUyLmh0bWwgKi87IH07CkBAIC0yNTIwLDcgKzI1MTksNiBAQAog
CQlGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzX0J1
bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZCN0JFOTMxNzQ2OTFFRjAw
OEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNkI3QkU5NjE3NDY5QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJhc3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29va2llTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RjQ5QzY2MTU1NDVDOEQw
MDA3RjM5RCAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1
bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RjQ5QzY3MTU1NDVDOEQw
MDA3RjM5RCAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkZEREREMjE0MjQxQUQ0MDA0RjE3MjkgLyogUHJp
dmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ0MCw3ICszNDM4
LDYgQEAKIAkJCQlCQzI0NkQ5NzEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdF9C
dW5kbGUuY3BwICovLAogCQkJCTFBNTBBQTFDMUEyQTRFNzAwMEY0QzM0NSAvKiBDbG9zZUZyb21X
aXRoaW5DcmVhdGVQYWdlLmNwcCAqLywKIAkJCQk3QzhEREFBOTE3MzVERTFEMDBFQTVBQzAgLyog
Q2xvc2VUaGVuVGVybWluYXRlLmNwcCAqLywKLQkJCQlGNkYzRjI5MDEzMzQyRkVCMDBBNkJGMTkg
LyogQ29va2llTWFuYWdlci5jcHAgKi8sCiAJCQkJRjZCN0JFOTMxNzQ2OTFFRjAwOEEzNDQ1IC8q
IERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAgKi8sCiAJCQkJRjZCN0JFOTIxNzQ2OTFFRjAw
OEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9sc19CdW5kbGUuY3BwICovLAogCQkJCTkz
MzE0MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWROb3RIYW5kbGVLZXlEb3duLmNwcCAqLywKQEAg
LTQ0MTEsNyArNDQwOCw2IEBACiAJCQkJQ0QwQkQwQTYxRjc5OTI0RDAwMUFCMkNGIC8qIENvbnRl
eHRNZW51SW1nV2l0aFZpZGVvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMzQjFEMjYyMkE3NEY2
NzAwQkNGNEQwIC8qIENvbnRleHRNZW51cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMjkzNjkz
MUQ1QkY3MEQwMERFQUIxRSAvKiBDb29raWVBY2NlcHRQb2xpY3kubW0gaW4gU291cmNlcyAqLywK
LQkJCQk1MUQxMjQ5QjFFNzg1NDI1MDAyQjI4MjAgLyogQ29va2llTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1QzE5QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyogQ29va2llUHJpdmF0ZUJy
b3dzaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxRjZGNzgxRjkwNTU4NDAwQjU1NzQ0IC8q
IENvcHlIVE1MLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk5OTEwOEIxRjM5M0M5NjAwOEFENDU1
IC8qIENvcHlpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0Nvb2tpZU1hbmFnZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg0MGM2YzVhMDYyMThjZDk4M2Q2MThiYzdjNTJkMzllOGY0ZjRhNmMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgV0tfSEFWRV9D
X1NQSQotCi0jaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJQbGF0Zm9y
bVdlYlZpZXcuaCIKLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+Ci0jaW5jbHVk
ZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQot
c3RhdGljIGJvb2wgdGVzdERvbmU7Ci0vLyBNYWtlIHN1cmUgdGhhdCB0aGUgcG9saWN5IG9uIHRo
ZSBtYWNoaW5lIHJ1bm5pbmcgdGhlIHRlc3QgaXMgbm90IGNoYW5nZWQgYWZ0ZXIgcnVubmluZyB0
aGUgdGVzdC4KLXN0YXRpYyBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdXNlclBvbGljeTsKLXN0
YXRpYyBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdGVzdFBvbGljeTsKLXN0YXRpYyBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IHdrQ29udGV4dDsKLQotc3RhdGljIHZvaWQgZGlkR2V0VGVzdEhU
VFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgV0tF
cnJvclJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAgICBFWFBFQ1RfRVEocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oMHgxMjM0NTc4KSwgY29udGV4dCk7Ci0gICAgRVhQRUNUX0VRKHRlc3RQb2xpY3ks
IHBvbGljeSk7Ci0KLSAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29u
dGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKLSAgICBXS0Nvb2tpZU1hbmFn
ZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHVzZXJQb2xpY3ksIG51
bGxwdHIsIG51bGxwdHIpOwotCi0gICAgdGVzdERvbmUgPSB0cnVlOwotfQotCi1zdGF0aWMgdm9p
ZCBkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQotewotICAgIEVYUEVDVF9FUShy
ZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBjb250ZXh0KTsKLQotICAgIHVzZXJQ
b2xpY3kgPSBwb2xpY3k7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdG8gY2hvb3NlIGEgcG9saWN5IGRp
ZmZlcmVudCBmcm9tIHRoZSBwb2xpY3kgdGhlIHVzZXIgY3VycmVudGx5IGhhcyBzZXQuCi0gICAg
dGVzdFBvbGljeSA9ICh1c2VyUG9saWN5ICsgMSkgJSAzOwotICAgIFdLQ29va2llTWFuYWdlclJl
ZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0
KCkpOwotICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2ll
TWFuYWdlciwgdGVzdFBvbGljeSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0gICAgV0tDb29raWVNYW5h
Z2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCByZWludGVycHJldF9j
YXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmln
YXRpb25SZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCi17Ci0gICAgV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5n
ZXQoKSk7Ci0gICAgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29r
aWVNYW5hZ2VyLCByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRHZXRVc2Vy
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Ci19Ci0KLVRFU1QoV2ViS2l0LCBDb29raWVNYW5hZ2Vy
KQotewotICAgIHdrQ29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlv
bihudWxscHRyKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcod2tDb250ZXh0LmdldCgp
KTsKLQotICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7Ci0gICAgbWVt
c2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKLQotICAgIGxvYWRl
ckNsaWVudC5iYXNlLnZlcnNpb24gPSAwOwotICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hOYXZp
Z2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsKLQotICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0
aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2UpOwotCi0gICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiYWJvdXQ6YmxhbmsiKSkuZ2V0KCkpOwotCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RG9uZSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZiNGJkNDc4M2MwYjI5YzU1NDVl
MDlhNTgxNWNlN2Y3Zjc5YjFlYjcuLjJiNmQ4NmIxOTkxMmM3MzI3YzkwNDA1MmRlNmYwODM4Nzhl
ODVkYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0z
OCwxMCArMzgsMTAgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0
L1dLQ29va2llTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWwuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV0tGcmFtZUhhbmRsZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0Zy
YW1lSW5mb1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hUVFBDb29raWVTdG9yZVJlZi5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01l
c3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01vY2tEaXNwbGF5Lmg+CkBAIC04
NjYsNyArODY2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29u
c2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW8KICAgICBXS1ByZWZlcmVuY2Vz
U2V0QmVhY29uQVBJRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldERpcmVjdG9yeVVwbG9hZEVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogCi0gICAgV0tD
b29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKG1f
Y29udGV4dC5nZXQoKSkpOworICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhX
S1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tDb250ZXh0R2V0V2Vic2l0ZURh
dGFTdG9yZShtX2NvbnRleHQuZ2V0KCkpKSwgbnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICBXS1By
ZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CiAgICAgCkBAIC0yMDkxLDcgKzIwOTEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmCiAKICAg
ICBhdXRvIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kgPSBbJl0gKFdLSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBlUmVmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgewogICAgICAgICBhdXRvIGNvbnRleHQgPSBuZXcgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXS1R5cGVSZWYpPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb250ZXh0R2V0
Q29va2llTWFuYWdlcih0aGlzLT5jb250ZXh0KCkpLCBwb2xpY3ksIGNvbnRleHQsIFtdIChXS0Vy
cm9yUmVmIGVycm9yLCB2b2lkKiBjb250ZXh0KSB7CisgICAgICAgIFdLSFRUUENvb2tpZVN0b3Jl
U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2ll
U3RvcmUoV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShtX2NvbnRleHQuZ2V0KCkpKSwgcG9s
aWN5LCBjb250ZXh0LCBbXSAodm9pZCogY29udGV4dCkgewogICAgICAgICAgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlclBvaW50ZXIgPSBzdGF0aWNfY2FzdDxDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdLVHlwZVJlZik+Kj4oY29udGV4dCk7CiAgICAgICAgICAgICAoKmNvbXBsZXRpb25IYW5kbGVy
UG9pbnRlcikobnVsbHB0cik7CiAgICAgICAgICAgICBkZWxldGUgY29tcGxldGlvbkhhbmRsZXJQ
b2ludGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA5
Zjg3ZGIyZjIxYzBhYzExYTdlOTFhZDFjYzMyMWY2YmQ4YzBkZDdiLi5kYzNhNWY0MzQ4MDNhMTk3
ODI2NThiODIwNTNlNDZjYjQ0ZGUxZDczIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgIlVJU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydC5oIgogI2luY2x1ZGUgPFdlYktp
dC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLQ29va2llTWFuYWdlci5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS0RhdGEuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tEaWN0aW9u
YXJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg+CiAjaW5jbHVk
ZSA8V2ViS2l0L1dLSW5zcGVjdG9yLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZVByaXZhdGUu
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KQEAgLTE2NCw3ICsxNjQsNyBAQCB2
b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogCiAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldFNob3VsZExvZ0hpc3RvcnlDbGllbnRDYWxsYmFja3Moc2hvdWxkTG9nSGlzdG9y
eUNsaWVudENhbGxiYWNrcygpKTsKIAotICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuY29udGV4dCgpKSwga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFp
bkRvY3VtZW50RG9tYWluLCBudWxscHRyLCBudWxscHRyKTsKKyAgICBXS0hUVFBDb29raWVTdG9y
ZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tp
ZVN0b3JlKFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLmNvbnRleHQoKSkpLCBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWlu
RG9jdW1lbnREb21haW4sIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBjbGVhciBvdXQgdmlzaXRlZCBsaW5rcyBoZXJlLgogCkBAIC05MTIsNyArOTEyLDcgQEAg
V0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEIKIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQiKSkgewogICAg
ICAgICBXS0Jvb2xlYW5SZWYgYWNjZXB0ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNz
YWdlQm9keSk7Ci0gICAgICAgIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElFbmFi
bGVkKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LmNvbnRleHQoKSksIFdLQm9vbGVhbkdldFZhbHVlKGFjY2VwdCkpOworICAgICAgICBXS0NvbnRl
eHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
Y29udGV4dCgpLCBXS0Jvb2xlYW5HZXRWYWx1ZShhY2NlcHQpKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggOWE1NTgyNDE5YTZhNjU1OGIyNmI3MTdhNDg5ODky
ZWUyYzkzMDNmNi4uZTgyZWUyMmYzNDE4ODkyOGQ5ZjM1N2M0YTVlNzNhMmVmZDBhMDdiNiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2Nv
YS5tbQpAQCAtMzYsNyArMzYsNiBAQAogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaD4KICNpbXBvcnQgPFdlYktp
dC9XS0NvbnRleHRQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nQ0Yu
aD4KQEAgLTY5LDcgKzY4LDcgQEAgdm9pZCBpbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24o
Y29uc3QgY2hhciogbGlicmFyeVBhdGgsIFdLU3RyaW5nUmVmIGluamVjdGUKICAgICBnbG9iYWxX
ZWJWaWV3Q29uZmlndXJhdGlvbi5fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgPSBZ
RVM7CiAgICAgZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24uX2FwcGxlUGF5RW5hYmxlZCA9IFlF
UzsKIAotICAgIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKFdLQ29u
dGV4dEdldENvb2tpZU1hbmFnZXIoY29udGV4dCksIHRydWUpOworICAgIFdLQ29udGV4dFNldFN0
b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGNvbnRleHQsIHRydWUpOwogCiAgICAgV0tXZWJzaXRlRGF0
YVN0b3JlKiBwb29sV2Vic2l0ZURhdGFTdG9yZSA9IChfX2JyaWRnZSBXS1dlYnNpdGVEYXRhU3Rv
cmUgKilXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKChfX2JyaWRnZSBXS0NvbnRleHRSZWYp
Z2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wpOwogICAgIGlmIChsaWJyYXJ5
UGF0aCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378140</attachid>
            <date>2019-09-05 17:18:50 -0700</date>
            <delta_ts>2019-09-06 13:27:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201473-20190905171849.patch</filename>
            <type>text/plain</type>
            <size>52456</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTU3MzA4ZDA2MGY3NzNh
NmE0N2VkNmNlMmUxZjM1MDcwOWFiYzMuLjFlNmM1YWU2NzA5NDU5OTlkNGU0ZGRmNWFmMzZkYTFi
MGEzM2E1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTktMDktMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEZXByZWNhdGUg
YWxsIFdLQ29va2llTWFuYWdlclJlZiBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZWlyIHVzZSB3YXMgcmVtb3ZlZCBpbiByZGFyOi8v
cHJvYmxlbS81NTAzOTI3NQorICAgICAgICBDcmVhdGVkIHJlcGxhY2VtZW50IEMgQVBJIHRoYXQg
bW9yZSBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgcHVibGljIE9iakMgQVBJIGZvciBXZWJLaXRUZXN0
UnVubmVyLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNw
cDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKToKKyAg
ICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQ
cm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3lJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldENsaWVudCk6CisgICAgICAg
IChXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXS0Nv
b2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV0tDb29raWVN
YW5hZ2VyRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJEZWxldGVB
bGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGUpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV0tIVFRQQ29va2llU3RvcmVHZXRUeXBlSUQpOgorICAgICAgICAoV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdLSFRUUENvb2tpZVN0
b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3Jl
R2V0SFRUUENvb2tpZVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29v
a2llU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVD
b29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUpOgorICAgICAgICAoQVBJOjp0b05T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA5
LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIE1l
c3NhZ2VSZWdpc3RyeSB0byBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAppbmRleCAwMzkxNGIyMWQyZjgzNzg0ODc3MDE5YTZkY2U1ZjQ4YmFmMGY5ODA0Li5lYjdi
MDYxYzQ5OWRjZmI2NDJkNTQ1ZWIwNmI3MmRkOTA5MzY0OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLR2VvbG9jYXRpb25NYW5hZ2VyKiBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tHZW9sb2NhdGlvblBvc2l0aW9uKiBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0dyYW1tYXJEZXRhaWwqIFdLR3JhbW1hckRldGFpbFJl
ZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSFRUUENvb2tpZVN0b3JlKiBXS0hUVFBD
b29raWVTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSGl0VGVzdFJlc3Vs
dCogV0tIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJY29u
RGF0YWJhc2UqIFdLSWNvbkRhdGFiYXNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tJbnNwZWN0b3IqIFdLSW5zcGVjdG9yUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNzgxNGZhYWUzYTI2
MGIzODNmZDkxMGQxODBhYTg5ZDZjNDk5NGY3OC4uYzI2MzBiNDU4NGI4MGE5MWJhZWIyZTMwMjVm
MGM0NzliY2M5ZjVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zNDEsNiArMzQxLDcgQEAgVUlQcm9jZXNz
L0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xv
Y2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAor
VUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9D
L1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAK
IFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggZTEyMmVlM2VkYjFjNDIx
OWQxZDg0MTk5MzIxYTgwMDNkNTJjODIxYy4uMWM4NTgzYTI1OGZjYzg2MGVlNzE1NTk1MTYyOWIw
ZDA1YWJiYzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhU
VFBDb29raWVTdG9yZS5jcHAKQEAgLTExNyw2ICsxMTcsMzggQEAgdm9pZCBIVFRQQ29va2llU3Rv
cmU6OmRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgQ29tcGxldGlv
bkhhbmQKICAgICB9KTsKIH0KIAordm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tp
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGF1dG8qIHBvb2wgPSBtX293bmluZ0RhdGFTdG9yZS0+cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9y
YWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQorICAgICAgICAgICAgZGVsZXRl
Q29va2llc0luRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKCk7CisgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3VwcGxlbWVu
dDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29raWVNYW5hZ2VyLT5k
ZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7CisgICAgLy8g
RklYTUU6IFRoZSBDb21wbGV0aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIEhUVFBDb29raWVT
dG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgYXV0byogcG9vbCA9IG1fb3duaW5nRGF0YVN0b3JlLT5wcm9jZXNzUG9vbEZv
ckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CisgICAgaWYgKCFwb29sKSB7CisgICAgICAgIGlm
ICghbV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisgICAgICAg
ICAgICBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3Rv
cmUocG9saWN5KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNv
b2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclBy
b3h5PigpOworICAgIGNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobV9v
d25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIGNsYXNzIEFQ
SVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtMjQ2LDYgKzI3OCw4IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVJbkRlZmF1
bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25zdCBXZWJDb3JlOjpDb29rCiB2b2lkIEhUVFBDb29r
aWVTdG9yZTo6ZGVsZXRlQ29va2llRnJvbURlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShjb25z
dCBXZWJDb3JlOjpDb29raWUmKSB7IH0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzdGFydE9ic2Vy
dmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZShGdW5jdGlvbjx2b2lkKCk+
JiYpIHsgfQogdm9pZCBIVFRQQ29va2llU3RvcmU6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZh
dWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxl
dGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKSB7IH0KK3ZvaWQgSFRUUENv
b2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5SW5EZWZhdWx0VUlQcm9jZXNzQ29v
a2llU3RvcmUoV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5KSB7IH0KICNlbmRpZgogICAg
IAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggZWJmOTZjODhkOGU2ZWYwYTY4ZTU2ZDZkMTE3MzY2
N2M2MDZlODQ2Ni4uOGY3YmYzYjkwMTA5OThhYmI3MzUyMDIyMGE3ZGFhNGI2NjU2OWIxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaApA
QCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDb29raWVTdG9yYWdlT2JzZXJ2ZXI7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRh
U3RvcmU7CitlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90OwogfQog
CiBuYW1lc3BhY2UgQVBJIHsKQEAgLTYxLDYgKzYyLDkgQEAgcHVibGljOgogICAgIHZvaWQgY29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
Jik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICAKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgY2xhc3Mg
T2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg2LDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBkZWxldGVDb29raWVGcm9tRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0b3JlKGNv
bnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzVG9E
ZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lk
IHN0b3BPYnNlcnZpbmdDaGFuZ2VzVG9EZWZhdWx0VUlQcm9jZXNzQ29va2llU3RvcmUoKTsKKyAg
ICB2b2lkIGRlbGV0ZUNvb2tpZXNJbkRlZmF1bHRVSVByb2Nlc3NDb29raWVTdG9yZSgpOworICAg
IHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgCiAgICAgLy8gRklYTUU6
IFRoaXMgaXMgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCmluZGV4IDUxNzM3NTU5NDhkZDQxNWUyN2E1ZjczZWE0NzJmYWM4MDk1YmViMTku
LmRmNmFjZDg0MTNmZTY1NGZmNWJiY2RiYzA5MzUyZTc2Mjg4Yjc2NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIElu
dGVybmFsRGVidWdGZWF0dXJlOwogY2xhc3MgRXhwZXJpbWVudGFsRmVhdHVyZTsKIGNsYXNzIEZy
YW1lSGFuZGxlOwogY2xhc3MgRnJhbWVJbmZvOworY2xhc3MgSFRUUENvb2tpZVN0b3JlOwogY2xh
c3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIE1lc3NhZ2VMaXN0ZW5lcjsKIGNsYXNzIE5hdmlnYXRp
b247CkBAIC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLRnJhbWVSZWYsIFdl
YkZyYW1lUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYs
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYsIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24pCitXS19BRERfQVBJX01BUFBJTkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQ
STo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJl
ZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNl
UmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYs
IFdlYkluc3BlY3RvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKaW5kZXggMTE3OTA1ZjVkOTM5ZjlkZmQzMzcwZGJhMDViOTExYTNkYzc0YzNkMy4u
YTFhNTViZjc3NWM5OWQ4N2E2YjY3YzE2MDg0NmUyZmM2NWIwZjNkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00MTcsNiArNDE3LDExIEBAIGJv
b2wgV0tDb250ZXh0R2V0VXNlc1NpbmdsZVdlYlByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCiAgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5jb25maWd1cmF0aW9u
KCkudXNlc1NpbmdsZVdlYlByb2Nlc3MoKTsKIH0KIAordm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0NvbnRleHRTZXRDdXN0b21XZWJDb250ZW50U2Vy
dmljZUJ1bmRsZUlkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IG5hbWUpCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldEN1c3RvbVdlYkNv
bnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihXZWJLaXQ6OnRvSW1wbChuYW1lKS0+c3RyaW5n
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCA5YTZj
YmNmYzEyOWQ3NjY2YzMwZDgxZjc0NjhjNzcwZGYwMmUxYWQ0Li5lZjZmZjFiOWMyNzNmMDNkZGQy
ZjE3NWY0YjU4NjUyNjhjZDBlMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaApAQCAtMTM3LDEzICsxMzcsMTUgQEAgV0tfRVhQT1JUIHVuc2lnbmVkIFdLQ29u
dGV4dEdldE1heGltdW1OdW1iZXJPZlByb2Nlc3NlcyhXS0NvbnRleHRSZWYgY29udGV4dCkgV0sK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNTaW5nbGVXZWJQcm9jZXNzKFdLQ29udGV4
dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRHZXRVc2VzU2luZ2xlV2ViUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZW5hYmxlZCk7CisKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tEb3VibGVSZWYgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9y
eVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwogCiBXS19FWFBPUlQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBP
UlQgV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRD
b29raWVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
V0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9u
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tJY29uRGF0YWJhc2VS
ZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VY
UE9SVCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9y
YWdlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAppbmRleCAwNjM2ZWE2YzJjNzdlM2Zk
NGQwYjRkYzZmMTJkMDhkZWI4Njk1MDQ4Li43YWZhOGZiNDE3YzAzNmRiMDg2ZWU4OTc1Y2I3Yjc1
ZmQ3MmM5ZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29v
a2llTWFuYWdlci5jcHAKQEAgLTI4LDY0ICsyOCw1MCBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXku
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb29raWVNYW5h
Z2VyR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5
OjpBUElUeXBlKTsKKyAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRD
bGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2ll
TWFuYWdlckNsaWVudEJhc2UqIHdrQ2xpZW50KQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGll
bnQoV0tDb29raWVNYW5hZ2VyUmVmLCBjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKikK
IHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmluaXRpYWxpemVDbGllbnQod2tDbGll
bnQpOwogfQogCi12b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdL
Q29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tp
ZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBjYWxsYmFjaykKK3ZvaWQgV0tDb29r
aWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lk
KiwgV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pCiB7Ci0gICAgdG9J
bXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRl
eHQsIGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0bmFtZSkKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
KFdLQ29va2llTWFuYWdlclJlZiwgV0tTdHJpbmdSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1h
bmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIHsgdG9JbXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkgfSk7CiB9CiAKLXZv
aWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlclJlZikKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nv
b2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgZG91YmxlIGRhdGUpCit2b2lkIFdLQ29va2ll
TWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJS
ZWYsIGRvdWJsZSkKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhkYXRlKSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7
CiB9CiAKLXZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeUZ1bmN0aW9uIGNhbGxiYWNrKQordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiwgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
LCB2b2lkKiwgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9u
KQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSwgW2NvbnRleHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9y
ICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUo
KS5wdHIoKSkgOiBudWxscHRyLCBjb250ZXh0KTsKLSAgICB9KTsKIH0KIAotdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmLCB2b2lkKiwgV0tDb29raWVNYW5h
Z2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsK
IH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgYm9vbCBlbmFibGVkKQordm9pZCBXS0Nvb2tp
ZU1hbmFnZXJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYsIGJv
b2wpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRTdG9yYWdlQWNjZXNzQVBJRW5h
YmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCit2b2lkIFdLQ29v
a2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYp
CiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV0tDb29r
aWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIpCit2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKFdLQ29va2llTWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuaAppbmRleCA3MzM1NGQyY2JhNGVkZjk3YjlhNTc5MjBjZDQ1YmM3NzQyNTJiYWE1Li41NTZi
OTQyMjRjMjllM2U0MjNkOTRlZDQ2OThjODk0OGE2ZDNlY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBXS0Nvb2tpZU1hbmFnZXJfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBl
eHRlcm4gIkMiIHsKQEAgLTU1LDI4ICs1NiwyOCBAQCB0eXBlZGVmIHN0cnVjdCBXS0Nvb2tpZU1h
bmFnZXJDbGllbnRWMCB7CiAgICAgV0tDb29raWVNYW5hZ2VyQ29va2llc0RpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzRGlkQ2hhbmdlOwogfSBXS0Nv
b2tpZU1hbmFnZXJDbGllbnRWMDsKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdl
ckdldFR5cGVJRCgpOworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdlckdldFR5cGVJ
RCgpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tDb29r
aWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3QgV0tD
b29raWVNYW5hZ2VyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiB0
eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiko
V0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1
bmN0aW9uIGZ1bmN0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBj
b250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBmdW5jdGlv
bikgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2Vy
RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
LCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7Ci1XS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJE
ZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpIFdLX0NfQVBJ
X0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKSBXS19DX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKTsKIAog
Ly8gVGhlIHRpbWUgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4KLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKSBXS19DX0FQSV9ERVBSRUNBVEVEOwog
CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
RnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRleHQsIFdL
Q29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7
CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5LCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogdHlw
ZWRlZiB2b2lkICgqV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0
aW9uKShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsKLVdLX0VY
UE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQg
dm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spIFdLX0NfQVBJX0RFUFJFQ0FU
RUQ7CiAKLVdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlclNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBib29sIGVuYWJsZWQpOwor
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5hYmxlZCkgV0tfQ19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLQ29udGV4dFNldFN0b3JhZ2VBY2Nlc3NBUElF
bmFibGVkKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKLVdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlcikgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdl
clN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5h
Z2VyKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLSFRUUENvb2tpZVN0b3JlUmVm
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMmIyODkxZWMyMjZlMzFhZmRjOTMwNTEyOWE0OWQzZTlkZmZhNGFh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQ
Q29va2llU3RvcmVSZWYuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tIVFRQQ29va2llU3RvcmVSZWYuaCIKKworI2luY2x1
ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCitXS1R5
cGVJRCBXS0hUVFBDb29raWVTdG9yZUdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIFdlYktpdDo6
dG9BUEkoQVBJOjpIVFRQQ29va2llU3RvcmU6OkFQSVR5cGUpOworfQorCit2b2lkIFdLSFRUUENv
b2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS0hUVFBDb29raWVTdG9yZVJlZiBjb29raWVTdG9y
ZSwgdm9pZCogY29udGV4dCwgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzRnVuY3Rp
b24gY2FsbGJhY2spCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoY29va2llU3RvcmUpLT5kZWxldGVB
bGxDb29raWVzKFtjb250ZXh0LCBjYWxsYmFja10geworICAgICAgICBpZiAoY2FsbGJhY2spCisg
ICAgICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKKyAgICB9KTsKK30KKwordm9pZCBXS0hUVFBD
b29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3RvcmVSZWYg
Y29va2llU3RvcmUsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQqIGNvbnRl
eHQsIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNh
bGxiYWNrKQoreworICAgIFdlYktpdDo6dG9JbXBsKGNvb2tpZVN0b3JlKS0+c2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShXZWJLaXQ6OnRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBb
Y29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAg
Y2FsbGJhY2soY29udGV4dCk7CisgICAgfSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0hUVFBDb29raWVTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDg3NWM0
M2U0NjdjYzkwNWFkYTVlNTc1ZGM3NzAxZTVjZDdlYTgyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tIVFRQQ29va2llU3RvcmVSZWYuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0hUVFBDb29raWVTdG9yZVJlZl9oCisj
ZGVmaW5lIFdLSFRUUENvb2tpZVN0b3JlUmVmX2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2Uu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLSFRUUENv
b2tpZVN0b3JlR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9pZCAoKldLSFRUUENvb2tpZVN0b3Jl
RGVsZXRlQWxsQ29va2llc0Z1bmN0aW9uKSh2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS0hUVFBD
b29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMoV0tIVFRQQ29va2llU3RvcmVSZWYgY29va2llU3Rv
cmUsIHZvaWQqIGNvbnRleHQsIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llc0Z1bmN0
aW9uIGNhbGxiYWNrKTsKKyAgICAKK3R5cGVkZWYgdm9pZCAoKldLSFRUUENvb2tpZVN0b3JlU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKSh2b2lkKik7CitXS19FWFBPUlQgdm9pZCBX
S0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llU3Rv
cmVSZWYgY29va2llU3RvcmUsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIHZvaWQq
IGNvbnRleHQsIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0
aW9uIGNhbGxiYWNrKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlm
IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IGM5OTA0MTYy
ZmNkYTYxMWEzMzY5MzFlZjViMTIxYmEwMDAzNDE5ZjQuLmIyYWMxMWRmNDk3OTU4YjljZWYwOTE3
NzQ5NTY2ODg2MzI1NjZiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtNzUsNiArNzUsMTEgQEAgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZgogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoZW5hYmxlKTsKIH0KIAorV0tIVFRQQ29v
a2llU3RvcmVSZWYgV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEko
JldlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmh0dHBDb29raWVTdG9yZSgpKTsKK30KKwog
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2Rl
V2l0aENvbXBsZXRpb25IYW5kbGVyKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IGJvb2wgZW5hYmxlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNz
RGVidWdNb2RlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggN2RlYzkyYTJiMTdjNmVkYzc5Mzkw
M2NkODNhODhjZjE3NWRjM2JhZC4uZGQwZGExODM0MDJiMWE5NzUxMWQ0YzM1MGM2Yjk1ZWQ1Zjc1
NGY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmgKQEAgLTM3LDYgKzM3LDggQEAgV0tfRVhQT1JUIFdLVHlwZUlEIFdL
V2Vic2l0ZURhdGFTdG9yZUdldFR5cGVJRCgpOwogV0tfRVhQT1JUIFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVHZXREZWZhdWx0RGF0YVN0b3JlKCk7CiBXS19FWFBPUlQg
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3Rl
bnREYXRhU3RvcmUoKTsKIAorV0tfRVhQT1JUIFdLSFRUUENvb2tpZVN0b3JlUmVmIFdLV2Vic2l0
ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmKTsKKwogV0tfRVhQT1JUIGJvb2wgV0tXZWJzaXRlRGF0YVN0b3JlR2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7
CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJs
ZSk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wg
ZW5hYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9B
UElIVFRQQ29va2llU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQppbmRleCA4ODA3NzVjYzc4Njk5NzE4OTI5
ZGI5ODRhZDIzZDNlMjUwODBhMjY5Li5hZDE5Njc2MWQ0ODQwMjFhYmI2M2ZjOWQ1ZWQwN2VkNjVm
ZmU0NGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJ
SFRUUENvb2tpZVN0b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCkBAIC03MCw0ICs3MCwzMCBAQCB2b2lk
IEhUVFBDb29raWVTdG9yZTo6c3RvcE9ic2VydmluZ0NoYW5nZXNUb0RlZmF1bHRVSVByb2Nlc3ND
b29raWVTdG9yZSgpCiAgICAgICAgIG9ic2VydmVyLT5zdG9wT2JzZXJ2aW5nKCk7CiB9CiAKK3Zv
aWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzSW5EZWZhdWx0VUlQcm9jZXNzQ29va2ll
U3RvcmUoKQoreworICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3Rv
cmFnZV0gcmVtb3ZlQ29va2llc1NpbmNlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07Cit9CisK
K3N0YXRpYyBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9OU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3koV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2gg
KHBvbGljeSkgeworICAgIGNhc2UgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdh
eXNBY2NlcHQ6CisgICAgICAgIHJldHVybiBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7
CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyOgorICAgICAg
ICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7CisgICAgY2FzZSBXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAg
ICAgICByZXR1cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnRE
b21haW47CisgICAgY2FzZSBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3k6OkV4Y2x1c2l2
ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAgICAgcmV0dXJuIChOU0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kpTlNIVFRQQ29va2llQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworfQorCit2b2lkIEhUVFBDb29raWVT
dG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUluRGVmYXVsdFVJUHJvY2Vzc0Nvb2tpZVN0
b3JlKFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgW1tOU0hU
VFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQ
b2xpY3k6dG9OU0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KV07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KaW5kZXggOWZkNmE2MTFiNTVjYWRiNjk4MDE2MmRlZGYxZTM1YWY3
OWFhYWYyNS4uMzFlNzFmNTI5ZWI2YjQ2ZDAyNjY0NDlmMzY4MGU4NDFmODgxYzEzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCkBAIC01NDQsMTIgKzU0NCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0
b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX2Nvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb25pbmdFbmFibGVkID0gZW5hYmxlZDsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc3Rv
cmFnZUFjY2Vzc0FQSUVuYWJsZWQgPSBlbmFibGVkOwotICAgIHNlbmRUb05ldHdvcmtpbmdQcm9j
ZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
ZW5hYmxlZCkpOwotfQotCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhclBlcm1hbmVudENyZWRl
bnRpYWxzRm9yUHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYmIHByb3Rl
Y3Rpb25TcGFjZSkKIHsKICAgICBhdXRvIHNoYXJlZFN0b3JhZ2UgPSBbTlNVUkxDcmVkZW50aWFs
U3RvcmFnZSBzaGFyZWRDcmVkZW50aWFsU3RvcmFnZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAppbmRleCA3NDMyODgwZTllMzM2MGFm
NWFkZmFhYTI2ZGU3YTdkNDUwYzhiZTY1Li4wNGQwZGEyZWJlMjhlMmYwOGRlNmRjOWIzMGU1NmYy
NDVkY2NhNGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5jcHAKQEAgLTI2OCwxMyArMjY4LDQgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmRpZFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGwKICAgICBtX2NhbGxiYWNrcy50YWtlPFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJRCktPnBlcmZv
cm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0U3RvcmFn
ZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoZW5hYmxlZCkpOwotI2Vsc2UK
LSAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7Ci0jZW5kaWYKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5oCmluZGV4IDY3M2FkNjQwM2ZiMmI3ZDRkZDk0ZTAxMTBiYzU0OTUyNWIwNmE0YmMuLjJjOTBk
NGM3ZjNkNWU5OWI4Mzc2Y2ExMGRiYzJiNGIzOGFmNjVjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC04MCw4ICs4MCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQs
IEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJy
b3IpPiYmKTsKICAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmKTsKIAotICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7
Ci0KICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7
CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzZTE5Zjg5
ZjA4NTRmMTA3OGJjYjk0ZmQ0YjBkZDAzZWExMmMzNzA4Li4zZDcyMjc5ZjE1MTYxN2NiYjczMGM5
ZjQ5MzU5NTNmZThmYzBhNGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC00MDgsNiArNDA4LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpDCiAj
ZW5kaWYKIH0KIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJs
ZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgPSBlbmFi
bGVkOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoZW5hYmxl
ZCkpOworI2VuZGlmCit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEN1c3RvbVdlYkNvbnRl
bnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGN1c3RvbVdlYkNvbnRlbnRT
ZXJ2aWNlQnVuZGxlSWRlbnRpZmllcikKIHsKICAgICAvLyBHdWFyZCBhZ2FpbnN0IEFQSSBtaXN1
c2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxMWYyMzkx
M2MyOTQ0OTEwMDA5MjA3OGNmZWNiOTE2NjhhOTFjMzNjLi5hNjhlODA0NTg3OWY4YzNkNTJlYzE3
OTc4OGY5MDc4M2Y1ZDlmZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTQ2NSwxMSArNDY1LDExIEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBib29sIGNvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0Q29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgYm9vbCBzdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQ7
IH0KLSAgICB2b2lkIHNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGJvb2wpOwogCiAgICAgdm9p
ZCBjbGVhclBlcm1hbmVudENyZWRlbnRpYWxzRm9yUHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZSYmKTsKICNlbmRpZgorICAgIGJvb2wgc3RvcmFnZUFjY2Vzc0FQSUVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkOyB9CisgICAgdm9p
ZCBzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChib29sKTsKIAogICAgIHN0YXRpYyB1aW50NjRf
dCByZWdpc3RlclByb2Nlc3NQb29sQ3JlYXRpb25MaXN0ZW5lcihGdW5jdGlvbjx2b2lkKFdlYlBy
b2Nlc3NQb29sJik+JiYpOwogICAgIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJQcm9jZXNzUG9vbENy
ZWF0aW9uTGlzdGVuZXIodWludDY0X3QgaWRlbnRpZmllcik7CkBAIC03NTYsOCArNzU2LDggQEAg
cHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wgbV9jb29raWVTdG9yYWdl
UGFydGl0aW9uaW5nRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3N0b3JhZ2VBY2Nlc3NB
UElFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorICAgIGJvb2wgbV9zdG9yYWdlQWNjZXNzQVBJ
RW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICBzdHJ1Y3QgUGF0aHMgewogICAgICAgICBTdHJpbmcg
aW5qZWN0ZWRCdW5kbGVQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNDY3MzYwNDBjZTE4ODA3ODE1NjJlZWY0NzQxZGIxNzUzZDVm
NjUzMi4uYjU3ODJkNTJkODZkZTY2NWI4MjE5ZmFiYjg2YmM3YmZiMDg4MjQ2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAyLDYg
KzExMDIsNyBAQAogCQk1QzRCOUQ4QjIxMEE4Q0NGMDA4RjE0RDEgLyogVW5kb09yUmVkby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjlEOEEyMTBB
OEM0NjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCAqLzsgfTsKIAkJNUM1RDIzOEMyMjdBMkNEQTAw
MEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1RDIzODkyMjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1
c3RvbUhlYWRlckZpZWxkcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTVDNjJGREY5MUVGQzI3MUMwMENFMDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTVDNjZBNEI1MjMy
MDk2MjQwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2NkE0QjQyMzIwOTYxNDAwRUE0RDQ0IC8q
IFdLSFRUUENvb2tpZVN0b3JlUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNUM3OTVENzAyMjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1l
bnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUNFMEMzNjkyMjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5m
by5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJNUM3
OTVENzEyMjlGMzc1NzAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTBDMzZB
MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM3RkI0NzAy
MUU5N0RDNTAwOUUzMjQxIC8qIFdlYkNvb2tpZUphci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3RkI0NkYyMUU5N0MwQzAwOUUzMjQxIC8qIFdlYkNv
b2tpZUphci5oICovOyB9OwpAQCAtMTcyMiw4ICsxNzIzLDYgQEAKIAkJCWNvbXBpbGVyU3BlYyA9
IGNvbS5hcHBsZS5jb21waWxlcnMucHJveHkuc2NyaXB0OwogCQkJZmlsZVBhdHRlcm5zID0gIiou
aCI7CiAJCQlmaWxlVHlwZSA9IHBhdHRlcm4ucHJveHk7Ci0JCQlpbnB1dEZpbGVzID0gKAotCQkJ
KTsKIAkJCWlzRWRpdGFibGUgPSAxOwogCQkJb3V0cHV0RmlsZXMgPSAoCiAJCQkJIiQoSEVBREVS
X09VVFBVVF9ESVIpLyQoSU5QVVRfRklMRV9OQU1FKSIsCkBAIC0zNjM1LDYgKzM2MzQsOCBAQAog
CQk1QzVEMjM4OTIyN0ExODkyMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzVEMjM4QTIyN0ExRDlCMDAwQjlCREEgLyog
QVBJQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSUN1c3RvbUhlYWRlckZpZWxkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDNjZBNEIzMjMyMDk2MTMwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJl
Zi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0hUVFBDb29raWVT
dG9yZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjZBNEI0MjMyMDk2
MTQwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0hUVFBDb29raWVTdG9yZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzZDRTZEMDFGNTlCQzQ2MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VDbGllbnRJ
bXBsQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNkNFNkQzMUY1OUVB
MzUwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBsQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUM3NDMwMEUyMTUwMDQ5MjAwNEJGQTE3IC8qIFdLV2ViUHJvY2Vzcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMzUsNiArODAzNiw4IEBACiAJCQkJQkMwRTYxOTYxMkQ2Q0Qx
MjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAogCQkJCUI2MkU3MzBGMTQz
MDQ3QTYwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuY3BwICovLAogCQkJCUI2MkU3MzExMTQz
MDQ3QjAwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCAqLywKKwkJCQk1QzY2QTRCMzIzMjA5
NjEzMDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuY3BwICovLAorCQkJCTVDNjZBNEI0
MjMyMDk2MTQwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oICovLAogCQkJCTUxMTBB
RTBBMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8sCiAJCQkJNTExMEFF
MEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8sCiAJCQkJMUM4RTI5Mzgx
Mjc2MUU1QjAwQkM3QkQwIC8qIFdLSW5zcGVjdG9yLmNwcCAqLywKQEAgLTEwMTkxLDYgKzEwMTk0
LDcgQEAKIAkJCQkxQTQyMkY4QjE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyog
V0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUQxMjQ5OTFFNzYzQzAxMDAy
QjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDNjZBNEI1
MjMyMDk2MjQwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VD
Ry5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDRjZBQzMxMkM5MUYzNDAwOEY5QzM1IC8qIFdLSW1h
Z2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDE4NjFlNTg2NzNlZWRjZTk5YWM1MzE2MmFhMjkzY2IwMjAyNjZjODIu
Ljk3MmQ1ZTgzOTQ0N2U3MGJiODNkMjdkODQzMTE4NDI3ZTgyNTJjM2YgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAx
OS0wOS0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIERlcHJlY2F0ZSBhbGwgV0tDb29raWVNYW5hZ2VyUmVmIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDczCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgcmVwbGFjZW1l
bnQgQyBBUEkgaW4gV2ViS2l0VGVzdFJ1bm5lci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvQ29va2llTWFuYWdlci5jcHA6IFJlbW92ZWQsIGJlY2F1c2UgdGhlIGZ1bmN0aW9ucyBp
dCB0ZXN0cyB3ZXJlIHJlbW92ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVu
Y2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0
SW52b2NhdGlvbjo6aW52b2tlKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdU
Ujo6aW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKToKKwogMjAxOS0wOS0wMyAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtibWFsbG9jXSBJc29UTFNM
YXlvdXQgYW5kIEFsbElzb0hlYXBzIHJlZ2lzdHJhdGlvbiBpcyByYWN5IHdpdGggZGVyaXZlZCBj
bGFzcyBpbml0aWFsaXphdGlvbiB3aXRoIHZpcnR1YWwgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dAppbmRleCAyMzk0YjUzMWFlMzZhM2YzYzliODI0YjE1ZmE1NjJkZDM1Njkw
YTQ1Li5jYmVjYTNhN2U0MWQwOTg0ZTRhOTQ4MGFlNTdmMzM5YzBmZGY3MmY5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTE5NSw3ICsxOTUsNiBAQCBpZiAoRU5BQkxFX1dFQktJ
VCkKICAgICBzZXQoVGVzdFdlYktpdF9TT1VSQ0VTCiAgICAgICAgIFRlc3RzL1dlYktpdC9BYm91
dEJsYW5rTG9hZC5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L0NhbkhhbmRsZVJlcXVlc3QuY3Bw
Ci0gICAgICAgIFRlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcAogICAgICAgICBUZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9E
T01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAogICAgICAgICBUZXN0cy9XZWJLaXQvRG9jdW1l
bnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4MmE1ZmZiYmM1MTZjOGM4NzQwN2NjYzllMmQ4OWY5MWJmYWVjNGI2Li5lZmY4ZDkxZGEwNmE2
M2NiNTMxOTlmMzhjOTE5YThjZDYyMzA1ZGE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjgwLDcgKzI4MCw2IEBACiAJCTUxQ0QxQzZDMUIzOENFNDMwMDE0MkNBNSAvKiBNb2RhbEFsZXJ0
cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQ0Qx
QzZBMUIzOENFMzYwMDE0MkNBNSAvKiBNb2RhbEFsZXJ0cy5tbSAqLzsgfTsKIAkJNTFDRDFDNzIx
QjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFsLWFsZXJ0cy1pbi1uZXctYWJvdXQtYmxhbmstd2luZG93
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFDRDFDNzExQjM4RDQ4NDAwMTQyQ0E1IC8qIG1vZGFsLWFsZXJ0cy1pbi1uZXctYWJvdXQt
Ymxhbmstd2luZG93Lmh0bWwgKi87IH07CiAJCTUxRDEyNDk4MUU3NjNCMDIwMDJCMjgyMCAvKiBX
S0hUVFBDb29raWVTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRDEyNDk3MUU3NjNBRjgwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5t
bSAqLzsgfTsKLQkJNTFEMTI0OUIxRTc4NTQyNTAwMkIyODIwIC8qIENvb2tpZU1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZGM0YyOTAx
MzM0MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovOyB9OwogCQk1MUQ4QzE5MDIy
NjdCMjZEMDA3OTdFNDAgLyogUERGTGlua1JlZmVycmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEOEMxOEYyMjY3QjI2NzAwNzk3RTQwIC8qIFBE
RkxpbmtSZWZlcnJlci5tbSAqLzsgfTsKIAkJNTFEQjE2Q0UxRjA4NTEzNzAwMUZBNEM1IC8qIFdl
YlZpZXdJY29uTG9hZGluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxREIxNkNEMUYwODUwNDcwMDFGQTRDNSAvKiBXZWJWaWV3SWNvbkxvYWRpbmcu
bW0gKi87IH07CiAJCTUxRTVDNzAyMTkxOUMzQjIwMEQ4QjNFMSAvKiBzaW1wbGUyLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNzgw
MzYxOTE5QUZGODAwMTgyOUEyIC8qIHNpbXBsZTIuaHRtbCAqLzsgfTsKQEAgLTI1MjAsNyArMjUx
OSw2IEBACiAJCUY2QjdCRTkyMTc0NjkxRUYwMDhBMzQ0NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHNfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpZEFzc29jaWF0ZUZvcm1Db250
cm9sc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5MzE3
NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY2QjdCRTk2MTc0NjlCN0UwMDhBMzQ0NSAvKiBhc3NvY2lhdGUtZm9ybS1j
b250cm9scy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNkYzRjI5MDEzMzQyRkVCMDBBNkJGMTkgLyog
Q29va2llTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b29raWVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjYx
NTU0NUM4RDAwMDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5v
Q2FjaGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjcx
NTU0NUM4RDAwMDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RkREREQyMTQyNDFBRDQwMDRGMTcy
OSAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVO
b0hpc3RvcnlDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDQw
LDcgKzM0MzgsNiBAQAogCQkJCUJDMjQ2RDk3MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVS
ZXF1ZXN0X0J1bmRsZS5jcHAgKi8sCiAJCQkJMUE1MEFBMUMxQTJBNEU3MDAwRjRDMzQ1IC8qIENs
b3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwICovLAogCQkJCTdDOEREQUE5MTczNURFMUQwMEVB
NUFDMCAvKiBDbG9zZVRoZW5UZXJtaW5hdGUuY3BwICovLAotCQkJCUY2RjNGMjkwMTMzNDJGRUIw
MEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLywKIAkJCQlGNkI3QkU5MzE3NDY5MUVGMDA4
QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzLmNwcCAqLywKIAkJCQlGNkI3QkU5MjE3
NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8s
CiAJCQkJOTMzMTQwN0IxN0I0NDE5MDAwRjA4M0IxIC8qIERpZE5vdEhhbmRsZUtleURvd24uY3Bw
ICovLApAQCAtNDQxMSw3ICs0NDA4LDYgQEAKIAkJCQlDRDBCRDBBNjFGNzk5MjREMDAxQUIyQ0Yg
LyogQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzNCMUQy
NjIyQTc0RjY3MDBCQ0Y0RDAgLyogQ29udGV4dE1lbnVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUMyOTM2OTMxRDVCRjcwRDAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCTUxRDEyNDlCMUU3ODU0MjUwMDJCMjgyMCAvKiBDb29raWVNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTlBNTI0MUZEMEY2MDEwMEVFQTMyMyAvKiBDb29raWVQ
cml2YXRlQnJvd3NpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjFGNkY3ODFGOTA1NTg0MDBC
NTU3NDQgLyogQ29weUhUTUwubW0gaW4gU291cmNlcyAqLywKIAkJCQk5OTk5MTA4QjFGMzkzQzk2
MDA4QUQ0NTUgLyogQ29weWluZy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODQwYzZjNWEwNjIxOGNkOTgzZDYxOGJjN2M1MmQzOWU4ZjRmNGE2Yy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Db29raWVNYW5hZ2VyLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDkzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBX
S19IQVZFX0NfU1BJCi0KLSNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4K
LSNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewotCi1zdGF0aWMgYm9vbCB0ZXN0RG9uZTsKLS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBwb2xp
Y3kgb24gdGhlIG1hY2hpbmUgcnVubmluZyB0aGUgdGVzdCBpcyBub3QgY2hhbmdlZCBhZnRlciBy
dW5uaW5nIHRoZSB0ZXN0Lgotc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB1c2VyUG9s
aWN5Owotc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0ZXN0UG9saWN5Owotc3RhdGlj
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gd2tDb250ZXh0OwotCi1zdGF0aWMgdm9pZCBkaWRH
ZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9s
aWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQotewotICAgIEVYUEVDVF9FUShyZWludGVy
cHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBjb250ZXh0KTsKLSAgICBFWFBFQ1RfRVEodGVz
dFBvbGljeSwgcG9saWN5KTsKLQotICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
ID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29v
a2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdXNlclBv
bGljeSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0KLSAgICB0ZXN0RG9uZSA9IHRydWU7Ci19Ci0KLXN0
YXRpYyB2b2lkIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgRVhQ
RUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGNvbnRleHQpOwotCi0g
ICAgdXNlclBvbGljeSA9IHBvbGljeTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0byBjaG9vc2UgYSBw
b2xpY3kgZGlmZmVyZW50IGZyb20gdGhlIHBvbGljeSB0aGUgdXNlciBjdXJyZW50bHkgaGFzIHNl
dC4KLSAgICB0ZXN0UG9saWN5ID0gKHVzZXJQb2xpY3kgKyAxKSAlIDM7Ci0gICAgV0tDb29raWVN
YW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29u
dGV4dC5nZXQoKSk7Ci0gICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShjb29raWVNYW5hZ2VyLCB0ZXN0UG9saWN5LCBudWxscHRyLCBudWxscHRyKTsKLSAgICBXS0Nv
b2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0
UG9saWN5KTsKLX0KLQotc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYs
IFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKLXsKLSAgICBXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tD
b250ZXh0LmdldCgpKTsKLSAgICBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRp
ZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLX0KLQotVEVTVChXZWJLaXQsIENvb2tp
ZU1hbmFnZXIpCi17Ci0gICAgd2tDb250ZXh0LmFkb3B0KFdLQ29udGV4dENyZWF0ZVdpdGhDb25m
aWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyh3a0NvbnRl
eHQuZ2V0KCkpOwotCi0gICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsK
LSAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwotCi0g
ICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7Ci0gICAgbG9hZGVyQ2xpZW50LmRpZEZp
bmlzaE5hdmlnYXRpb24gPSBkaWRGaW5pc2hOYXZpZ2F0aW9uOwotCi0gICAgV0tQYWdlU2V0UGFn
ZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7Ci0K
LSAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKS5nZXQoKSk7Ci0KLSAgICBVdGlsOjpydW4oJnRl
c3REb25lKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZmI0YmQ0NzgzYzBi
MjljNTU0NWUwOWE1ODE1Y2U3ZjdmNzliMWViNy4uMmI2ZDg2YjE5OTEyYzczMjdjOTA0MDUyZGU2
ZjA4Mzg3OGU4NWRiYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTM4LDEwICszOCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0F1dGhlbnRpY2F0aW9u
RGVjaXNpb25MaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0
aW9uUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbmNsdWRl
IDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlh
bC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lSGFuZGxlUmVmLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3Jl
UmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSWNvbkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLTWVzc2FnZUxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXku
aD4KQEAgLTg2Niw3ICs4NjYsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVu
Y2VzVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRCZWFjb25BUElFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAK
LSAgICBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29udGV4dEdldENvb2tpZU1h
bmFnZXIobV9jb250ZXh0LmdldCgpKSk7CisgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxD
b29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZShXS0NvbnRleHRHZXRX
ZWJzaXRlRGF0YVN0b3JlKG1fY29udGV4dC5nZXQoKSkpLCBudWxscHRyLCBudWxscHRyKTsKIAog
ICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKICAgICAKQEAgLTIwOTEsNyArMjA5MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdS
ZWYKIAogICAgIGF1dG8gc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IFsmXSAoV0tIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXS1R5cGVSZWYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAgIGF1dG8gY29udGV4dCA9IG5ldyBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdLVHlwZVJlZik+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICAgICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nv
bnRleHRHZXRDb29raWVNYW5hZ2VyKHRoaXMtPmNvbnRleHQoKSksIHBvbGljeSwgY29udGV4dCwg
W10gKFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGNvbnRleHQpIHsKKyAgICAgICAgV0tIVFRQQ29v
a2llU3RvcmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLV2Vic2l0ZURhdGFTdG9yZUdldEhU
VFBDb29raWVTdG9yZShXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKG1fY29udGV4dC5nZXQo
KSkpLCBwb2xpY3ksIGNvbnRleHQsIFtdICh2b2lkKiBjb250ZXh0KSB7CiAgICAgICAgICAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyUG9pbnRlciA9IHN0YXRpY19jYXN0PENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV0tUeXBlUmVmKT4qPihjb250ZXh0KTsKICAgICAgICAgICAgICgqY29tcGxldGlv
bkhhbmRsZXJQb2ludGVyKShudWxscHRyKTsKICAgICAgICAgICAgIGRlbGV0ZSBjb21wbGV0aW9u
SGFuZGxlclBvaW50ZXI7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CmluZGV4IDlmODdkYjJmMjFjMGFjMTFhN2U5MWFkMWNjMzIxZjZiZDhjMGRkN2IuLmRjM2E1ZjQz
NDgwM2ExOTc4MjY1OGI4MjA1M2U0NmNiNDRkZTFkNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0zMyw5ICszMyw5IEBACiAjaW5jbHVkZSAiVUlTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW5jbHVk
ZSA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tDb29raWVN
YW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRGF0YS5oPgogI2luY2x1ZGUgPFdlYktpdC9X
S0RpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVSZWYuaD4K
ICNpbmNsdWRlIDxXZWJLaXQvV0tJbnNwZWN0b3IuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdl
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgpAQCAtMTY0LDcgKzE2
NCw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAgICBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyhzaG91bGRM
b2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKCkpOwogCi0gICAgV0tDb29raWVNYW5hZ2VyU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeShXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5jb250ZXh0KCkpLCBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25s
eUZyb21NYWluRG9jdW1lbnREb21haW4sIG51bGxwdHIsIG51bGxwdHIpOworICAgIFdLSFRUUENv
b2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVHZXRI
VFRQQ29va2llU3RvcmUoV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkuY29udGV4dCgpKSksIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5
RnJvbU1haW5Eb2N1bWVudERvbWFpbiwgbnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGNsZWFyIG91dCB2aXNpdGVkIGxpbmtzIGhlcmUuCiAKQEAgLTkxMiw3ICs5
MTIsNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCIp
KSB7CiAgICAgICAgIFdLQm9vbGVhblJlZiBhY2NlcHQgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KG1lc3NhZ2VCb2R5KTsKLSAgICAgICAgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vz
c0FQSUVuYWJsZWQoV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuY29udGV4dCgpKSwgV0tCb29sZWFuR2V0VmFsdWUoYWNjZXB0KSk7CisgICAgICAg
IFdLQ29udGV4dFNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5jb250ZXh0KCksIFdLQm9vbGVhbkdldFZhbHVlKGFjY2VwdCkpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA5YTU1ODI0MTlhNmE2NTU4YjI2Yjcx
N2E0ODk4OTJlZTJjOTMwM2Y2Li5lODJlZTIyZjM0MTg4OTI4ZDlmMzU3YzRhNWU3M2EyZWZkMGEw
N2I2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVt
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9XS0Nvb2tpZU1h
bmFnZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tT
dHJpbmdDRi5oPgpAQCAtNjksNyArNjgsNyBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmln
dXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAg
IGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMcyA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFi
bGVkID0gWUVTOwogCi0gICAgV0tDb29raWVNYW5hZ2VyU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJs
ZWQoV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihjb250ZXh0KSwgdHJ1ZSk7CisgICAgV0tDb250
ZXh0U2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoY29udGV4dCwgdHJ1ZSk7CiAKICAgICBXS1dl
YnNpdGVEYXRhU3RvcmUqIHBvb2xXZWJzaXRlRGF0YVN0b3JlID0gKF9fYnJpZGdlIFdLV2Vic2l0
ZURhdGFTdG9yZSAqKVdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUoKF9fYnJpZGdlIFdLQ29u
dGV4dFJlZilnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCk7CiAgICAgaWYg
KGxpYnJhcnlQYXRoKSB7Cg==
</data>
<flag name="review"
          id="393800"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>