<?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>153359</bug_id>
          
          <creation_ts>2016-01-22 10:33:13 -0800</creation_ts>
          <short_desc>Modern IDB: Add transactions and create/delete object store to SQLite backend</short_desc>
          <delta_ts>2016-01-22 12:37:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>153021</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1157718</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-22 10:33:13 -0800</bug_when>
    <thetext>Modern IDB: Add transactions and create/delete object store to SQLite backend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157729</commentid>
    <comment_count>1</comment_count>
      <attachid>269581</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-22 10:47:29 -0800</bug_when>
    <thetext>Created attachment 269581
Patch v1

This patch makes a few tests fail worse than they used to (text failure becomes timeout/ASSERT), but that&apos;s okay - It&apos;s expected that the tests are still very rough at this stage.

The handful of regressions is more than offset by the many tests that now pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157748</commentid>
    <comment_count>2</comment_count>
      <attachid>269590</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-22 11:22:28 -0800</bug_when>
    <thetext>Created attachment 269590
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157764</commentid>
    <comment_count>3</comment_count>
      <attachid>269581</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-22 11:46:47 -0800</bug_when>
    <thetext>Comment on attachment 269581
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp:478
&gt; +    auto objectStore = m_objectStoresByName.take(objectStoreByIdentifier-&gt;info().name());

This is unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157776</commentid>
    <comment_count>4</comment_count>
      <attachid>269590</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-22 12:37:53 -0800</bug_when>
    <thetext>Comment on attachment 269590
Patch v2

Clearing flags on attachment: 269590

Committed r195467: &lt;http://trac.webkit.org/changeset/195467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157777</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-22 12:37:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269581</attachid>
            <date>2016-01-22 10:47:29 -0800</date>
            <delta_ts>2016-01-22 11:46:47 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>48618</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5Yjc3MTQ1Li5jNjc0NzliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDEt
MjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCB0cmFuc2FjdGlvbnMgYW5kIGNyZWF0ZS9kZWxldGUgb2JqZWN0IHN0b3JlIHRvIFNR
TGl0ZSBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTMzNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wMS0yMiAg
Q2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxhYm9yYS5jb20+CiAKICAgICAgICAgW0dU
S10gUmVtb3ZlIGEgZm9jdXMgcmluZyBvbiBhbmNob3Igbm9kZSB3aGVuIGZvY3VzZWQgYnkgbW91
c2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggMDdkZGRiZS4uNWNiZDczYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQxLDggKzQ0MSw2IEBAIGltcG9ydGVkL3czYy9pbmRleGVk
ZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLmh0bSBbIEZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS5odG0gWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy9pbmRl
eGVkZGIvdmFsdWVfcmVjdXJzaXZlLmh0bSBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi93cml0ZXItc3RhcnZhdGlvbi5odG0gWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRi
L2Fib3J0ZWQtdmVyc2lvbmNoYW5nZS1jbG9zZXMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9p
bmRleGVkZGIvYmFzaWNzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2Nsb3Nl
ZC1jdXJzb3IuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFuZC1y
ZW1vdmUtb2JqZWN0LXN0b3JlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2Ny
ZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sIFsgRmFpbHVyZSBdCkBAIC00NjgsMjEgKzQ2
NiwxMSBAQCBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWwgWyBGYWls
dXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVx
dWlyZWQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS5o
dG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdmFsdWUuaHRtbCBbIEZh
aWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KLXN0
b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLmh0bWwgWyBGYWlsdXJl
IF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5odG1sIFsg
RmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1vZGQtbmFtZXMuaHRtbCBbIEZh
aWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Utd3JhcHBlci5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtaW4tdXBncmFkZW5lZWRlZC1jbG9zZS1pbi1v
cGVuLXN1Y2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLXJh
bmdlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWwg
WyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQtb2JqZWN0cy5odG1sIFsgRmFp
bHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS1ibG9ja2VkLmh0bWwgWyBG
YWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Bl
bi1hbmQtdmVyc2lvbmNoYW5nZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGVkYXRhYmFzZS1ub3QtYmxvY2tlZC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVkYXRhYmFzZS10cmFuc2FjdGlvbi5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdl
L2luZGV4ZWRkYi9kb250LXdlZGdlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L2R1cGxpY2F0ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZXJyb3ItY2F1
c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
ZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1sIFsgRmFpbHVyZSBdCkBAIC00OTYsMjggKzQ4
NCwxMCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1kdXBsaWNhdGUta2V5cGF0aHMuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sIFsgRmFp
bHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1wb3B1bGF0aW9uLmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRt
bCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdy
YWRlbmVlZGVkLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
ZW5jb2RpbmcuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1n
YXRlZC1vbi1kZWxldGUuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1sb25nLXF1ZXVlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sIFsgRmFpbHVyZSBd
Ci1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWFz
Y2VuZGluZy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBl
bmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmcuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1zYW1lLmh0bWwg
WyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVyc2lzdGVuY2UuaHRt
bCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQtb24tYWJv
cnQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi10d28tb3Bl
bnMtbm8tdmVyc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi11cGdyYWRlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2Vu
ZXJhdG9yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVy
LWFjcm9zcy10eXBlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29y
dC1vcmRlci1kYXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBl
LWFycmF5Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWJpbmFy
eS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5o
dG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5cy5odG1sIFsg
RmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLmh0bWwgWyBGYWlsdXJl
IF0KQEAgLTUzNCwxMCArNTA0LDggQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0ZWQt
cHV0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9hdXRvaW5jcmVt
ZW50LWFib3J0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNp
Yy1hZGQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLXB1
dC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1vcGVu
LWRiLXJlcXVlc3RzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9j
cmVhdGUtaW5kZXgtZmFpbHVyZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWJhc2ljLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1mYWlsdXJlcy5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEuaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMy5odG1sIFsgRmFpbHVyZSBdCkBAIC01NTIsNyAr
NTIwLDYgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTIuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTIuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZW9iamVjdHN0b3JlLTEu
aHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1vcGVuLmh0
bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQtaW5kZXgtZmFpbHVy
ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5n
ZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2Ut
ZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTgzLDE4ICs1
NTAsMTMgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF0dHJpYnV0ZXMu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1
cnNvci1hZHZhbmNlLWZhaWx1cmVzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMuaHRtbCBbIEZhaWx1
cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5jdXJzb3ItZmFpbHVyZXMuaHRtbCBb
IEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1zdWNjZXNz
LWFmdGVyLXZlcnNpb25jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL29wZW5kYXRhYmFzZS12ZXJzaW9ucy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVxdWVzdC1yZWFkeXN0YXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMS5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTIuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVk
dWxlci0zLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2Fj
dGlvbi1zY2hlZHVsZXItNC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci02Lmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbnMtc3RvcC1vbi1uYXZpZ2F0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFi
b3J0LXRoZW4tcmVvcGVuLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi92ZXJzaW9uY2hhbmdlLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9iYWQta2V5cGF0aC5odG1sIFsgRmFpbHVyZSBdCkBAIC02
MDYsNyArNTY4LDYgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVw
ZGF0ZXMtaW5kZXhlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvcnMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxl
dGUtcmVzdWx0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZXZl
bnQtc291cmNlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZ2xv
YmFsLWRhdGEuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRl
eC1wcmV2LW5vLWR1cGxpY2F0ZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2luZGV4ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTYxNSwxNSArNTc2LDEyIEBA
IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5Lmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5j
cmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXIuaHRtbCBbIEZhaWx1cmUg
XQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51bGwtbmFtZS5odG1s
IFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0
bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNh
Y3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHdy
aXRlLXRyYW5zYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWR5U3RhdGUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
bXV0YXRpbmctY3Vyc29yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL25vYmxv
YnMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0LWxvb2t1cHMtaW4t
dmVyc2lvbmNoYW5nZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLWJhc2ljcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1jbGVhci5odG1sIFsgRmFpbHVyZSBdCkBAIC02MzMsNTAgKzU5MSwzNiBAQCBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy5odG1sIFsgRmFpbHVyZSBdCiBzdG9y
YWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2lu
ZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW5jdXJzb3Ita2V5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL29wdGlv
bmFsLWFyZ3VtZW50cy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5n
LWFjdGl2aXR5Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3BlcnNpc3RlbmNl
Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgw
NzEuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtaW52YWxpZGF0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLXJhY2UuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwgWyBG
YWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtY29udGludWUtYWJvcnQuaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LXJlc3VsdC1jYWNoZS5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLmh0bWwgWyBGYWlsdXJl
IF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNpb24tYmxvY2tlZC1ieS12ZXJzaW9uY2hhbmdl
LWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNpb24tbm90
LWJsb2NrZWQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1j
bG9uZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9y
dC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUt
ZmxhZy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRl
ci1jbG9zZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
bmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwgWyBG
YWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMt
cmVjdXJzaW9uLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWNvb3JkaW5hdGlvbi1hY3Jvc3MtZGF0YWJhc2VzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlvbi13aXRoaW4tZGF0YWJhc2UuaHRtbCBb
IEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3IuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFn
YXRpb24uaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3Jk
ZXJpbmcuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3Zl
cmxhcHBpbmcuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
cmVhZC1vbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LXJlYWR3cml0ZS1leGNsdXNpdmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tc2NvcGUtc2VxdWVuY2luZy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2lu
ZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWV4Y2x1c2l2ZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2lu
ZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmplY3QuaHRtbCBbIEZhaWx1
cmUgXQogCi0jU1FMaXRlIGJhY2tlbmQgdGVzdHMgdGhhdCB0aW1lb3V0CisjIFNRTGl0ZSBiYWNr
ZW5kIHRlc3RzIHRoYXQgdGltZW91dAogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGlu
dWUtYXN5bmMuaHRtIFsgU2tpcCBdCiBpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1h
ZHZhbmNlLWludmFsaWQuaHRtIFsgU2tpcCBdCkBAIC02ODcsNyArNjMxLDE2IEBAIGltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTIuaHRtIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bSBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFsaWQuaHRtIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGguaHRtIFsgU2tpcCBdCitzdG9y
YWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS10cmFuc2FjdGlvbi5odG1sIFsgU2tpcCBdCitz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1vcGVuLWRiLXJlcXVlc3RzLmh0bWwgWyBT
a2lwIF0KK3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNC5o
dG1sIFsgU2tpcCBdCitzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1pbnZhbGlkYXRpb24uaHRt
bCBbIFNraXAgXQogc3RvcmFnZS9pbmRleGVkZGIvcHJpbWFyeS1rZXktdW5pcXVlLXRvLW9iamVj
dHN0b3JlLmh0bWwgWyBTa2lwIF0KK3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW9yZGVy
aW5nLmh0bWwgWyBTa2lwIF0KKworIyBTUUxpdGUgYmFja2VuZCB0ZXN0cyB0aGF0IEFTU0VSVAor
c3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Utb2RkLW5hbWVzLmh0bWwgWyBTa2lwIF0KK3N0b3Jh
Z2UvaW5kZXhlZGRiL2RvbnQtd2VkZ2UuaHRtbCBbIFNraXAgXQogCiAjIyMgRU5EIE9GICgzKSBJ
bmRleGVkREIgZmFpbHVyZXMgd2l0aCBTUUxpdGUKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMzJhZDU5Li5lOWIwMjMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjUgQEAKKzIwMTYtMDEtMjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IEFkZCB0cmFuc2FjdGlvbnMgYW5kIGNyZWF0
ZS9kZWxldGUgb2JqZWN0IHN0b3JlIHRvIFNRTGl0ZSBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMzNTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKENvdmVyZWQgYnkg
bWFueSB0ZXN0cyBub3cgcGFzc2luZykuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6IENoYW5nZSBkZWxldGVPYmplY3RTdG9yZSB0byB3b3Jr
IG9uIGFuIElEIGluc3RlYWQgb2YgbmFtZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjp0YWtlT2JqZWN0
U3RvcmVCeUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OnRha2VPYmplY3RTdG9yZUJ5TmFtZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisg
ICAgICAgIENsZWFuIHVwIGZpbGVuYW1lIGdlbmVyYXRpb24gYSBiaXQgdG8gYWN0dWFsbHkgbWF0
Y2ggdGhlIHByZXZpb3VzIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuCisgICAgICAgIEFkZCBiZWdpbi9j
b21taXQvYWJvcnQgdHJhbnNhY3Rpb24gc3VwcG9ydC4KKyAgICAgICAgQWRkIGNyZWF0ZS9kZWxl
dGUgb2JqZWN0IHN0b3JlIHN1cHBvcnQ6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZmlsZW5hbWVGb3JEYXRhYmFzZU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRh
YmFzZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2lu
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmRlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAgICAg
ICAgQ2xlYW4gdXAgU1FMaXRlSURCVHJhbnNhY3Rpb24gdG8gZml0IHdpdGggdGhlIG5ldyBXZWJD
b3JlIGJhY2tpbmcgc3RvcmUgbW9kZWwsIHdoaWNoIGlzIHNsaWdodGx5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tIHRoZSBvbGQgV2ViS2l0MiBiYWNraW5nIHN0b3JlIG1vZGVsOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpTUUxpdGVJREJU
cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5z
YWN0aW9uOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRy
YW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxp
dGVJREJUcmFuc2FjdGlvbjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJUcmFuc2FjdGlvbjo6cm9sbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJUcmFuc2FjdGlvbjo6dHJhbnNhY3Rpb25JZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCVHJhbnNhY3Rpb246
Om1vZGUpOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1EZWxl
dGVPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJEYXRhYmFzZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJ
bmZvOjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlSW5mby5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZUluZm86Om1heEluZGV4SUQpOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkluZm86OmlkZW50aWZpZXIpOgorCiAyMDE2LTAxLTIyICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgUmVtb3ZlIFBh
c3NSZWZQdHIgZnJvbSBSZXNvdXJjZVJlcXVlc3QgYW5kIEZvcm1EYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3Jl
LmgKaW5kZXggOTRjMDRhZi4uNzcwODc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAtNjEsNyAr
NjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgPSAwOwog
CiAgICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJ
bmZvJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0U3RvcmVOYW1lKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVPYmpl
Y3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBJREJF
cnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpID0gMDsKICAg
ICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSA9IDA7CiAgICAg
dmlydHVhbCBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGluZGV4TmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmNwcAppbmRleCBkNjNlNjk0Li5iYjU1MmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcApAQCAtMTQ1LDI0ICsxNDUsMjQgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0
b3JlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAg
ICByZXR1cm4gSURCRXJyb3IoKTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCitJREJFcnJvciBN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlT2JqZWN0U3RvcmUiKTsKIAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7Ci0gICAg
aWYgKCFtX2RhdGFiYXNlSW5mby0+aGFzT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKSkKKyAg
ICBpZiAoIW1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RT
dG9yZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNl
cHRpb246OkNvbnN0cmFpbnRFcnJvcik7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFu
c2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKHRyYW5zYWN0
aW9uKTsKICAgICBBU1NFUlQodHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNoYW5nZSgpKTsKIAotICAg
IGF1dG8gb2JqZWN0U3RvcmUgPSB0YWtlT2JqZWN0U3RvcmVCeU5hbWUob2JqZWN0U3RvcmVOYW1l
KTsKKyAgICBhdXRvIG9iamVjdFN0b3JlID0gdGFrZU9iamVjdFN0b3JlQnlJZGVudGlmaWVyKG9i
amVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKG9iamVjdFN0b3JlKTsKICAgICBpZiAo
IW9iamVjdFN0b3JlKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRp
b246OkNvbnN0cmFpbnRFcnJvcik7CiAKLSAgICBtX2RhdGFiYXNlSW5mby0+ZGVsZXRlT2JqZWN0
U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICBtX2RhdGFiYXNlSW5mby0+ZGVsZXRlT2JqZWN0
U3RvcmUob2JqZWN0U3RvcmUtPmluZm8oKS5uYW1lKCkpOwogICAgIHRyYW5zYWN0aW9uLT5vYmpl
Y3RTdG9yZURlbGV0ZWQoKm9iamVjdFN0b3JlKTsKIAogICAgIHJldHVybiBJREJFcnJvcigpOwpA
QCAtNDY5LDE2ICs0NjksMTYgQEAgdm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnVucmVnaXN0
ZXJPYmplY3RTdG9yZShNZW1vcnlPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUKICAgICBtX29iamVj
dFN0b3Jlc0J5SWRlbnRpZmllci5yZW1vdmUob2JqZWN0U3RvcmUuaW5mbygpLmlkZW50aWZpZXIo
KSk7CiB9CiAKLVJlZlB0cjxNZW1vcnlPYmplY3RTdG9yZT4gTWVtb3J5SURCQmFja2luZ1N0b3Jl
Ojp0YWtlT2JqZWN0U3RvcmVCeU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQorUmVmUHRyPE1lbW9y
eU9iamVjdFN0b3JlPiBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnRha2VPYmplY3RTdG9yZUJ5SWRl
bnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQogewotICAgIGF1dG8gb2JqZWN0U3RvcmVCeU5h
bWUgPSBtX29iamVjdFN0b3Jlc0J5TmFtZS50YWtlKG5hbWUpOwotICAgIGlmICghb2JqZWN0U3Rv
cmVCeU5hbWUpCisgICAgYXV0byBvYmplY3RTdG9yZUJ5SWRlbnRpZmllciA9IG1fb2JqZWN0U3Rv
cmVzQnlJZGVudGlmaWVyLnRha2UoaWRlbnRpZmllcik7CisgICAgaWYgKCFvYmplY3RTdG9yZUJ5
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIG9iamVjdFN0
b3JlID0gbV9vYmplY3RTdG9yZXNCeUlkZW50aWZpZXIudGFrZShvYmplY3RTdG9yZUJ5TmFtZS0+
aW5mbygpLmlkZW50aWZpZXIoKSk7CisgICAgYXV0byBvYmplY3RTdG9yZSA9IG1fb2JqZWN0U3Rv
cmVzQnlOYW1lLnRha2Uob2JqZWN0U3RvcmVCeUlkZW50aWZpZXItPmluZm8oKS5uYW1lKCkpOwog
ICAgIEFTU0VSVChvYmplY3RTdG9yZSk7CiAKLSAgICByZXR1cm4gb2JqZWN0U3RvcmU7CisgICAg
cmV0dXJuIG9iamVjdFN0b3JlQnlJZGVudGlmaWVyOwogfQogCiB2b2lkIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6ZGVsZXRlQmFja2luZ1N0b3JlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
aAppbmRleCAwYjA2YWJlLi41NGYwNGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5o
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9yIGFib3J0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgY29tbWl0VHJhbnNhY3Rp
b24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIG92
ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgY3JlYXRlT2JqZWN0U3RvcmUoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
Qk9iamVjdFN0b3JlSW5mbyYpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgSURCRXJyb3Ig
ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKSBvdmVycmlkZSBmaW5h
bDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgY2xlYXJP
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKICAg
ICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSBvdmVycmlkZSBm
aW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lKSBvdmVycmlkZSBmaW5hbDsKQEAgLTc3
LDcgKzc3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZW1vcnlJREJCYWNraW5nU3RvcmUo
Y29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAKLSAgICBSZWZQdHI8TWVtb3J5T2JqZWN0
U3RvcmU+IHRha2VPYmplY3RTdG9yZUJ5TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIFJl
ZlB0cjxNZW1vcnlPYmplY3RTdG9yZT4gdGFrZU9iamVjdFN0b3JlQnlJZGVudGlmaWVyKHVpbnQ2
NF90IGlkZW50aWZpZXIpOwogCiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX2RhdGFiYXNlSW5mbzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMDNmODA0Zi4uNmJhN2U0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0
ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTI5LDEwICsyOSwxMiBAQAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgor
I2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQktleURhdGEuaCIKICNpbmNsdWRlICJJREJTZXJpYWxp
emF0aW9uLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25JbmZvLmgiCisjaW5jbHVkZSAiSW5k
ZXhLZXkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCkBAIC00MSw2ICs0Myw4IEBACiAjaW5j
bHVkZSAiU1FMaXRlVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIElEQlNlcnZlciB7CiAKQEAgLTM5MCw2ICszOTQsMzMgQEAgc3RkOjp1bmlxdWVfcHRyPElE
QkRhdGFiYXNlSW5mbz4gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpleHRyYWN0RXhpc3RpbmdEYXRh
YmFzZUkKICAgICByZXR1cm4gZGF0YWJhc2VJbmZvOwogfQogCitTdHJpbmcgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpmaWxlbmFtZUZvckRhdGFiYXNlTmFtZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KCFtX2lkZW50aWZpZXIuZGF0YWJhc2VOYW1lKCkuaXNOdWxsKCkpOworCisgICAgaWYgKG1faWRl
bnRpZmllci5kYXRhYmFzZU5hbWUoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAiJTAwIjsK
KworICAgIFN0cmluZyBmaWxlbmFtZSA9IGVuY29kZUZvckZpbGVOYW1lKG1faWRlbnRpZmllci5k
YXRhYmFzZU5hbWUoKSk7CisgICAgZmlsZW5hbWUucmVwbGFjZSgnLicsICIlMkUiKTsKKworICAg
IHJldHVybiBmaWxlbmFtZTsKK30KKworU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVs
bERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1faWRlbnRpZmllci5k
YXRhYmFzZU5hbWUoKS5pc051bGwoKSk7CisKKyAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fYWJzb2x1dGVEYXRhYmFzZURpcmVjdG9yeSwgZmlsZW5hbWVGb3JEYXRhYmFzZU5h
bWUoKSk7Cit9CisKK1N0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBh
dGgoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9pZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpLmlz
TnVsbCgpKTsKKworICAgIHJldHVybiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZnVsbERhdGFi
YXNlRGlyZWN0b3J5KCksICJJbmRleGVkREIuc3FsaXRlMyIpOworfQorCiBjb25zdCBJREJEYXRh
YmFzZUluZm8mIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUlu
Zm8oKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9y
RXN0YWJsaXNoRGF0YWJhc2VJbmZvIC0gZGF0YWJhc2UgJXMiLCBtX2lkZW50aWZpZXIuZGF0YWJh
c2VOYW1lKCkudXRmOCgpLmRhdGEoKSk7CkBAIC0zOTksOSArNDMwLDggQEAgY29uc3QgSURCRGF0
YWJhc2VJbmZvJiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJ
bmZvKCkKIAogICAgIG1fZGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFz
ZUluZm8+KG1faWRlbnRpZmllci5kYXRhYmFzZU5hbWUoKSwgMCk7CiAKLSAgICBtYWtlQWxsRGly
ZWN0b3JpZXMobV9hYnNvbHV0ZURhdGFiYXNlRGlyZWN0b3J5KTsKLQotICAgIFN0cmluZyBkYkZp
bGVuYW1lID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fYWJzb2x1dGVEYXRhYmFzZURpcmVj
dG9yeSwgIkluZGV4ZWREQi5zcWxpdGUzIik7CisgICAgbWFrZUFsbERpcmVjdG9yaWVzKGZ1bGxE
YXRhYmFzZURpcmVjdG9yeSgpKTsKKyAgICBTdHJpbmcgZGJGaWxlbmFtZSA9IGZ1bGxEYXRhYmFz
ZVBhdGgoKTsKIAogICAgIG1fc3FsaXRlREIgPSBzdGQ6Om1ha2VfdW5pcXVlPFNRTGl0ZURhdGFi
YXNlPigpOwogICAgIGlmICghbV9zcWxpdGVEQi0+b3BlbihkYkZpbGVuYW1lKSkgewpAQCAtNDM3
LDM4ICs0NjcsMTc1IEBAIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbygpCiBJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZv
KQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJh
bnNhY3Rpb24gLSAlcyIsIGluZm8uaWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICBVTlVTRURfUEFSQU0oaW5mbyk7CiAKLSAgICByZXR1cm4geyBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRl
ZCIpIH07CisgICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VSVChtX3NxbGl0ZURCLT5p
c09wZW4oKSk7CisKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdHJhbnNhY3Rpb25zLmFkZChpbmZv
LmlkZW50aWZpZXIoKSwgbnVsbHB0cik7CisgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkg
eworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gZXN0YWJsaXNoIHRyYW5zYWN0aW9uIGlk
ZW50aWZpZXIgdGhhdCBhbHJlYWR5IGV4aXN0cyIpOworICAgICAgICByZXR1cm4geyBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gZXN0
YWJsaXNoIHRyYW5zYWN0aW9uIGlkZW50aWZpZXIgdGhhdCBhbHJlYWR5IGV4aXN0cyIpIH07Cisg
ICAgfQorCisgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1FMaXRlSURCVHJhbnNhY3Rpb24+KCp0aGlzLCBpbmZvKTsKKyAgICByZXR1cm4gYWRkUmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZS0+YmVnaW4oKm1fc3FsaXRlREIpOwogfQogCiBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24gLSAlcyIsIGlkZW50aWZpZXIubG9nZ2luZ1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKIAotICAg
IHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiTm90IGltcGxlbWVudGVkIikgfTsKKyAgICBBU1NFUlQobV9zcWxpdGVEQik7CisgICAgQVNT
RVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3Ry
YW5zYWN0aW9ucy50YWtlKGlkZW50aWZpZXIpOworICAgIGlmICghdHJhbnNhY3Rpb24pIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIGNvbW1pdCBhIHRyYW5zYWN0aW9uIHRoYXQgaGFz
bid0IGJlZW4gZXN0YWJsaXNoZWQiKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNl
cHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGFib3J0IGEgdHJh
bnNhY3Rpb24gdGhhdCBoYXNuJ3QgYmVlbiBlc3RhYmxpc2hlZCIpIH07CisgICAgfQorCisgICAg
cmV0dXJuIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwogfQogCiBJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
aWRlbnRpZmllcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3Jl
Ojpjb21taXRUcmFuc2FjdGlvbiAtICVzIiwgaWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOwogCi0gICAgcmV0dXJu
IHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJOb3Qg
aW1wbGVtZW50ZWQiKSB9OworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NFUlQobV9z
cWxpdGVEQi0+aXNPcGVuKCkpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rp
b25zLnRha2UoaWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikgeworICAgICAgICBM
T0dfRVJST1IoIkF0dGVtcHQgdG8gY29tbWl0IGEgdHJhbnNhY3Rpb24gdGhhdCBoYXNuJ3QgYmVl
biBlc3RhYmxpc2hlZCIpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gY29tbWl0IGEgdHJhbnNhY3Rp
b24gdGhhdCBoYXNuJ3QgYmVlbiBlc3RhYmxpc2hlZCIpIH07CisgICAgfQorCisgICAgcmV0dXJu
IHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25z
dCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUg
LSBhZGRpbmcgT1MgJXMgd2l0aCBJRCAlIiBQUkl1NjQsIGluZm8ubmFtZSgpLnV0ZjgoKS5kYXRh
KCksIGluZm8uaWRlbnRpZmllcigpKTsKLSAgICBVTlVTRURfUEFSQU0oaW5mbyk7CiAKLSAgICBy
ZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
Ik5vdCBpbXBsZW1lbnRlZCIpIH07CisgICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VS
VChtX3NxbGl0ZURCLT5pc09wZW4oKSk7CisKKyAgICBhdXRvKiB0cmFuc2FjdGlvbiA9IG1fdHJh
bnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIGlmICghdHJhbnNhY3Rp
b24gfHwgIXRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJB
dHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0
cmFuc2FjdGlvbiIpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5r
bm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9y
ZSB3aXRob3V0IGFuIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIikgfTsKKyAgICB9CisgICAgaWYg
KHRyYW5zYWN0aW9uLT5tb2RlKCkgIT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNp
b25DaGFuZ2UpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmpl
Y3Qgc3RvcmUgaW4gYSBub24tdmVyc2lvbi1jaGFuZ2UgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAg
cmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJBdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgaW4gYSBub24tdmVyc2lvbi1jaGFu
Z2UgdHJhbnNhY3Rpb24iKSB9OworICAgIH0KKworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGtl
eVBhdGhCbG9iID0gc2VyaWFsaXplSURCS2V5UGF0aChpbmZvLmtleVBhdGgoKSk7CisgICAgaWYg
KCFrZXlQYXRoQmxvYikgeworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXJpYWxpemUg
SURCS2V5UGF0aCB0byBzYXZlIGluIGRhdGFiYXNlIGZvciBuZXcgb2JqZWN0IHN0b3JlIik7Cisg
ICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJ
TGl0ZXJhbCgiVW5hYmxlIHRvIHNlcmlhbGl6ZSBJREJLZXlQYXRoIHRvIHNhdmUgaW4gZGF0YWJh
c2UgZm9yIG5ldyBvYmplY3Qgc3RvcmUiKSB9OworICAgIH0KKworICAgIHsKKyAgICAgICAgU1FM
aXRlU3RhdGVtZW50IHNxbCgqbV9zcWxpdGVEQiwgQVNDSUlMaXRlcmFsKCJJTlNFUlQgSU5UTyBP
YmplY3RTdG9yZUluZm8gVkFMVUVTICg/LCA/LCA/LCA/LCA/KTsiKSk7CisgICAgICAgIGlmIChz
cWwucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgx
LCBpbmZvLmlkZW50aWZpZXIoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuYmlu
ZFRleHQoMiwgaW5mby5uYW1lKCkpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJp
bmRCbG9iKDMsIGtleVBhdGhCbG9iLT5kYXRhKCksIGtleVBhdGhCbG9iLT5zaXplKCkpICE9IFNR
TElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQoNCwgaW5mby5hdXRvSW5jcmVtZW50
KCkpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCg1LCBpbmZvLm1h
eEluZGV4SUQoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNR
TElURV9ET05FKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhZGQgb2JqZWN0
IHN0b3JlICclcycgdG8gT2JqZWN0U3RvcmVJbmZvIHRhYmxlICglaSkgLSAlcyIsIGluZm8ubmFt
ZSgpLnV0ZjgoKS5kYXRhKCksIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCBjcmVhdGUgb2JqZWN0IHN0
b3JlIikgfTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgU1FMaXRlU3RhdGVt
ZW50IHNxbCgqbV9zcWxpdGVEQiwgQVNDSUlMaXRlcmFsKCJJTlNFUlQgSU5UTyBLZXlHZW5lcmF0
b3JzIFZBTFVFUyAoPywgMCk7IikpOworICAgICAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgaW5mby5pZGVudGlmaWVyKCkp
ICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
eworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qgc2VlZCBpbml0aWFsIGtleSBnZW5l
cmF0b3IgdmFsdWUgZm9yIE9iamVjdFN0b3JlSW5mbyB0YWJsZSAoJWkpIC0gJXMiLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICAg
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRl
cmFsKCJDb3VsZCBub3Qgc2VlZCBpbml0aWFsIGtleSBnZW5lcmF0b3IgdmFsdWUgZm9yIG9iamVj
dCBzdG9yZSIpIH07CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OwogfQogCi1J
REJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFN0cmluZyYpCitJREJFcnJvciBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIp
CiB7Ci0gICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVND
SUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OworICAgIExPRyhJbmRleGVkREIsICJTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlIC0gb2JqZWN0IHN0b3JlICUiIFBS
SXU2NCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKKworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsK
KyAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOworCisgICAgYXV0byogdHJhbnNhY3Rp
b24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAo
IXRyYW5zYWN0aW9uIHx8ICF0cmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CisgICAgICAgIExP
R19FUlJPUigiQXR0ZW1wdCB0byBkZWxldGUgYW4gb2JqZWN0IHN0b3JlIHdpdGhvdXQgYW4gaW4t
cHJvZ3Jlc3MgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNl
cHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGRlbGV0ZSBhbiBv
YmplY3Qgc3RvcmUgd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpIH07CisgICAg
fQorICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBkZWxl
dGUgYW4gb2JqZWN0IHN0b3JlIGluIGEgbm9uLXZlcnNpb24tY2hhbmdlIHRyYW5zYWN0aW9uIik7
CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBkZWxldGUgYW4gb2JqZWN0IHN0b3JlIGluIGEgbm9uLXZl
cnNpb24tY2hhbmdlIHRyYW5zYWN0aW9uIikgfTsKKyAgICB9CisKKyAgICAvLyBEZWxldGUgdGhl
IE9iamVjdFN0b3JlIHJlY29yZAorICAgIHsKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IHNxbCgq
bV9zcWxpdGVEQiwgQVNDSUlMaXRlcmFsKCJERUxFVEUgRlJPTSBPYmplY3RTdG9yZUluZm8gV0hF
UkUgaWQgPSA/OyIpKTsKKyAgICAgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisg
ICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIG9iamVjdFN0b3JlSWRlbnRpZmllcikgIT0g
U1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Cisg
ICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUgb2JqZWN0IHN0b3JlIGlkICUi
IFBSSWk2NCAiIGZyb20gT2JqZWN0U3RvcmVJbmZvIHRhYmxlICglaSkgLSAlcyIsIG9iamVjdFN0
b3JlSWRlbnRpZmllciwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpV
bmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IGRlbGV0ZSBvYmplY3Qgc3RvcmUi
KSB9OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRGVsZXRlIHRoZSBPYmplY3RTdG9yZSdz
IGtleSBnZW5lcmF0b3IgcmVjb3JkIGlmIHRoZXJlIGlzIG9uZS4KKyAgICB7CisgICAgICAgIFNR
TGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiREVMRVRFIEZST00g
S2V5R2VuZXJhdG9ycyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPzsiKSk7CisgICAgICAgIGlmIChz
cWwucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgx
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3Fs
LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgZGVsZXRlIG9iamVjdCBzdG9yZSBmcm9tIEtleUdlbmVyYXRvcnMgdGFibGUgKCVpKSAtICVz
IiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3Is
IEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IGRlbGV0ZSBrZXkgZ2VuZXJhdG9yIGZvciBkZWxldGVk
IG9iamVjdCBzdG9yZSIpIH07CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBEZWxldGUgYWxs
IGFzc29jaWF0ZWQgcmVjb3JkcworICAgIHsKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IHNxbCgq
bV9zcWxpdGVEQiwgQVNDSUlMaXRlcmFsKCJERUxFVEUgRlJPTSBSZWNvcmRzIFdIRVJFIG9iamVj
dFN0b3JlSUQgPSA/OyIpKTsKKyAgICAgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
CisgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIG9iamVjdFN0b3JlSWRlbnRpZmllcikg
IT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElURV9ET05FKSB7
CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUgcmVjb3JkcyBmb3Igb2Jq
ZWN0IHN0b3JlICUiIFBSSWk2NCAiICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiQ291bGQgbm90IGRlbGV0ZSByZWNvcmRzIGZvciBkZWxldGVkIG9iamVjdCBz
dG9yZSIpIH07CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBEZWxldGUgYWxsIGFzc29jaWF0
ZWQgSW5kZXhlcworICAgIHsKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IHNxbCgqbV9zcWxpdGVE
QiwgQVNDSUlMaXRlcmFsKCJERUxFVEUgRlJPTSBJbmRleEluZm8gV0hFUkUgb2JqZWN0U3RvcmVJ
RCA9ID87IikpOworICAgICAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAg
ICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAg
ICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSBpbmRleCBmcm9tIEluZGV4SW5mbyB0
YWJsZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFz
dEVycm9yTXNnKCkpOworICAgICAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246
OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3QgZGVsZXRlIElEQkluZGV4IGZv
ciBkZWxldGVkIG9iamVjdCBzdG9yZSIpIH07CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBE
ZWxldGUgYWxsIGFzc29jaWF0ZWQgSW5kZXggcmVjb3JkcworICAgIHsKKyAgICAgICAgU1FMaXRl
U3RhdGVtZW50IHNxbCgqbV9zcWxpdGVEQiwgQVNDSUlMaXRlcmFsKCJERUxFVEUgRlJPTSBJbmRl
eFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID87IikpOworICAgICAgICBpZiAoc3FsLnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRl
bGV0ZSBpbmRleCByZWNvcmRzKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1f
c3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IGRlbGV0
ZSBJREJJbmRleCByZWNvcmRzIGZvciBkZWxldGVkIG9iamVjdCBzdG9yZSIpIH07CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYs
IHVpbnQ2NF90KQpAQCAtNTQzLDcgKzcxMCw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zCiAK
IHZvaWQgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVCYWNraW5nU3RvcmUoKQogewotICAg
IFN0cmluZyBkYkZpbGVuYW1lID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fYWJzb2x1dGVE
YXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWREQi5zcWxpdGUzIik7CisgICAgU3RyaW5nIGRiRmls
ZW5hbWUgPSBmdWxsRGF0YWJhc2VQYXRoKCk7CiAKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpkZWxldGVCYWNraW5nU3RvcmUgZGVsZXRpbmcgZmlsZSAnJXMnIG9u
IGRpc2siLCBkYkZpbGVuYW1lLnV0ZjgoKS5kYXRhKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmgKaW5kZXggYTZiZDliZS4uYmUyY2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBh
Ym9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGNvbW1pdFRy
YW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZU9iamVjdFN0
b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJPYmplY3RTdG9yZUluZm8mKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIElE
QkVycm9yIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9y
IGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkgb3ZlcnJpZGUgZmluYWw7
CkBAIC03Niw2ICs3NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyQ3Vyc29yKFNR
TGl0ZUlEQkN1cnNvciYpOwogCiBwcml2YXRlOgorICAgIFN0cmluZyBmaWxlbmFtZUZvckRhdGFi
YXNlTmFtZSgpIGNvbnN0OworICAgIFN0cmluZyBmdWxsRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25z
dDsKKyAgICBTdHJpbmcgZnVsbERhdGFiYXNlUGF0aCgpIGNvbnN0OworCiAgICAgYm9vbCBlbnN1
cmVWYWxpZFJlY29yZHNUYWJsZSgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUlu
Zm8+IGNyZWF0ZUFuZFBvcHVsYXRlSW5pdGlhbERhdGFiYXNlSW5mbygpOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IGV4dHJhY3RFeGlzdGluZ0RhdGFiYXNlSW5mbygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0
ZUlEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggZjdjZThlZi4uMTQ4NGZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0zNiw5ICszNiw4IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgSURCU2VydmVyIHsKIAotU1FMaXRlSURCVHJhbnNhY3Rp
b246OlNRTGl0ZUlEQlRyYW5zYWN0aW9uKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZSYgYmFja2luZ1N0
b3JlLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSkKLSAgICA6IG1faWRlbnRpZmllcih0cmFu
c2FjdGlvbklkZW50aWZpZXIpCi0gICAgLCBtX21vZGUobW9kZSkKK1NRTGl0ZUlEQlRyYW5zYWN0
aW9uOjpTUUxpdGVJREJUcmFuc2FjdGlvbihTUUxpdGVJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdT
dG9yZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQorICAgIDogbV9pbmZvKGluZm8p
CiAgICAgLCBtX2JhY2tpbmdTdG9yZShiYWNraW5nU3RvcmUpCiB7CiB9CkBAIC01Myw0MyArNTIs
NTEgQEAgU1FMaXRlSURCVHJhbnNhY3Rpb246On5TUUxpdGVJREJUcmFuc2FjdGlvbigpCiB9CiAK
IAotYm9vbCBTUUxpdGVJREJUcmFuc2FjdGlvbjo6YmVnaW4oU1FMaXRlRGF0YWJhc2UmIGRhdGFi
YXNlKQorSURCRXJyb3IgU1FMaXRlSURCVHJhbnNhY3Rpb246OmJlZ2luKFNRTGl0ZURhdGFiYXNl
JiBkYXRhYmFzZSkKIHsKICAgICBBU1NFUlQoIW1fc3FsaXRlVHJhbnNhY3Rpb24pOwotICAgIG1f
c3FsaXRlVHJhbnNhY3Rpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFNRTGl0ZVRyYW5zYWN0aW9uPihk
YXRhYmFzZSwgbV9tb2RlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpSZWFkT25seSk7
CiAKKyAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVUcmFu
c2FjdGlvbj4oZGF0YWJhc2UsIG1faW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlv
bk1vZGU6OlJlYWRPbmx5KTsKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5iZWdpbigpOwogCi0g
ICAgcmV0dXJuIG1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKTsKKyAgICBpZiAobV9z
cWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRl
cmFsKCJDb3VsZCBub3Qgc3RhcnQgU1FMaXRlIHRyYW5zYWN0aW9uIGluIGRhdGFiYXNlIGJhY2tl
bmQiKSB9OwogfQogCi1ib29sIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpjb21taXQoKQorSURCRXJy
b3IgU1FMaXRlSURCVHJhbnNhY3Rpb246OmNvbW1pdCgpCiB7Ci0gICAgLy8gSXQncyBva2F5IHRv
IG5vdCBoYXZlIGEgU1FMaXRlIHRyYW5zYWN0aW9uIG9yIG5vdCBoYXZlIHN0YXJ0ZWQgaXQgeWV0
IGJlY2F1c2UgaXQncyBva2F5IGZvciBhIFdlYlByb2Nlc3MKLSAgICAvLyB0byByZXF1ZXN0IHRo
ZSBjb21taXQgb2YgYSB0cmFuc2FjdGlvbiBpbW1lZGlhdGVseSBhZnRlciBjcmVhdGluZyBpdCBi
ZWZvcmUgaXQgaGFzIGV2ZW4gYmVlbiB1c2VkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlv
biB8fCAhbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiTm8gU1FMaXRlIHRyYW5zYWN0aW9uIGluIHByb2dyZXNzIHRvIGNv
bW1pdCIpIH07CiAKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5jb21taXQoKTsKIAotICAgIHJl
dHVybiAhbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpOworICAgIGlmIChtX3NxbGl0
ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpCisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5hYmxlIHRvIGNvbW1pdCBT
UUxpdGUgdHJhbnNhY3Rpb24gaW4gZGF0YWJhc2UgYmFja2VuZCIpIH07CisKKyAgICByZXNldCgp
OworICAgIHJldHVybiB7IH07CiB9CiAKLWJvb2wgU1FMaXRlSURCVHJhbnNhY3Rpb246OnJlc2V0
KCkKK0lEQkVycm9yIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjphYm9ydCgpCiB7Ci0gICAgbV9zcWxp
dGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7Ci0gICAgY2xlYXJDdXJzb3JzKCk7CisgICAgaWYgKCFt
X3NxbGl0ZVRyYW5zYWN0aW9uIHx8ICFtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkp
CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiTm8gU1FMaXRlIHRyYW5zYWN0aW9uIGluIHByb2dyZXNzIHRvIGFib3J0Iikg
fTsKIAotICAgIHJldHVybiB0cnVlOwotfQorICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24tPnJvbGxi
YWNrKCk7CiAKLWJvb2wgU1FMaXRlSURCVHJhbnNhY3Rpb246OnJvbGxiYWNrKCkKLXsKLSAgICBB
U1NFUlQobV9zcWxpdGVUcmFuc2FjdGlvbik7CiAgICAgaWYgKG1fc3FsaXRlVHJhbnNhY3Rpb24t
PmluUHJvZ3Jlc3MoKSkKLSAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi0+cm9sbGJhY2soKTsK
KyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVND
SUlMaXRlcmFsKCJVbmFibGUgdG8gYWJvcnQgU1FMaXRlIHRyYW5zYWN0aW9uIGluIGRhdGFiYXNl
IGJhY2tlbmQiKSB9OworCisgICAgcmVzZXQoKTsKKyAgICByZXR1cm4geyB9OworfQogCi0gICAg
cmV0dXJuIHRydWU7Cit2b2lkIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpyZXNldCgpCit7CisgICAg
bV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CisgICAgY2xlYXJDdXJzb3JzKCk7CiB9CiAK
IFNRTGl0ZUlEQkN1cnNvciogU1FMaXRlSURCVHJhbnNhY3Rpb246Om1heWJlT3BlbkN1cnNvcihj
b25zdCBJREJDdXJzb3JJbmZvJiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaAppbmRl
eCA0OTY4NTQzLi5lZmI4NGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJhbnNhY3Rpb24uaApAQCAtMjgs
NyArMjgsOSBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJ
REJFcnJvci5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IklEQlRyYW5zYWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00OCwzMSAr
NTAsMzAgQEAgY2xhc3MgU1FMaXRlSURCQ3Vyc29yOwogY2xhc3MgU1FMaXRlSURCVHJhbnNhY3Rp
b24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNRTGl0ZUlEQlRyYW5zYWN0aW9uKTsKIHB1
YmxpYzoKLSAgICBTUUxpdGVJREJUcmFuc2FjdGlvbihTUUxpdGVJREJCYWNraW5nU3RvcmUmLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgSW5kZXhl
ZERCOjpUcmFuc2FjdGlvbk1vZGUpOworICAgIFNRTGl0ZUlEQlRyYW5zYWN0aW9uKFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogICAgIH5TUUxpdGVJ
REJUcmFuc2FjdGlvbigpOwogCi0gICAgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faW5mby5pZGVudGlmaWVyKCk7IH0KIAotICAgIGJvb2wgYmVnaW4oU1FMaXRl
RGF0YWJhc2UmKTsKLSAgICBib29sIGNvbW1pdCgpOwotICAgIGJvb2wgcmVzZXQoKTsKLSAgICBi
b29sIHJvbGxiYWNrKCk7CisgICAgSURCRXJyb3IgYmVnaW4oU1FMaXRlRGF0YWJhc2UmKTsKKyAg
ICBJREJFcnJvciBjb21taXQoKTsKKyAgICBJREJFcnJvciBhYm9ydCgpOwogCiAgICAgU1FMaXRl
SURCQ3Vyc29yKiBtYXliZU9wZW5DdXJzb3IoY29uc3QgSURCQ3Vyc29ySW5mbyYpOwogCiAgICAg
dm9pZCBjbG9zZUN1cnNvcihTUUxpdGVJREJDdXJzb3ImKTsKICAgICB2b2lkIG5vdGlmeUN1cnNv
cnNPZkNoYW5nZXMoaW50NjRfdCBvYmplY3RTdG9yZUlEKTsKIAotICAgIEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICBJbmRleGVk
REI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLm1vZGUoKTsg
fQogICAgIGJvb2wgaW5Qcm9ncmVzcygpIGNvbnN0OwogCiAgICAgU1FMaXRlVHJhbnNhY3Rpb24q
IHNxbGl0ZVRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zcWxpdGVUcmFuc2FjdGlvbi5n
ZXQoKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJDdXJzb3JzKCk7CisgICAgdm9pZCBy
ZXNldCgpOwogCi0gICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBJ
bmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtX21vZGU7CisgICAgSURCVHJhbnNhY3Rpb25JbmZv
IG1faW5mbzsKIAogICAgIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZSYgbV9iYWNraW5nU3RvcmU7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNRTGl0ZVRyYW5zYWN0aW9uPiBtX3NxbGl0ZVRyYW5zYWN0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggZjY5ODAyZS4uZWYzMTM5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC01MDIsMjggKzUwMiwzNSBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
JiB0cmFuc2FjdAogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6
OmRlbGV0ZU9iamVjdFN0b3JlIik7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVD
YWxsYmFjayhjYWxsYmFjayk7Ci0gICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVD
cm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZU9i
amVjdFN0b3JlLCBjYWxsYmFja0lELCB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBv
YmplY3RTdG9yZU5hbWUpKTsKKworICAgIGF1dG8qIGluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5m
b0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICBpZiAoIWluZm8p
IHsKKyAgICAgICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJRCwgeyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gZGVsZXRl
IG5vbi1leGlzdGFudCBvYmplY3Qgc3RvcmUiKSB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSwgY2FsbGJh
Y2tJRCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mby0+aWRlbnRpZmllcigp
KSk7CiB9CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9y
ZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkK
K3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1aW50NjRf
dCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSIpOwogCiAgICAgQVNTRVJUKG1f
YmFja2luZ1N0b3JlKTsKLSAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlT2JqZWN0U3RvcmUodHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZU5hbWUpOworICAgIG1fYmFja2luZ1N0b3Jl
LT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CiAKICAgICBJREJFcnJvciBlcnJvcjsKLSAgICBtX3NlcnZlci5wb3N0RGF0YWJh
c2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJh
c2U6OmRpZFBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJv
ciwgb2JqZWN0U3RvcmVOYW1lKSk7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5
KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJm
b3JtRGVsZXRlT2JqZWN0U3RvcmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIG9iamVjdFN0
b3JlSWRlbnRpZmllcikpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3Jt
RGVsZXRlT2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJF
cnJvciYgZXJyb3IsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKQordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNr
SWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9yLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhl
ZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtRGVsZXRlT2JqZWN0U3Rv
cmUiKTsKIAogICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAgbV9kYXRhYmFzZUluZm8t
PmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7CisgICAgICAgIG1fZGF0YWJhc2VJ
bmZvLT5kZWxldGVPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCiAgICAgcGVy
Zm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5oCmluZGV4IGEzZmVjMjEuLmU3ZDJmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1BYm9ydFRy
YW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgYmVnaW5UcmFuc2Fj
dGlvbkluQmFja2luZ1N0b3JlKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogICAgIHZvaWQg
cGVyZm9ybUNyZWF0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
Qk9iamVjdFN0b3JlSW5mbyYpOwotICAgIHZvaWQgcGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKKyAg
ICB2b2lkIHBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcGVyZm9ybUNsZWFyT2Jq
ZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHBlcmZvcm1DcmVhdGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJJbmRleEluZm8mKTsKICAgICB2b2lkIHBlcmZvcm1EZWxldGVJbmRleCh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgaW5kZXhOYW1lKTsKQEAgLTE0OCw3ICsxNDgsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkRGVsZXRlQmFja2luZ1N0b3JlKCk7CiAgICAgdm9pZCBkaWRPcGVuQmFja2luZ1N0
b3JlKGNvbnN0IElEQkRhdGFiYXNlSW5mbyYpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNyZWF0ZU9i
amVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCBj
b25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1EZWxldGVPYmpl
Y3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29u
c3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOworICAgIHZvaWQgZGlkUGVyZm9ybURlbGV0ZU9i
amVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsZWFy
T2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
OwogICAgIHZvaWQgZGlkUGVyZm9ybUNyZWF0ZUluZGV4KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRp
ZmllciwgY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJJbmRleEluZm8mKTsKICAgICB2b2lkIGRp
ZFBlcmZvcm1EZWxldGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElE
QkVycm9yJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlu
ZGV4TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCmluZGV4IDQ0YWE0N2UuLjlkZTVmNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRh
YmFzZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uY3BwCkBAIC0xMzUsNiArMTM1LDExIEBAIHZvaWQgSURCRGF0YWJh
c2VJbmZvOjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkK
ICAgICBtX29iamVjdFN0b3JlTWFwLnJlbW92ZShpbmZvLT5pZGVudGlmaWVyKCkpOwogfQogCit2
b2lkIElEQkRhdGFiYXNlSW5mbzo6ZGVsZXRlT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyKQoreworICAgIG1fb2JqZWN0U3RvcmVNYXAucmVtb3ZlKG9iamVjdFN0b3Jl
SWRlbnRpZmllcik7Cit9CisKICNpZm5kZWYgTkRFQlVHCiBTdHJpbmcgSURCRGF0YWJhc2VJbmZv
Ojpsb2dnaW5nU3RyaW5nKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uaAppbmRleCBiMzMwMzQ1
Li5hMTMxNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRGF0YWJhc2VJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoK
ICAgICBWZWN0b3I8U3RyaW5nPiBvYmplY3RTdG9yZU5hbWVzKCkgY29uc3Q7CiAKICAgICB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKKyAgICB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RT
dG9yZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJP
YmplY3RTdG9yZUluZm8uaAppbmRleCBmZmJkMDNlLi42ZjBmMzFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0
b3JlSW5mby5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBjb25zdCBJREJLZXlQYXRoJiBrZXlQ
YXRoKCkgY29uc3QgeyByZXR1cm4gbV9rZXlQYXRoOyB9CiAgICAgYm9vbCBhdXRvSW5jcmVtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9hdXRvSW5jcmVtZW50OyB9CisgICAgdWludDY0X3QgbWF4SW5k
ZXhJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4SW5kZXhJRDsgfQogCiAgICAgSURCT2JqZWN0U3Rv
cmVJbmZvIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKaW5k
ZXggYmJlYzc0Yi4uZWQ4YTM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaApAQCAtNTIsNyAr
NTIsNyBAQCBwdWJsaWM6CiAKICAgICBJREJUcmFuc2FjdGlvbkluZm8gaXNvbGF0ZWRDb3B5KCkg
Y29uc3Q7CiAKLSAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgSW5kZXhl
ZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogICAg
IHVpbnQ2NF90IG5ld1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX25ld1ZlcnNpb247IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269590</attachid>
            <date>2016-01-22 11:22:28 -0800</date>
            <delta_ts>2016-01-22 12:37:53 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>48664</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5Yjc3MTQ1Li5jNjc0NzliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDEt
MjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCB0cmFuc2FjdGlvbnMgYW5kIGNyZWF0ZS9kZWxldGUgb2JqZWN0IHN0b3JlIHRvIFNR
TGl0ZSBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTMzNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wMS0yMiAg
Q2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxhYm9yYS5jb20+CiAKICAgICAgICAgW0dU
S10gUmVtb3ZlIGEgZm9jdXMgcmluZyBvbiBhbmNob3Igbm9kZSB3aGVuIGZvY3VzZWQgYnkgbW91
c2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggMDdkZGRiZS4uNWNiZDczYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQxLDggKzQ0MSw2IEBAIGltcG9ydGVkL3czYy9pbmRleGVk
ZGIvdHJhbnNhY3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLmh0bSBbIEZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS5odG0gWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy9pbmRl
eGVkZGIvdmFsdWVfcmVjdXJzaXZlLmh0bSBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi93cml0ZXItc3RhcnZhdGlvbi5odG0gWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRi
L2Fib3J0ZWQtdmVyc2lvbmNoYW5nZS1jbG9zZXMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9p
bmRleGVkZGIvYmFzaWNzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2Nsb3Nl
ZC1jdXJzb3IuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWFuZC1y
ZW1vdmUtb2JqZWN0LXN0b3JlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2Ny
ZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sIFsgRmFpbHVyZSBdCkBAIC00NjgsMjEgKzQ2
NiwxMSBAQCBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWwgWyBGYWls
dXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVx
dWlyZWQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS5o
dG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdmFsdWUuaHRtbCBbIEZh
aWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KLXN0
b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLmh0bWwgWyBGYWlsdXJl
IF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxhZy5odG1sIFsg
RmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1vZGQtbmFtZXMuaHRtbCBbIEZh
aWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Utd3JhcHBlci5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtaW4tdXBncmFkZW5lZWRlZC1jbG9zZS1pbi1v
cGVuLXN1Y2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLXJh
bmdlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4Lmh0bWwg
WyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQtb2JqZWN0cy5odG1sIFsgRmFp
bHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS1ibG9ja2VkLmh0bWwgWyBG
YWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Bl
bi1hbmQtdmVyc2lvbmNoYW5nZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGVkYXRhYmFzZS1ub3QtYmxvY2tlZC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4
ZWRkYi9kZWxldGVkYXRhYmFzZS10cmFuc2FjdGlvbi5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdl
L2luZGV4ZWRkYi9kb250LXdlZGdlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L2R1cGxpY2F0ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZXJyb3ItY2F1
c2VzLWFib3J0LWJ5LWRlZmF1bHQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
ZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy5odG1sIFsgRmFpbHVyZSBdCkBAIC00OTYsMjggKzQ4
NCwxMCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1kdXBsaWNhdGUta2V5cGF0aHMuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS5odG1sIFsgRmFp
bHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1wb3B1bGF0aW9uLmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRt
bCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdy
YWRlbmVlZGVkLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
ZW5jb2RpbmcuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1n
YXRlZC1vbi1kZWxldGUuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1sb25nLXF1ZXVlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tb21pdC1wYXJhbWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi5odG1sIFsgRmFpbHVyZSBd
Ci1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWFz
Y2VuZGluZy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBl
bmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmcuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1zYW1lLmh0bWwg
WyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVyc2lzdGVuY2UuaHRt
bCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQtb24tYWJv
cnQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi10d28tb3Bl
bnMtbm8tdmVyc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi11cGdyYWRlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2Vu
ZXJhdG9yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVy
LWFjcm9zcy10eXBlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29y
dC1vcmRlci1kYXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBl
LWFycmF5Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWJpbmFy
eS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS5o
dG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5cy5odG1sIFsg
RmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLmh0bWwgWyBGYWlsdXJl
IF0KQEAgLTUzNCwxMCArNTA0LDggQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0ZWQt
cHV0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9hdXRvaW5jcmVt
ZW50LWFib3J0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNp
Yy1hZGQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLXB1
dC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1vcGVu
LWRiLXJlcXVlc3RzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9j
cmVhdGUtaW5kZXgtZmFpbHVyZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWJhc2ljLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1mYWlsdXJlcy5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEuaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMy5odG1sIFsgRmFpbHVyZSBdCkBAIC01NTIsNyAr
NTIwLDYgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTIuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTIuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZW9iamVjdHN0b3JlLTEu
aHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1vcGVuLmh0
bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQtaW5kZXgtZmFpbHVy
ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5n
ZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2Ut
ZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTgzLDE4ICs1
NTAsMTMgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF0dHJpYnV0ZXMu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1
cnNvci1hZHZhbmNlLWZhaWx1cmVzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMuaHRtbCBbIEZhaWx1
cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5jdXJzb3ItZmFpbHVyZXMuaHRtbCBb
IEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1zdWNjZXNz
LWFmdGVyLXZlcnNpb25jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL29wZW5kYXRhYmFzZS12ZXJzaW9ucy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVxdWVzdC1yZWFkeXN0YXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMS5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTIuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVk
dWxlci0zLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2Fj
dGlvbi1zY2hlZHVsZXItNC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci02Lmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbnMtc3RvcC1vbi1uYXZpZ2F0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFi
b3J0LXRoZW4tcmVvcGVuLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi92ZXJzaW9uY2hhbmdlLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9iYWQta2V5cGF0aC5odG1sIFsgRmFpbHVyZSBdCkBAIC02
MDYsNyArNTY4LDYgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVw
ZGF0ZXMtaW5kZXhlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvcnMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxl
dGUtcmVzdWx0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZXZl
bnQtc291cmNlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZ2xv
YmFsLWRhdGEuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRl
eC1wcmV2LW5vLWR1cGxpY2F0ZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2luZGV4ZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTYxNSwxNSArNTc2LDEyIEBA
IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5Lmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5j
cmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXIuaHRtbCBbIEZhaWx1cmUg
XQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vcGVuLWRhdGFiYXNlLW51bGwtbmFtZS5odG1s
IFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLmh0
bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZG9ubHktdHJhbnNh
Y3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVhZHdy
aXRlLXRyYW5zYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3JlYWR5U3RhdGUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
bXV0YXRpbmctY3Vyc29yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL25vYmxv
YnMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0LWxvb2t1cHMtaW4t
dmVyc2lvbmNoYW5nZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLWJhc2ljcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1jbGVhci5odG1sIFsgRmFpbHVyZSBdCkBAIC02MzMsNTAgKzU5MSwzNiBAQCBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy5odG1sIFsgRmFpbHVyZSBdCiBzdG9y
YWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2lu
ZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW5jdXJzb3Ita2V5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL29wdGlv
bmFsLWFyZ3VtZW50cy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5n
LWFjdGl2aXR5Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3BlcnNpc3RlbmNl
Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgw
NzEuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtaW52YWxpZGF0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLXJhY2UuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwgWyBG
YWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtY29udGludWUtYWJvcnQuaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LXJlc3VsdC1jYWNoZS5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLmh0bWwgWyBGYWlsdXJl
IF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNpb24tYmxvY2tlZC1ieS12ZXJzaW9uY2hhbmdl
LWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNpb24tbm90
LWJsb2NrZWQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1j
bG9uZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9y
dC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUt
ZmxhZy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRl
ci1jbG9zZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
bmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwgWyBG
YWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMt
cmVjdXJzaW9uLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWNvb3JkaW5hdGlvbi1hY3Jvc3MtZGF0YWJhc2VzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlvbi13aXRoaW4tZGF0YWJhc2UuaHRtbCBb
IEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3IuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFn
YXRpb24uaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3Jk
ZXJpbmcuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3Zl
cmxhcHBpbmcuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
cmVhZC1vbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LXJlYWR3cml0ZS1leGNsdXNpdmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tcm9sbGJhY2suaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tc2NvcGUtc2VxdWVuY2luZy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2lu
ZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWV4Y2x1c2l2ZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2lu
ZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmplY3QuaHRtbCBbIEZhaWx1
cmUgXQogCi0jU1FMaXRlIGJhY2tlbmQgdGVzdHMgdGhhdCB0aW1lb3V0CisjIFNRTGl0ZSBiYWNr
ZW5kIHRlc3RzIHRoYXQgdGltZW91dAogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtY29udGlu
dWUtYXN5bmMuaHRtIFsgU2tpcCBdCiBpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1h
ZHZhbmNlLWludmFsaWQuaHRtIFsgU2tpcCBdCkBAIC02ODcsNyArNjMxLDE2IEBAIGltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTIuaHRtIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYmlnLmh0bSBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yX2ludmFsaWQuaHRtIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBhdGguaHRtIFsgU2tpcCBdCitzdG9y
YWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS10cmFuc2FjdGlvbi5odG1sIFsgU2tpcCBdCitz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1vcGVuLWRiLXJlcXVlc3RzLmh0bWwgWyBT
a2lwIF0KK3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNC5o
dG1sIFsgU2tpcCBdCitzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1pbnZhbGlkYXRpb24uaHRt
bCBbIFNraXAgXQogc3RvcmFnZS9pbmRleGVkZGIvcHJpbWFyeS1rZXktdW5pcXVlLXRvLW9iamVj
dHN0b3JlLmh0bWwgWyBTa2lwIF0KK3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW9yZGVy
aW5nLmh0bWwgWyBTa2lwIF0KKworIyBTUUxpdGUgYmFja2VuZCB0ZXN0cyB0aGF0IEFTU0VSVAor
c3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Utb2RkLW5hbWVzLmh0bWwgWyBTa2lwIF0KK3N0b3Jh
Z2UvaW5kZXhlZGRiL2RvbnQtd2VkZ2UuaHRtbCBbIFNraXAgXQogCiAjIyMgRU5EIE9GICgzKSBJ
bmRleGVkREIgZmFpbHVyZXMgd2l0aCBTUUxpdGUKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMzJhZDU5Li5lOWIwMjMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjUgQEAKKzIwMTYtMDEtMjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IEFkZCB0cmFuc2FjdGlvbnMgYW5kIGNyZWF0
ZS9kZWxldGUgb2JqZWN0IHN0b3JlIHRvIFNRTGl0ZSBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMzNTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKENvdmVyZWQgYnkg
bWFueSB0ZXN0cyBub3cgcGFzc2luZykuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6IENoYW5nZSBkZWxldGVPYmplY3RTdG9yZSB0byB3b3Jr
IG9uIGFuIElEIGluc3RlYWQgb2YgbmFtZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjp0YWtlT2JqZWN0
U3RvcmVCeUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OnRha2VPYmplY3RTdG9yZUJ5TmFtZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisg
ICAgICAgIENsZWFuIHVwIGZpbGVuYW1lIGdlbmVyYXRpb24gYSBiaXQgdG8gYWN0dWFsbHkgbWF0
Y2ggdGhlIHByZXZpb3VzIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuCisgICAgICAgIEFkZCBiZWdpbi9j
b21taXQvYWJvcnQgdHJhbnNhY3Rpb24gc3VwcG9ydC4KKyAgICAgICAgQWRkIGNyZWF0ZS9kZWxl
dGUgb2JqZWN0IHN0b3JlIHN1cHBvcnQ6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZmlsZW5hbWVGb3JEYXRhYmFzZU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRh
YmFzZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2lu
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmRlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAgICAg
ICAgQ2xlYW4gdXAgU1FMaXRlSURCVHJhbnNhY3Rpb24gdG8gZml0IHdpdGggdGhlIG5ldyBXZWJD
b3JlIGJhY2tpbmcgc3RvcmUgbW9kZWwsIHdoaWNoIGlzIHNsaWdodGx5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tIHRoZSBvbGQgV2ViS2l0MiBiYWNraW5nIHN0b3JlIG1vZGVsOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpTUUxpdGVJREJU
cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRyYW5z
YWN0aW9uOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQlRy
YW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJ
REJUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxp
dGVJREJUcmFuc2FjdGlvbjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJUcmFuc2FjdGlvbjo6cm9sbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJUcmFuc2FjdGlvbjo6dHJhbnNhY3Rpb25JZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCVHJhbnNhY3Rpb246
Om1vZGUpOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1EZWxl
dGVPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJEYXRhYmFzZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJ
bmZvOjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlSW5mby5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZUluZm86Om1heEluZGV4SUQpOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkluZm86OmlkZW50aWZpZXIpOgorCiAyMDE2LTAxLTIyICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgUmVtb3ZlIFBh
c3NSZWZQdHIgZnJvbSBSZXNvdXJjZVJlcXVlc3QgYW5kIEZvcm1EYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3Jl
LmgKaW5kZXggOTRjMDRhZi4uNzcwODc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAtNjEsNyAr
NjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgPSAwOwog
CiAgICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJ
bmZvJikgPSAwOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0U3RvcmVOYW1lKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVPYmpl
Y3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBJREJF
cnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpID0gMDsKICAg
ICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJJbmRleEluZm8mKSA9IDA7CiAgICAg
dmlydHVhbCBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGluZGV4TmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmNwcAppbmRleCBkNjNlNjk0Li45MGY3OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcApAQCAtMTQ1LDI0ICsxNDUsMjQgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0
b3JlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAg
ICByZXR1cm4gSURCRXJyb3IoKTsKIH0KIAotSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCitJREJFcnJvciBN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlT2JqZWN0U3RvcmUiKTsKIAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7Ci0gICAg
aWYgKCFtX2RhdGFiYXNlSW5mby0+aGFzT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKSkKKyAg
ICBpZiAoIW1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RT
dG9yZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNl
cHRpb246OkNvbnN0cmFpbnRFcnJvcik7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFu
c2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKHRyYW5zYWN0
aW9uKTsKICAgICBBU1NFUlQodHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNoYW5nZSgpKTsKIAotICAg
IGF1dG8gb2JqZWN0U3RvcmUgPSB0YWtlT2JqZWN0U3RvcmVCeU5hbWUob2JqZWN0U3RvcmVOYW1l
KTsKKyAgICBhdXRvIG9iamVjdFN0b3JlID0gdGFrZU9iamVjdFN0b3JlQnlJZGVudGlmaWVyKG9i
amVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKG9iamVjdFN0b3JlKTsKICAgICBpZiAo
IW9iamVjdFN0b3JlKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRp
b246OkNvbnN0cmFpbnRFcnJvcik7CiAKLSAgICBtX2RhdGFiYXNlSW5mby0+ZGVsZXRlT2JqZWN0
U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICBtX2RhdGFiYXNlSW5mby0+ZGVsZXRlT2JqZWN0
U3RvcmUob2JqZWN0U3RvcmUtPmluZm8oKS5uYW1lKCkpOwogICAgIHRyYW5zYWN0aW9uLT5vYmpl
Y3RTdG9yZURlbGV0ZWQoKm9iamVjdFN0b3JlKTsKIAogICAgIHJldHVybiBJREJFcnJvcigpOwpA
QCAtNDY5LDE2ICs0NjksMTYgQEAgdm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnVucmVnaXN0
ZXJPYmplY3RTdG9yZShNZW1vcnlPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUKICAgICBtX29iamVj
dFN0b3Jlc0J5SWRlbnRpZmllci5yZW1vdmUob2JqZWN0U3RvcmUuaW5mbygpLmlkZW50aWZpZXIo
KSk7CiB9CiAKLVJlZlB0cjxNZW1vcnlPYmplY3RTdG9yZT4gTWVtb3J5SURCQmFja2luZ1N0b3Jl
Ojp0YWtlT2JqZWN0U3RvcmVCeU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQorUmVmUHRyPE1lbW9y
eU9iamVjdFN0b3JlPiBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnRha2VPYmplY3RTdG9yZUJ5SWRl
bnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQogewotICAgIGF1dG8gb2JqZWN0U3RvcmVCeU5h
bWUgPSBtX29iamVjdFN0b3Jlc0J5TmFtZS50YWtlKG5hbWUpOwotICAgIGlmICghb2JqZWN0U3Rv
cmVCeU5hbWUpCisgICAgYXV0byBvYmplY3RTdG9yZUJ5SWRlbnRpZmllciA9IG1fb2JqZWN0U3Rv
cmVzQnlJZGVudGlmaWVyLnRha2UoaWRlbnRpZmllcik7CisgICAgaWYgKCFvYmplY3RTdG9yZUJ5
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIG9iamVjdFN0
b3JlID0gbV9vYmplY3RTdG9yZXNCeUlkZW50aWZpZXIudGFrZShvYmplY3RTdG9yZUJ5TmFtZS0+
aW5mbygpLmlkZW50aWZpZXIoKSk7Ci0gICAgQVNTRVJUKG9iamVjdFN0b3JlKTsKKyAgICBhdXRv
IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXNCeU5hbWUudGFrZShvYmplY3RTdG9yZUJ5SWRl
bnRpZmllci0+aW5mbygpLm5hbWUoKSk7CisgICAgQVNTRVJUX1VOVVNFRChvYmplY3RTdG9yZSwg
b2JqZWN0U3RvcmUpOwogCi0gICAgcmV0dXJuIG9iamVjdFN0b3JlOworICAgIHJldHVybiBvYmpl
Y3RTdG9yZUJ5SWRlbnRpZmllcjsKIH0KIAogdm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRl
bGV0ZUJhY2tpbmdTdG9yZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKaW5kZXggMGIw
NmFiZS4uNTRmMDRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaApAQCAtNTMsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBhYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9y
ZUluZm8mKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmly
dHVhbCBJREJFcnJvciBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGNsZWFyT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJ
REJFcnJvciBjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCSW5kZXhJbmZvJikgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGluZGV4TmFtZSkgb3ZlcnJpZGUgZmluYWw7CkBAIC03Nyw3ICs3Nyw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVtb3J5SURCQmFja2luZ1N0b3JlKGNvbnN0IElEQkRh
dGFiYXNlSWRlbnRpZmllciYpOwogCi0gICAgUmVmUHRyPE1lbW9yeU9iamVjdFN0b3JlPiB0YWtl
T2JqZWN0U3RvcmVCeU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBSZWZQdHI8TWVtb3J5
T2JqZWN0U3RvcmU+IHRha2VPYmplY3RTdG9yZUJ5SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlm
aWVyKTsKIAogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9kYXRhYmFzZUluZm87CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDAzZjgwNGYuLjZiYTdlNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yOSwxMCArMjksMTIgQEAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJJ
REJCaW5kaW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIK
ICNpbmNsdWRlICJJREJLZXlEYXRhLmgiCiAjaW5jbHVkZSAiSURCU2VyaWFsaXphdGlvbi5oIgog
I2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgorI2luY2x1ZGUgIkluZGV4S2V5LmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAiU1FMaXRlRmlsZVN5c3RlbS5oIgpAQCAtNDEsNiArNDMsOCBAQAogI2luY2x1ZGUgIlNRTGl0
ZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKK3VzaW5n
IG5hbWVzcGFjZSBKU0M7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2
ZXIgewogCkBAIC0zOTAsNiArMzk0LDMzIEBAIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUlu
Zm8+IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZXh0cmFjdEV4aXN0aW5nRGF0YWJhc2VJCiAgICAg
cmV0dXJuIGRhdGFiYXNlSW5mbzsKIH0KIAorU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZmlsZW5hbWVGb3JEYXRhYmFzZU5hbWUoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9pZGVudGlm
aWVyLmRhdGFiYXNlTmFtZSgpLmlzTnVsbCgpKTsKKworICAgIGlmIChtX2lkZW50aWZpZXIuZGF0
YWJhc2VOYW1lKCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gIiUwMCI7CisKKyAgICBTdHJp
bmcgZmlsZW5hbWUgPSBlbmNvZGVGb3JGaWxlTmFtZShtX2lkZW50aWZpZXIuZGF0YWJhc2VOYW1l
KCkpOworICAgIGZpbGVuYW1lLnJlcGxhY2UoJy4nLCAiJTJFIik7CisKKyAgICByZXR1cm4gZmls
ZW5hbWU7Cit9CisKK1N0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZURp
cmVjdG9yeSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX2lkZW50aWZpZXIuZGF0YWJhc2VOYW1l
KCkuaXNOdWxsKCkpOworCisgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Fi
c29sdXRlRGF0YWJhc2VEaXJlY3RvcnksIGZpbGVuYW1lRm9yRGF0YWJhc2VOYW1lKCkpOworfQor
CitTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoIW1faWRlbnRpZmllci5kYXRhYmFzZU5hbWUoKS5pc051bGwoKSk7CisK
KyAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9y
eSgpLCAiSW5kZXhlZERCLnNxbGl0ZTMiKTsKK30KKwogY29uc3QgSURCRGF0YWJhc2VJbmZvJiBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKCkKIHsKICAg
ICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERh
dGFiYXNlSW5mbyAtIGRhdGFiYXNlICVzIiwgbV9pZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpLnV0
ZjgoKS5kYXRhKCkpOwpAQCAtMzk5LDkgKzQzMCw4IEBAIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYg
U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbygpCiAKICAg
ICBtX2RhdGFiYXNlSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihtX2lk
ZW50aWZpZXIuZGF0YWJhc2VOYW1lKCksIDApOwogCi0gICAgbWFrZUFsbERpcmVjdG9yaWVzKG1f
YWJzb2x1dGVEYXRhYmFzZURpcmVjdG9yeSk7Ci0KLSAgICBTdHJpbmcgZGJGaWxlbmFtZSA9IHBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Fic29sdXRlRGF0YWJhc2VEaXJlY3RvcnksICJJbmRl
eGVkREIuc3FsaXRlMyIpOworICAgIG1ha2VBbGxEaXJlY3RvcmllcyhmdWxsRGF0YWJhc2VEaXJl
Y3RvcnkoKSk7CisgICAgU3RyaW5nIGRiRmlsZW5hbWUgPSBmdWxsRGF0YWJhc2VQYXRoKCk7CiAK
ICAgICBtX3NxbGl0ZURCID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVEYXRhYmFzZT4oKTsKICAg
ICBpZiAoIW1fc3FsaXRlREItPm9wZW4oZGJGaWxlbmFtZSkpIHsKQEAgLTQzNywzOCArNDY3LDE3
NSBAQCBjb25zdCBJREJEYXRhYmFzZUluZm8mIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oKQogSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpi
ZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKIHsKICAgICBM
T0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uIC0g
JXMiLCBpbmZvLmlkZW50aWZpZXIoKS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGluZm8pOwogCi0gICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRp
b246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OworICAg
IEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOwor
CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3RyYW5zYWN0aW9ucy5hZGQoaW5mby5pZGVudGlmaWVy
KCksIG51bGxwdHIpOworICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJBdHRlbXB0IHRvIGVzdGFibGlzaCB0cmFuc2FjdGlvbiBpZGVudGlmaWVyIHRo
YXQgYWxyZWFkeSBleGlzdHMiKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRp
b246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGVzdGFibGlzaCB0cmFu
c2FjdGlvbiBpZGVudGlmaWVyIHRoYXQgYWxyZWFkeSBleGlzdHMiKSB9OworICAgIH0KKworICAg
IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNRTGl0ZUlEQlRy
YW5zYWN0aW9uPigqdGhpcywgaW5mbyk7CisgICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+
dmFsdWUtPmJlZ2luKCptX3NxbGl0ZURCKTsKIH0KIAogSURCRXJyb3IgU1FMaXRlSURCQmFja2lu
Z1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaWRl
bnRpZmllcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjph
Ym9ydFRyYW5zYWN0aW9uIC0gJXMiLCBpZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CiAKLSAgICByZXR1cm4geyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBs
ZW1lbnRlZCIpIH07CisgICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VSVChtX3NxbGl0
ZURCLT5pc09wZW4oKSk7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
dGFrZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKSB7CisgICAgICAgIExPR19F
UlJPUigiQXR0ZW1wdCB0byBjb21taXQgYSB0cmFuc2FjdGlvbiB0aGF0IGhhc24ndCBiZWVuIGVz
dGFibGlzaGVkIik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBhYm9ydCBhIHRyYW5zYWN0aW9uIHRo
YXQgaGFzbid0IGJlZW4gZXN0YWJsaXNoZWQiKSB9OworICAgIH0KKworICAgIHJldHVybiB0cmFu
c2FjdGlvbi0+YWJvcnQoKTsKIH0KIAogSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpj
b21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIp
CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJh
bnNhY3Rpb24gLSAlcyIsIGlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKIAotICAgIHJldHVybiB7IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm90IGltcGxlbWVudGVk
IikgfTsKKyAgICBBU1NFUlQobV9zcWxpdGVEQik7CisgICAgQVNTRVJUKG1fc3FsaXRlREItPmlz
T3BlbigpKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtlKGlk
ZW50aWZpZXIpOworICAgIGlmICghdHJhbnNhY3Rpb24pIHsKKyAgICAgICAgTE9HX0VSUk9SKCJB
dHRlbXB0IHRvIGNvbW1pdCBhIHRyYW5zYWN0aW9uIHRoYXQgaGFzbid0IGJlZW4gZXN0YWJsaXNo
ZWQiKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJv
ciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGNvbW1pdCBhIHRyYW5zYWN0aW9uIHRoYXQgaGFz
bid0IGJlZW4gZXN0YWJsaXNoZWQiKSB9OworICAgIH0KKworICAgIHJldHVybiB0cmFuc2FjdGlv
bi0+Y29tbWl0KCk7CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRl
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgSURCT2JqZWN0
U3RvcmVJbmZvJiBpbmZvKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpjcmVhdGVP
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRleGVk
REIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlIC0gYWRkaW5nIE9T
ICVzIHdpdGggSUQgJSIgUFJJdTY0LCBpbmZvLm5hbWUoKS51dGY4KCkuZGF0YSgpLCBpbmZvLmlk
ZW50aWZpZXIoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGluZm8pOwogCi0gICAgcmV0dXJuIHsgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVt
ZW50ZWQiKSB9OworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NFUlQobV9zcWxpdGVE
Qi0+aXNPcGVuKCkpOworCisgICAgYXV0byogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5n
ZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uIHx8ICF0cmFu
c2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBj
cmVhdGUgYW4gb2JqZWN0IHN0b3JlIHdpdGhvdXQgYW4gaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb24i
KTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwg
QVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgd2l0aG91dCBh
biBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpIH07CisgICAgfQorICAgIGlmICh0cmFuc2FjdGlv
bi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7
CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIGlu
IGEgbm9uLXZlcnNpb24tY2hhbmdlIHRyYW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybiB7IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0
byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIGluIGEgbm9uLXZlcnNpb24tY2hhbmdlIHRyYW5zYWN0
aW9uIikgfTsKKyAgICB9CisKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBrZXlQYXRoQmxvYiA9
IHNlcmlhbGl6ZUlEQktleVBhdGgoaW5mby5rZXlQYXRoKCkpOworICAgIGlmICgha2V5UGF0aEJs
b2IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gc2VyaWFsaXplIElEQktleVBhdGgg
dG8gc2F2ZSBpbiBkYXRhYmFzZSBmb3IgbmV3IG9iamVjdCBzdG9yZSIpOworICAgICAgICByZXR1
cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVu
YWJsZSB0byBzZXJpYWxpemUgSURCS2V5UGF0aCB0byBzYXZlIGluIGRhdGFiYXNlIGZvciBuZXcg
b2JqZWN0IHN0b3JlIikgfTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVu
dCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiSU5TRVJUIElOVE8gT2JqZWN0U3RvcmVJ
bmZvIFZBTFVFUyAoPywgPywgPywgPywgPyk7IikpOworICAgICAgICBpZiAoc3FsLnByZXBhcmUo
KSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgaW5mby5pZGVu
dGlmaWVyKCkpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLmJpbmRUZXh0KDIsIGlu
Zm8ubmFtZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5iaW5kQmxvYigzLCBr
ZXlQYXRoQmxvYi0+ZGF0YSgpLCBrZXlQYXRoQmxvYi0+c2l6ZSgpKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgICAgIHx8IHNxbC5iaW5kSW50KDQsIGluZm8uYXV0b0luY3JlbWVudCgpKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoNSwgaW5mby5tYXhJbmRleElEKCkp
ICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
eworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgYWRkIG9iamVjdCBzdG9yZSAnJXMn
IHRvIE9iamVjdFN0b3JlSW5mbyB0YWJsZSAoJWkpIC0gJXMiLCBpbmZvLm5hbWUoKS51dGY4KCku
ZGF0YSgpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNn
KCkpOworICAgICAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25F
cnJvciwgQVNDSUlMaXRlcmFsKCJDb3VsZCBub3QgY3JlYXRlIG9iamVjdCBzdG9yZSIpIH07Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1f
c3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiSU5TRVJUIElOVE8gS2V5R2VuZXJhdG9ycyBWQUxVRVMg
KD8sIDApOyIpKTsKKyAgICAgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAg
ICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIGluZm8uaWRlbnRpZmllcigpKSAhPSBTUUxJVEVf
T0sKKyAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAg
ICAgIExPR19FUlJPUigiQ291bGQgbm90IHNlZWQgaW5pdGlhbCBrZXkgZ2VuZXJhdG9yIHZhbHVl
IGZvciBPYmplY3RTdG9yZUluZm8gdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIHJldHVybiB7
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQg
bm90IHNlZWQgaW5pdGlhbCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZvciBvYmplY3Qgc3RvcmUiKSB9
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKIH0KIAotSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImLCBjb25zdCBTdHJpbmcmKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQogewotICAgIHJl
dHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
Tm90IGltcGxlbWVudGVkIikgfTsKKyAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2lu
Z1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZSAtIG9iamVjdCBzdG9yZSAlIiBQUkl1NjQsIG9iamVj
dFN0b3JlSWRlbnRpZmllcik7CisKKyAgICBBU1NFUlQobV9zcWxpdGVEQik7CisgICAgQVNTRVJU
KG1fc3FsaXRlREItPmlzT3BlbigpKTsKKworICAgIGF1dG8qIHRyYW5zYWN0aW9uID0gbV90cmFu
c2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlv
biB8fCAhdHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgeworICAgICAgICBMT0dfRVJST1IoIkF0
dGVtcHQgdG8gZGVsZXRlIGFuIG9iamVjdCBzdG9yZSB3aXRob3V0IGFuIGluLXByb2dyZXNzIHRy
YW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBkZWxldGUgYW4gb2JqZWN0IHN0b3Jl
IHdpdGhvdXQgYW4gaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb24iKSB9OworICAgIH0KKyAgICBpZiAo
dHJhbnNhY3Rpb24tPm1vZGUoKSAhPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lv
bkNoYW5nZSkgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gZGVsZXRlIGFuIG9iamVj
dCBzdG9yZSBpbiBhIG5vbi12ZXJzaW9uLWNoYW5nZSB0cmFuc2FjdGlvbiIpOworICAgICAgICBy
ZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
IkF0dGVtcHQgdG8gZGVsZXRlIGFuIG9iamVjdCBzdG9yZSBpbiBhIG5vbi12ZXJzaW9uLWNoYW5n
ZSB0cmFuc2FjdGlvbiIpIH07CisgICAgfQorCisgICAgLy8gRGVsZXRlIHRoZSBPYmplY3RTdG9y
ZSByZWNvcmQKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIs
IEFTQ0lJTGl0ZXJhbCgiREVMRVRFIEZST00gT2JqZWN0U3RvcmVJbmZvIFdIRVJFIGlkID0gPzsi
KSk7CisgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAg
fHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpICE9IFNRTElURV9PSwor
ICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAgICAg
TE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIG9iamVjdCBzdG9yZSBpZCAlIiBQUklpNjQgIiBm
cm9tIE9iamVjdFN0b3JlSW5mbyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9y
LCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCBkZWxldGUgb2JqZWN0IHN0b3JlIikgfTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIC8vIERlbGV0ZSB0aGUgT2JqZWN0U3RvcmUncyBrZXkgZ2VuZXJh
dG9yIHJlY29yZCBpZiB0aGVyZSBpcyBvbmUuCisgICAgeworICAgICAgICBTUUxpdGVTdGF0ZW1l
bnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJSUxpdGVyYWwoIkRFTEVURSBGUk9NIEtleUdlbmVyYXRv
cnMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID87IikpOworICAgICAgICBpZiAoc3FsLnByZXBhcmUo
KSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0g
U1FMSVRFX0RPTkUpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSBv
YmplY3Qgc3RvcmUgZnJvbSBLZXlHZW5lcmF0b3JzIHRhYmxlICglaSkgLSAlcyIsIG1fc3FsaXRl
REItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAg
ICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVy
YWwoIkNvdWxkIG5vdCBkZWxldGUga2V5IGdlbmVyYXRvciBmb3IgZGVsZXRlZCBvYmplY3Qgc3Rv
cmUiKSB9OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRGVsZXRlIGFsbCBhc3NvY2lhdGVk
IHJlY29yZHMKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIs
IEFTQ0lJTGl0ZXJhbCgiREVMRVRFIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0g
PzsiKSk7CisgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAg
ICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpICE9IFNRTElURV9P
SworICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZHMgZm9yIG9iamVjdCBzdG9yZSAl
IiBQUklpNjQgIiAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIG1fc3FsaXRlREIt
Pmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBy
ZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
IkNvdWxkIG5vdCBkZWxldGUgcmVjb3JkcyBmb3IgZGVsZXRlZCBvYmplY3Qgc3RvcmUiKSB9Owor
ICAgICAgICB9CisgICAgfQorCisgICAgLy8gRGVsZXRlIGFsbCBhc3NvY2lhdGVkIEluZGV4ZXMK
KyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0
ZXJhbCgiREVMRVRFIEZST00gSW5kZXhJbmZvIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/OyIpKTsK
KyAgICAgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBz
cWwuYmluZEludDY0KDEsIG9iamVjdFN0b3JlSWRlbnRpZmllcikgIT0gU1FMSVRFX09LCisgICAg
ICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBkZWxldGUgaW5kZXggZnJvbSBJbmRleEluZm8gdGFibGUgKCVpKSAt
ICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IGRlbGV0ZSBJREJJbmRleCBmb3IgZGVsZXRlZCBv
YmplY3Qgc3RvcmUiKSB9OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRGVsZXRlIGFsbCBh
c3NvY2lhdGVkIEluZGV4IHJlY29yZHMKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBz
cWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiREVMRVRFIEZST00gSW5kZXhSZWNvcmRzIFdI
RVJFIG9iamVjdFN0b3JlSUQgPSA/OyIpKTsKKyAgICAgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIG9iamVjdFN0b3JlSWRl
bnRpZmllcikgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUgaW5kZXgg
cmVjb3JkcyglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCBkZWxldGUgSURCSW5kZXgg
cmVjb3JkcyBmb3IgZGVsZXRlZCBvYmplY3Qgc3RvcmUiKSB9OworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCB1aW50NjRfdCkK
QEAgLTU0Myw3ICs3MTAsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6Oml0ZXJh
dGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29ucwogCiB2b2lkIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlQmFja2luZ1N0b3JlKCkKIHsKLSAgICBTdHJpbmcgZGJG
aWxlbmFtZSA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Fic29sdXRlRGF0YWJhc2VEaXJl
Y3RvcnksICJJbmRleGVkREIuc3FsaXRlMyIpOworICAgIFN0cmluZyBkYkZpbGVuYW1lID0gZnVs
bERhdGFiYXNlUGF0aCgpOwogCiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlQmFja2luZ1N0b3JlIGRlbGV0aW5nIGZpbGUgJyVzJyBvbiBkaXNrIiwgZGJG
aWxlbmFtZS51dGY4KCkuZGF0YSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGE2YmQ5YmUuLmJlMmNmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSURCRXJyb3IgYWJvcnRUcmFuc2Fj
dGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJp
ZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2Jq
ZWN0U3RvcmVJbmZvJikgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBJREJFcnJvciBkZWxl
dGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBjbGVhck9iamVj
dFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgSURCRXJyb3IgY3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkluZGV4SW5mbyYpIG92ZXJyaWRlIGZpbmFs
OwogICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpIG92ZXJyaWRlIGZpbmFsOwpAQCAtNzYsNiAr
NzYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdW5yZWdpc3RlckN1cnNvcihTUUxpdGVJREJDdXJz
b3ImKTsKIAogcHJpdmF0ZToKKyAgICBTdHJpbmcgZmlsZW5hbWVGb3JEYXRhYmFzZU5hbWUoKSBj
b25zdDsKKyAgICBTdHJpbmcgZnVsbERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3Q7CisgICAgU3Ry
aW5nIGZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdDsKKwogICAgIGJvb2wgZW5zdXJlVmFsaWRSZWNv
cmRzVGFibGUoKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBjcmVhdGVB
bmRQb3B1bGF0ZUluaXRpYWxEYXRhYmFzZUluZm8oKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURC
RGF0YWJhc2VJbmZvPiBleHRyYWN0RXhpc3RpbmdEYXRhYmFzZUluZm8oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2Fj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRl
SURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGY3Y2U4ZWYuLjE0ODRmY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0
ZUlEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzYsOSArMzYsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKLVNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpTUUxpdGVJ
REJUcmFuc2FjdGlvbihTUUxpdGVJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwgY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIEluZGV4ZWREQjo6
VHJhbnNhY3Rpb25Nb2RlIG1vZGUpCi0gICAgOiBtX2lkZW50aWZpZXIodHJhbnNhY3Rpb25JZGVu
dGlmaWVyKQotICAgICwgbV9tb2RlKG1vZGUpCitTUUxpdGVJREJUcmFuc2FjdGlvbjo6U1FMaXRl
SURCVHJhbnNhY3Rpb24oU1FMaXRlSURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKKyAgICA6IG1faW5mbyhpbmZvKQogICAgICwgbV9i
YWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogewogfQpAQCAtNTMsNDMgKzUyLDUxIEBAIFNRTGl0
ZUlEQlRyYW5zYWN0aW9uOjp+U1FMaXRlSURCVHJhbnNhY3Rpb24oKQogfQogCiAKLWJvb2wgU1FM
aXRlSURCVHJhbnNhY3Rpb246OmJlZ2luKFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKK0lEQkVy
cm9yIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpiZWdpbihTUUxpdGVEYXRhYmFzZSYgZGF0YWJhc2Up
CiB7CiAgICAgQVNTRVJUKCFtX3NxbGl0ZVRyYW5zYWN0aW9uKTsKLSAgICBtX3NxbGl0ZVRyYW5z
YWN0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVUcmFuc2FjdGlvbj4oZGF0YWJhc2UsIG1f
bW9kZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6UmVhZE9ubHkpOwogCisgICAgbV9z
cWxpdGVUcmFuc2FjdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U1FMaXRlVHJhbnNhY3Rpb24+KGRh
dGFiYXNlLCBtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpSZWFk
T25seSk7CiAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi0+YmVnaW4oKTsKIAotICAgIHJldHVybiBt
X3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCk7CisgICAgaWYgKG1fc3FsaXRlVHJhbnNh
Y3Rpb24tPmluUHJvZ3Jlc3MoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiB7
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQg
bm90IHN0YXJ0IFNRTGl0ZSB0cmFuc2FjdGlvbiBpbiBkYXRhYmFzZSBiYWNrZW5kIikgfTsKIH0K
IAotYm9vbCBTUUxpdGVJREJUcmFuc2FjdGlvbjo6Y29tbWl0KCkKK0lEQkVycm9yIFNRTGl0ZUlE
QlRyYW5zYWN0aW9uOjpjb21taXQoKQogewotICAgIC8vIEl0J3Mgb2theSB0byBub3QgaGF2ZSBh
IFNRTGl0ZSB0cmFuc2FjdGlvbiBvciBub3QgaGF2ZSBzdGFydGVkIGl0IHlldCBiZWNhdXNlIGl0
J3Mgb2theSBmb3IgYSBXZWJQcm9jZXNzCi0gICAgLy8gdG8gcmVxdWVzdCB0aGUgY29tbWl0IG9m
IGEgdHJhbnNhY3Rpb24gaW1tZWRpYXRlbHkgYWZ0ZXIgY3JlYXRpbmcgaXQgYmVmb3JlIGl0IGhh
cyBldmVuIGJlZW4gdXNlZC4KICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24gfHwgIW1fc3Fs
aXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxp
dGVyYWwoIk5vIFNRTGl0ZSB0cmFuc2FjdGlvbiBpbiBwcm9ncmVzcyB0byBjb21taXQiKSB9Owog
CiAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi0+Y29tbWl0KCk7CiAKLSAgICByZXR1cm4gIW1fc3Fs
aXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKTsKKyAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlv
bi0+aW5Qcm9ncmVzcygpKQorICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVuYWJsZSB0byBjb21taXQgU1FMaXRlIHRyYW5z
YWN0aW9uIGluIGRhdGFiYXNlIGJhY2tlbmQiKSB9OworCisgICAgcmVzZXQoKTsKKyAgICByZXR1
cm4geyB9OwogfQogCi1ib29sIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpyZXNldCgpCitJREJFcnJv
ciBTUUxpdGVJREJUcmFuc2FjdGlvbjo6YWJvcnQoKQogewotICAgIG1fc3FsaXRlVHJhbnNhY3Rp
b24gPSBudWxscHRyOwotICAgIGNsZWFyQ3Vyc29ycygpOworICAgIGlmICghbV9zcWxpdGVUcmFu
c2FjdGlvbiB8fCAhbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQorICAgICAgICBy
ZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
Ik5vIFNRTGl0ZSB0cmFuc2FjdGlvbiBpbiBwcm9ncmVzcyB0byBhYm9ydCIpIH07CiAKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KKyAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5yb2xsYmFjaygpOwogCi1i
b29sIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpyb2xsYmFjaygpCi17Ci0gICAgQVNTRVJUKG1fc3Fs
aXRlVHJhbnNhY3Rpb24pOwogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNz
KCkpCi0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7CisgICAgICAgIHJl
dHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
VW5hYmxlIHRvIGFib3J0IFNRTGl0ZSB0cmFuc2FjdGlvbiBpbiBkYXRhYmFzZSBiYWNrZW5kIikg
fTsKKworICAgIHJlc2V0KCk7CisgICAgcmV0dXJuIHsgfTsKK30KIAotICAgIHJldHVybiB0cnVl
Owordm9pZCBTUUxpdGVJREJUcmFuc2FjdGlvbjo6cmVzZXQoKQoreworICAgIG1fc3FsaXRlVHJh
bnNhY3Rpb24gPSBudWxscHRyOworICAgIGNsZWFyQ3Vyc29ycygpOwogfQogCiBTUUxpdGVJREJD
dXJzb3IqIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjptYXliZU9wZW5DdXJzb3IoY29uc3QgSURCQ3Vy
c29ySW5mbyYgaW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKaW5kZXggNDk2ODU0My4u
ZWZiODRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKQEAgLTI4LDcgKzI4LDkgQEAK
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSAiSURCRXJyb3IuaCIK
ICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbkluZm8uaCIKICNpbmNsdWRlICJJbmRleGVkREIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDgsMzEgKzUwLDMwIEBAIGNs
YXNzIFNRTGl0ZUlEQkN1cnNvcjsKIGNsYXNzIFNRTGl0ZUlEQlRyYW5zYWN0aW9uIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShTUUxpdGVJREJUcmFuc2FjdGlvbik7CiBwdWJsaWM6Ci0gICAg
U1FMaXRlSURCVHJhbnNhY3Rpb24oU1FMaXRlSURCQmFja2luZ1N0b3JlJiwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIEluZGV4ZWREQjo6VHJhbnNh
Y3Rpb25Nb2RlKTsKKyAgICBTUUxpdGVJREJUcmFuc2FjdGlvbihTUUxpdGVJREJCYWNraW5nU3Rv
cmUmLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB+U1FMaXRlSURCVHJhbnNhY3Rp
b24oKTsKIAotICAgIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2luZm8uaWRlbnRpZmllcigpOyB9CiAKLSAgICBib29sIGJlZ2luKFNRTGl0ZURhdGFiYXNlJik7
Ci0gICAgYm9vbCBjb21taXQoKTsKLSAgICBib29sIHJlc2V0KCk7Ci0gICAgYm9vbCByb2xsYmFj
aygpOworICAgIElEQkVycm9yIGJlZ2luKFNRTGl0ZURhdGFiYXNlJik7CisgICAgSURCRXJyb3Ig
Y29tbWl0KCk7CisgICAgSURCRXJyb3IgYWJvcnQoKTsKIAogICAgIFNRTGl0ZUlEQkN1cnNvciog
bWF5YmVPcGVuQ3Vyc29yKGNvbnN0IElEQkN1cnNvckluZm8mKTsKIAogICAgIHZvaWQgY2xvc2VD
dXJzb3IoU1FMaXRlSURCQ3Vyc29yJik7CiAgICAgdm9pZCBub3RpZnlDdXJzb3JzT2ZDaGFuZ2Vz
KGludDY0X3Qgb2JqZWN0U3RvcmVJRCk7CiAKLSAgICBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9k
ZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CisgICAgSW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5tb2RlKCk7IH0KICAgICBib29s
IGluUHJvZ3Jlc3MoKSBjb25zdDsKIAogICAgIFNRTGl0ZVRyYW5zYWN0aW9uKiBzcWxpdGVUcmFu
c2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3FsaXRlVHJhbnNhY3Rpb24uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQ3Vyc29ycygpOworICAgIHZvaWQgcmVzZXQoKTsKIAot
ICAgIElEQlJlc291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSW5kZXhlZERCOjpU
cmFuc2FjdGlvbk1vZGUgbV9tb2RlOworICAgIElEQlRyYW5zYWN0aW9uSW5mbyBtX2luZm87CiAK
ICAgICBTUUxpdGVJREJCYWNraW5nU3RvcmUmIG1fYmFja2luZ1N0b3JlOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFuc2FjdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCmluZGV4IGY2OTgwMmUuLmVmMzEzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcApAQCAtNTAyLDI4ICs1MDIsMzUgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
ZGVsZXRlT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QK
ICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmpl
Y3RTdG9yZSIpOwogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2soY2Fs
bGJhY2spOwotICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSwg
Y2FsbGJhY2tJRCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgb2JqZWN0U3RvcmVO
YW1lKSk7CisKKyAgICBhdXRvKiBpbmZvID0gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGlu
Z09iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7CisgICAgaWYgKCFpbmZvKSB7CisgICAgICAg
IHBlcmZvcm1FcnJvckNhbGxiYWNrKGNhbGxiYWNrSUQsIHsgSURCRGF0YWJhc2VFeGNlcHRpb246
OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGRlbGV0ZSBub24tZXhpc3Rh
bnQgb2JqZWN0IHN0b3JlIikgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3Nl
cnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUsIGNhbGxiYWNrSUQsIHRyYW5z
YWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlkZW50aWZpZXIoKSkpOwogfQogCi12
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUodWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCit2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJ
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghaXNN
YWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIoZGIpIFVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUiKTsKIAogICAgIEFTU0VSVChtX2JhY2tpbmdTdG9y
ZSk7Ci0gICAgbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgb2JqZWN0U3RvcmVOYW1lKTsKKyAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlT2Jq
ZWN0U3RvcmUodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwog
CiAgICAgSURCRXJyb3IgZXJyb3I7Ci0gICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5
KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJm
b3JtRGVsZXRlT2JqZWN0U3RvcmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIG9iamVjdFN0
b3JlTmFtZSkpOworICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9z
c1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0ZU9i
amVjdFN0b3JlLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIpKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0ZU9iamVj
dFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9y
LCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmRpZFBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IGNvbnN0IElEQkVycm9yJiBlcnJvciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWlu
KSBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlIik7CiAKICAg
ICBpZiAoZXJyb3IuaXNOdWxsKCkpCi0gICAgICAgIG1fZGF0YWJhc2VJbmZvLT5kZWxldGVPYmpl
Y3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOworICAgICAgICBtX2RhdGFiYXNlSW5mby0+ZGVsZXRl
T2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIAogICAgIHBlcmZvcm1FcnJvckNh
bGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
aAppbmRleCBhM2ZlYzIxLi5lN2QyZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMTMx
LDcgKzEzMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lkIGJlZ2luVHJhbnNhY3Rpb25JbkJhY2tp
bmdTdG9yZShjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIHBlcmZvcm1DcmVh
dGVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9y
ZUluZm8mKTsKLSAgICB2b2lkIHBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CisgICAgdm9pZCBwZXJm
b3JtRGVsZXRlT2JqZWN0U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICB2b2lkIHBlcmZvcm1DbGVhck9iamVjdFN0b3JlKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBwZXJmb3JtQ3JlYXRlSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
SURCSW5kZXhJbmZvJik7CiAgICAgdm9pZCBwZXJmb3JtRGVsZXRlSW5kZXgodWludDY0X3QgY2Fs
bGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGluZGV4TmFtZSk7CkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERl
bGV0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9yZShjb25zdCBJ
REJEYXRhYmFzZUluZm8mKTsKICAgICB2b2lkIGRpZFBlcmZvcm1DcmVhdGVPYmplY3RTdG9yZSh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCT2Jq
ZWN0U3RvcmVJbmZvJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUodWlu
dDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIGNvbnN0IFN0cmluZyYg
b2JqZWN0U3RvcmVOYW1lKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFBlcmZvcm1DbGVhck9iamVjdFN0b3Jl
KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lk
IGRpZFBlcmZvcm1DcmVhdGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJiwgY29uc3QgSURCSW5kZXhJbmZvJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtRGVs
ZXRlSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRh
dGFiYXNlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmNwcAppbmRleCA0NGFhNDdlLi45ZGU1ZjQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJh
c2VJbmZvLmNwcApAQCAtMTM1LDYgKzEzNSwxMSBAQCB2b2lkIElEQkRhdGFiYXNlSW5mbzo6ZGVs
ZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCiAgICAgbV9vYmpl
Y3RTdG9yZU1hcC5yZW1vdmUoaW5mby0+aWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBJREJEYXRh
YmFzZUluZm86OmRlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
cikKK3sKKyAgICBtX29iamVjdFN0b3JlTWFwLnJlbW92ZShvYmplY3RTdG9yZUlkZW50aWZpZXIp
OworfQorCiAjaWZuZGVmIE5ERUJVRwogU3RyaW5nIElEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0
cmluZygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmgKaW5kZXggYjMzMDM0NS4uYTEzMTVhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRh
dGFiYXNlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9y
PFN0cmluZz4gb2JqZWN0U3RvcmVOYW1lcygpIGNvbnN0OwogCiAgICAgdm9pZCBkZWxldGVPYmpl
Y3RTdG9yZShjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CisgICAgdm9pZCBkZWxldGVP
YmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCiAjaWZuZGVmIE5E
RUJVRwogICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJ
bmZvLmgKaW5kZXggZmZiZDAzZS4uNmYwZjMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaApA
QCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9uYW1lOyB9CiAgICAgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2V5UGF0aDsgfQogICAgIGJvb2wgYXV0b0luY3JlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fYXV0b0luY3JlbWVudDsgfQorICAgIHVpbnQ2NF90IG1heEluZGV4SUQoKSBjb25z
dCB7IHJldHVybiBtX21heEluZGV4SUQ7IH0KIAogICAgIElEQk9iamVjdFN0b3JlSW5mbyBpc29s
YXRlZENvcHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCmluZGV4IGJiZWM3NGIu
LmVkOGEzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVi
bGljOgogCiAgICAgSURCVHJhbnNhY3Rpb25JbmZvIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCi0g
ICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KKyAgICBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIEluZGV4ZWREQjo6VHJhbnNh
Y3Rpb25Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICB1aW50NjRfdCBu
ZXdWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9uZXdWZXJzaW9uOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>