<?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>164497</bug_id>
          
          <creation_ts>2016-11-07 17:29:47 -0800</creation_ts>
          <short_desc>[WebIDL] Add proper parsing for Promises</short_desc>
          <delta_ts>2016-11-09 13:19:54 -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>Bindings</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248907</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-11-07 17:29:47 -0800</bug_when>
    <thetext>We should add proper parsing for Promises in WebIDL now that we have IDLType with sub-types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248908</commentid>
    <comment_count>1</comment_count>
      <attachid>294105</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-11-07 17:30:06 -0800</bug_when>
    <thetext>Created attachment 294105
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249383</commentid>
    <comment_count>2</comment_count>
      <attachid>294254</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-11-09 11:32:38 -0800</bug_when>
    <thetext>Created attachment 294254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249454</commentid>
    <comment_count>3</comment_count>
      <attachid>294254</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 13:19:49 -0800</bug_when>
    <thetext>Comment on attachment 294254
Patch

Clearing flags on attachment: 294254

Committed r208474: &lt;http://trac.webkit.org/changeset/208474&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249455</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 13:19:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294105</attachid>
            <date>2016-11-07 17:30:06 -0800</date>
            <delta_ts>2016-11-09 11:32:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>promise-part1.diff</filename>
            <type>text/plain</type>
            <size>37012</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2gu
aWRsCShyZXZpc2lvbiAyMDgzOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RP
TVdpbmRvd0ZldGNoLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgIENv
bmRpdGlvbmFsPUZFVENIX0FQSSwKICAgICBFbmFibGVkQXRSdW50aW1lPUZldGNoQVBJLAogXSBw
YXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewotICAgIFtKU0J1aWx0aW5dIFByb21pc2UgZmV0
Y2goYW55IGlucHV0LCBvcHRpb25hbCBEaWN0aW9uYXJ5IGluaXQpOworICAgIFtKU0J1aWx0aW5d
IFByb21pc2U8UmVzcG9uc2U+IGZldGNoKGFueSBpbnB1dCwgb3B0aW9uYWwgRGljdGlvbmFyeSBp
bml0KTsKIAotICAgIFtQcml2YXRlSWRlbnRpZmllciwgSW1wbGVtZW50ZWRBcz1mZXRjaF0gUHJv
bWlzZSBmZXRjaFJlcXVlc3QoRmV0Y2hSZXF1ZXN0IHJlcXVlc3QpOworICAgIFtQcml2YXRlSWRl
bnRpZmllciwgSW1wbGVtZW50ZWRBcz1mZXRjaF0gUHJvbWlzZTxSZXNwb25zZT4gZmV0Y2hSZXF1
ZXN0KEZldGNoUmVxdWVzdCByZXF1ZXN0KTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCShyZXZpc2lvbiAyMDgzOTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkg
KzM1LDkgQEAKIF0KIGludGVyZmFjZSBGZXRjaEJvZHkgewogICAgIFtJbXBsZW1lbnRlZEFzPWlz
RGlzdHVyYmVkXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBib2R5VXNlZDsKLSAgICBbTmV3
T2JqZWN0XSBQcm9taXNlIGFycmF5QnVmZmVyKCk7Ci0gICAgW05ld09iamVjdF0gUHJvbWlzZSBi
bG9iKCk7Ci0gICAgW05ld09iamVjdF0gUHJvbWlzZSBmb3JtRGF0YSgpOwotICAgIFtOZXdPYmpl
Y3RdIFByb21pc2UganNvbigpOwotICAgIFtOZXdPYmplY3RdIFByb21pc2UgdGV4dCgpOworICAg
IFtOZXdPYmplY3RdIFByb21pc2U8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyKCk7CisgICAgW05l
d09iamVjdF0gUHJvbWlzZTxCbG9iPiBibG9iKCk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZTxC
bG9iPiBmb3JtRGF0YSgpOworICAgIFtOZXdPYmplY3RdIFByb21pc2U8YW55PiBqc29uKCk7Cisg
ICAgW05ld09iamVjdF0gUHJvbWlzZTxVU1ZTdHJpbmc+IHRleHQoKTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5pZGwJKHJldmlzaW9u
IDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTU0LDExICs1NCwxMSBAQCBlbnVtIFJlc3BvbnNlVHlwZSB7
ICJiYXNpYyIsICJjb3JzIiwgImRlCiAKICAgICAvLyBDb3B5IG9mIEZldGNoQm9keSBJREwgYXMg
d2Ugd2FudCB0byBpbXBsZW1lbnQgc29tZSBvZiB0aGVzZSBhcyBidWlsdC1pbnMuCiAgICAgW0pT
QnVpbHRpbl0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYm9keVVzZWQ7Ci0gICAgW0pTQnVp
bHRpbl0gUHJvbWlzZSBhcnJheUJ1ZmZlcigpOwotICAgIFtKU0J1aWx0aW5dIFByb21pc2UgYmxv
YigpOwotICAgIFtKU0J1aWx0aW5dIFByb21pc2UgZm9ybURhdGEoKTsKLSAgICBbSlNCdWlsdGlu
XSBQcm9taXNlIGpzb24oKTsKLSAgICBbSlNCdWlsdGluXSBQcm9taXNlIHRleHQoKTsKKyAgICBb
SlNCdWlsdGluXSBQcm9taXNlPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlcigpOworICAgIFtKU0J1
aWx0aW5dIFByb21pc2U8QmxvYj4gYmxvYigpOworICAgIFtKU0J1aWx0aW5dIFByb21pc2U8Qmxv
Yj4gZm9ybURhdGEoKTsKKyAgICBbSlNCdWlsdGluXSBQcm9taXNlPGFueT4ganNvbigpOworICAg
IFtKU0J1aWx0aW5dIFByb21pc2U8VVNWU3RyaW5nPiB0ZXh0KCk7CiAKICAgICBbSlNCdWlsdGlu
XSBGZXRjaFJlc3BvbnNlIGNsb25lKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGwJKHJldmlzaW9uIDIwODM5OCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNiBAQAogXSBpbnRlcmZhY2UgTWVkaWFEZXZpY2Vz
IHsKICAgICBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgZ2V0U3VwcG9ydGVkQ29uc3Ry
YWludHMoKTsKIAotICAgIFtDdXN0b20sIE1heVRocm93RXhjZXB0aW9uLCBQcml2YXRlSWRlbnRp
ZmllciwgUHVibGljSWRlbnRpZmllcl0gUHJvbWlzZSBnZXRVc2VyTWVkaWEoRGljdGlvbmFyeSBv
cHRpb25zKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFByb21pc2UgZW51bWVyYXRlRGV2aWNl
cygpOworICAgIFtDdXN0b20sIE1heVRocm93RXhjZXB0aW9uLCBQcml2YXRlSWRlbnRpZmllciwg
UHVibGljSWRlbnRpZmllcl0gUHJvbWlzZTxNZWRpYVN0cmVhbT4gZ2V0VXNlck1lZGlhKERpY3Rp
b25hcnkgb3B0aW9ucyk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBQcm9taXNlPHNlcXVlbmNl
PE1lZGlhRGV2aWNlSW5mbz4+IGVudW1lcmF0ZURldmljZXMoKTsKIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyMDgzOTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbjo6c2V0TG9jCiAgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxT
aWduYWxpbmdTdGF0ZSgpID09IFNpZ25hbGluZ1N0YXRlOjpTdGFibGUgJiYgbV9uZWdvdGlhdGlv
bk5lZWRlZCkKICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi5zY2hlZHVsZU5lZ290aWF0aW9uTmVl
ZGVkRXZlbnQoKTsKIAotICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAgICBwcm9taXNl
LnJlc29sdmUoKTsKIH0KIAogUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKQEAgLTU5NCw3ICs1
OTQsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0UmVtCiAgICAgICAg
IG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNp
Z25hbGluZ3N0YXRlY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogICAgIH0KIAotICAgIHBy
b21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KIAogUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpy
ZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0CkBAIC02OTAsNyArNjkwLDcgQEAgdm9pZCBNZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb246OmFkZEljZQogCiAgICAgdGFyZ2V0TWVkaWFEZXNjcmlwdGlv
bi0+YWRkSWNlQ2FuZGlkYXRlKFdURk1vdmUocmVzdWx0LmNhbmRpZGF0ZSgpKSk7CiAKLSAgICBw
cm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiB9CiAKIHZv
aWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNr
KiwgUGVlckNvbm5lY3Rpb246OlN0YXRzUHJvbWlzZSYmIHByb21pc2UpCkBAIC03MzAsNyArNzMw
LDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhYwogICAgIGlmICht
aWQuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gVHJhbnNjZWl2ZXIgaXMgbm90IGFzc29jaWF0ZWQg
d2l0aCBhIG1lZGlhIGRlc2NyaXB0aW9uIHlldC4KICAgICAgICAgc2VuZGVyLnNldFRyYWNrKFdU
Rk1vdmUod2l0aFRyYWNrKSk7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc0
Nyw3ICs3NDcsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjCiAg
ICAgbV9tZWRpYUVuZHBvaW50LT5yZXBsYWNlU2VuZFNvdXJjZSh3aXRoVHJhY2stPnNvdXJjZSgp
LCBtaWQpOwogCiAgICAgc2VuZGVyLnNldFRyYWNrKFdURk1vdmUod2l0aFRyYWNrKSk7Ci0gICAg
cHJvbWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgIHByb21pc2UucmVzb2x2ZSgpOwogfQogCiB2
b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHAJKHJldmlzaW9uIDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Niw3ICsxOTYsNyBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMoCiAgICAgICAgIGlmICgh
d2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX3Byb21pc2UpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgd2Vha1RoaXMtPm1fcHJvbWlzZS0+cmVzb2x2ZShudWxscHRyKTsKKyAgICAgICAg
d2Vha1RoaXMtPm1fcHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgIH07CiAKICAgICBtX3ByaXZhdGUt
PmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIHN1Y2Nlc3NIYW5kbGVyLCBmYWlsdXJlSGFu
ZGxlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaAkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTgyLDggKzgyLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxNZWRpYVNvdXJjZVNldHRpbmdz
PiBnZXRTZXR0aW5ncygpIGNvbnN0OwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBnZXRDYXBhYmlsaXRpZXMoKSBjb25zdDsKIAotICAgIHVzaW5nIEFwcGx5Q29u
c3RyYWludHNQcm9taXNlID0gRE9NUHJvbWlzZTxzdGQ6Om51bGxwdHJfdD47Ci0gICAgdm9pZCBh
cHBseUNvbnN0cmFpbnRzKFJlZjxNZWRpYUNvbnN0cmFpbnRzPiYmLCBBcHBseUNvbnN0cmFpbnRz
UHJvbWlzZSYmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoUmVmPE1lZGlhQ29uc3RyYWlu
dHM+JiYsIERPTVByb21pc2U8dm9pZD4mJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmKTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KQEAgLTEyOCw3ICsxMjcs
NyBAQCBwcml2YXRlOgogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRl
OwogCiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7Ci0gICAgT3B0
aW9uYWw8QXBwbHlDb25zdHJhaW50c1Byb21pc2U+IG1fcHJvbWlzZTsKKyAgICBPcHRpb25hbDxE
T01Qcm9taXNlPHZvaWQ+PiBtX3Byb21pc2U7CiAgICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFTdHJl
YW1UcmFjaz4gbV93ZWFrUHRyRmFjdG9yeTsKIAogICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5pZGwJKHJldmlzaW9uIDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDcgKzUwLDcgQEAgZW51bSBNZWRpYVN0cmVhbVRyYWNrU3RhdGUgeyAibmV3IiwgImxp
dgogICAgIFtDdXN0b21dIE1lZGlhVHJhY2tDb25zdHJhaW50cyBnZXRDb25zdHJhaW50cygpOwog
ICAgIFtDdXN0b21dIE1lZGlhU291cmNlU2V0dGluZ3MgZ2V0U2V0dGluZ3MoKTsKICAgICBbQ3Vz
dG9tXSBNZWRpYVRyYWNrQ2FwYWJpbGl0aWVzIGdldENhcGFiaWxpdGllcygpOwotICAgIFtDdXN0
b21dIFByb21pc2UgYXBwbHlDb25zdHJhaW50cyhEaWN0aW9uYXJ5PyBjb25zdHJhaW50cyk7Cisg
ICAgW0N1c3RvbV0gUHJvbWlzZTx2b2lkPiBhcHBseUNvbnN0cmFpbnRzKG9wdGlvbmFsIE1lZGlh
VHJhY2tDb25zdHJhaW50cyBjb25zdHJhaW50cyk7CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9ub3ZlcmNvbnN0cmFpbmVkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAkocmV2
aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCB1c2lu
ZyBFeGNlcHRpb25Db2RlID0gaW50OwogCiBuYW1lc3BhY2UgUGVlckNvbm5lY3Rpb24gewogdHlw
ZWRlZiBET01Qcm9taXNlPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gU2Vzc2lvbkRlc2NyaXB0aW9u
UHJvbWlzZTsKLXR5cGVkZWYgRE9NUHJvbWlzZTxzdGQ6Om51bGxwdHJfdD4gVm9pZFByb21pc2U7
Cit0eXBlZGVmIERPTVByb21pc2U8dm9pZD4gVm9pZFByb21pc2U7CiB0eXBlZGVmIERPTVByb21p
c2U8UlRDU3RhdHNSZXNwb25zZT4gU3RhdHNQcm9taXNlOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmlkbAkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTcwLDE4ICs3MCwx
OCBAQCBkaWN0aW9uYXJ5IFJUQ0Fuc3dlck9wdGlvbnMgOiBSVENPZmZlckFuCiAgICAgW0pTQnVp
bHRpbl0gdm9pZCBhZGRTdHJlYW0oTWVkaWFTdHJlYW0gc3RyZWFtKTsKICAgICBbSlNCdWlsdGlu
XSB2b2lkIHJlbW92ZVN0cmVhbShNZWRpYVN0cmVhbSBzdHJlYW0pOwogCi0gICAgW0pTQnVpbHRp
bl0gUHJvbWlzZSBjcmVhdGVPZmZlcihvcHRpb25hbCBSVENPZmZlck9wdGlvbnMgb2ZmZXJPcHRp
b25zKTsKLSAgICAvLyBMZWdhY3kgc2lnbmF0dXJlOiBQcm9taXNlIGNyZWF0ZU9mZmVyKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaworICAgIFtKU0J1aWx0aW5d
IFByb21pc2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdD4gY3JlYXRlT2ZmZXIob3B0aW9uYWwg
UlRDT2ZmZXJPcHRpb25zIG9mZmVyT3B0aW9ucyk7CisgICAgLy8gTGVnYWN5IHNpZ25hdHVyZTog
UHJvbWlzZTx2b2lkPiBjcmVhdGVPZmZlcihSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayBz
dWNjZXNzQ2FsbGJhY2sKICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLAogICAgIC8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgRGljdGlvbmFy
eSBvZmZlck9wdGlvbnMpOwogCi0gICAgW0pTQnVpbHRpbl0gUHJvbWlzZSBjcmVhdGVBbnN3ZXIo
b3B0aW9uYWwgUlRDQW5zd2VyT3B0aW9ucyBhbnN3ZXJPcHRpb25zKTsKLSAgICAvLyBMZWdhY3kg
c2lnbmF0dXJlOiBQcm9taXNlIGNyZWF0ZUFuc3dlcihSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjayBzdWNjZXNzQ2FsbGJhY2sKKyAgICBbSlNCdWlsdGluXSBQcm9taXNlPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkluaXQ+IGNyZWF0ZUFuc3dlcihvcHRpb25hbCBSVENBbnN3ZXJPcHRpb25zIGFu
c3dlck9wdGlvbnMpOworICAgIC8vIExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2U8dm9pZD4gY3Jl
YXRlQW5zd2VyKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjawog
ICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUQ1BlZXJDb25u
ZWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLAogICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIERpY3Rpb25hcnkgYW5zd2VyT3B0aW9u
cyk7CiAKLSAgICBbSlNCdWlsdGluXSBQcm9taXNlIHNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKLSAgICAvLyBMZWdhY3kgc2lnbmF0dXJlOiBQ
cm9taXNlIHNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uCisgICAgW0pTQnVpbHRpbl0gUHJvbWlzZTx2b2lkPiBzZXRMb2NhbERlc2NyaXB0aW9uKFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbik7CisgICAgLy8gTGVnYWN5IHNpZ25hdHVy
ZTogUHJvbWlzZTx2b2lkPiBzZXRMb2NhbERlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbgogICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAogICAgIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENQZWVyQ29ubmVjdGlvbkVy
cm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CiAKQEAgLTg5LDggKzg5LDggQEAgZGljdGlvbmFy
eSBSVENBbnN3ZXJPcHRpb25zIDogUlRDT2ZmZXJBbgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBS
VENTZXNzaW9uRGVzY3JpcHRpb24gY3VycmVudExvY2FsRGVzY3JpcHRpb247CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlv
bjsKIAotICAgIFtKU0J1aWx0aW5dIFByb21pc2Ugc2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKLSAgICAvLyBMZWdhY3kgc2lnbmF0dXJlOiBQ
cm9taXNlIHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlw
dGlvbgorICAgIFtKU0J1aWx0aW5dIFByb21pc2U8dm9pZD4gc2V0UmVtb3RlRGVzY3JpcHRpb24o
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKKyAgICAvLyBMZWdhY3kgc2lnbmF0
dXJlOiBQcm9taXNlPHZvaWQ+IHNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbiBkZXNjcmlwdGlvbgogICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywKICAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUQ1BlZXJDb25uZWN0
aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKIApAQCAtMTAwLDggKzEwMCw4IEBAIGRp
Y3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJUQ09mZmVyQW4KIAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgc2lnbmFsaW5nU3RhdGU7CiAKLSAgICBbSlNCdWlsdGluXSBQcm9t
aXNlIGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKLSAgICAvLyBM
ZWdhY3kgc2lnbmF0dXJlOiBQcm9taXNlIGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUg
Y2FuZGlkYXRlCisgICAgW0pTQnVpbHRpbl0gUHJvbWlzZTx2b2lkPiBhZGRJY2VDYW5kaWRhdGUo
UlRDSWNlQ2FuZGlkYXRlIGNhbmRpZGF0ZSk7CisgICAgLy8gTGVnYWN5IHNpZ25hdHVyZTogUHJv
bWlzZTx2b2lkPiBhZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlIGNhbmRpZGF0ZQogICAg
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvaWRDYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2ssCiAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2sp
OwogCkBAIC0xMTEsMTkgKzExMSwxOSBAQCBkaWN0aW9uYXJ5IFJUQ0Fuc3dlck9wdGlvbnMgOiBS
VENPZmZlckFuCiAgICAgUlRDQ29uZmlndXJhdGlvbiBnZXRDb25maWd1cmF0aW9uKCk7CiAgICAg
W01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldENvbmZpZ3VyYXRpb24oRGljdGlvbmFyeSBjb25m
aWd1cmF0aW9uKTsKIAotICAgIFtKU0J1aWx0aW5dIFByb21pc2UgZ2V0U3RhdHMob3B0aW9uYWwg
TWVkaWFTdHJlYW1UcmFjaz8gc2VsZWN0b3IgPSBudWxsKTsKLSAgICAvLyBMZWdhY3kgc2lnbmF0
dXJlOiBQcm9taXNlIGdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2s/IHNlbGVjdG9yCisgICAgW0pT
QnVpbHRpbl0gUHJvbWlzZTxSVENTdGF0c1JlcG9ydD4gZ2V0U3RhdHMob3B0aW9uYWwgTWVkaWFT
dHJlYW1UcmFjaz8gc2VsZWN0b3IgPSBudWxsKTsKKyAgICAvLyBMZWdhY3kgc2lnbmF0dXJlOiBQ
cm9taXNlPHZvaWQ+IGdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2s/IHNlbGVjdG9yCiAgICAgLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENTdGF0c0NhbGxiYWNrIHN1Y2Nl
c3NDYWxsYmFjaywKICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJU
Q1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKIAogICAgIC8vIFBy
aXZhdGUgQVBJIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBvdmVybG9hZGVkIG9wZXJhdGlvbnMgYWJv
dmUuIFF1ZXVlZCBmdW5jdGlvbnMgYXJlIGNhbGxlZCBieQogICAgIC8vIHJ1blF1ZXVlZE9wZXJh
dGlvbigpIChkZWZpbmVkIGluIFJUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxzLmpzKS4KLSAgICBb
UHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2UgcXVldWVkQ3JlYXRlT2ZmZXIob3B0aW9uYWwgUlRD
T2ZmZXJPcHRpb25zIG9mZmVyT3B0aW9ucyk7Ci0gICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9t
aXNlIHF1ZXVlZENyZWF0ZUFuc3dlcihvcHRpb25hbCBSVENBbnN3ZXJPcHRpb25zIGFuc3dlck9w
dGlvbnMpOwotICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJvbWlzZSBxdWV1ZWRTZXRMb2NhbERl
c2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbik7Ci0gICAgW1ByaXZh
dGVJZGVudGlmaWVyXSBQcm9taXNlIHF1ZXVlZFNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbik7Ci0gICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9t
aXNlIHF1ZXVlZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKLSAg
ICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2UgcHJpdmF0ZUdldFN0YXRzKE1lZGlhU3RyZWFt
VHJhY2s/IHNlbGVjdG9yKTsKKyAgICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2U8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uSW5pdD4gcXVldWVkQ3JlYXRlT2ZmZXIob3B0aW9uYWwgUlRDT2ZmZXJP
cHRpb25zIG9mZmVyT3B0aW9ucyk7CisgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkluaXQ+IHF1ZXVlZENyZWF0ZUFuc3dlcihvcHRpb25hbCBSVENB
bnN3ZXJPcHRpb25zIGFuc3dlck9wdGlvbnMpOworICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJv
bWlzZTx2b2lkPiBxdWV1ZWRTZXRMb2NhbERlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbik7CisgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZvaWQ+IHF1
ZXVlZFNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlv
bik7CisgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZvaWQ+IHF1ZXVlZEFkZEljZUNh
bmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKKyAgICBbUHJpdmF0ZUlkZW50aWZp
ZXJdIFByb21pc2U8UlRDU3RhdHNSZXBvcnQ+IHByaXZhdGVHZXRTdGF0cyhNZWRpYVN0cmVhbVRy
YWNrPyBzZWxlY3Rvcik7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJUQ0RhdGFDaGFubmVs
IGNyZWF0ZURhdGFDaGFubmVsKFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGxh
YmVsLCBvcHRpb25hbCBEaWN0aW9uYXJ5IG9wdGlvbnMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaWRsCShyZXZpc2lv
biAyMDgzOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNl
bmRlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDUgKzMzLDUgQEAKIF0gaW50ZXJmYWNlIFJU
Q1J0cFNlbmRlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtVHJhY2s/IHRy
YWNrOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBQcm9taXNlIHJlcGxhY2VUcmFjayhNZWRp
YVN0cmVhbVRyYWNrIHdpdGhUcmFjayk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBQcm9taXNl
PHZvaWQ+IHJlcGxhY2VUcmFjayhNZWRpYVN0cmVhbVRyYWNrIHdpdGhUcmFjayk7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcG9ydC5pZGwJKHJldmlzaW9uIDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICsz
Miw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICAgIERPTVN0
cmluZyBzdGF0KERPTVN0cmluZyBuYW1lKTsKICAgICBzZXF1ZW5jZTxET01TdHJpbmc+IG5hbWVz
KCk7CisKICAgICAvLyBERVBSRUNBVEVEIC0gZmFrZSBmb3Igb2xkIFJUQ1N0YXRzRWxlbWVudCBv
YmplY3QuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzUmVwb3J0IGxvY2FsOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0c1JlcG9ydCByZW1vdGU7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwJKHJldmlz
aW9uIDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAKICAgICBQcml2YXRlSWRl
bnRpZmllciwKICAgICBQdWJsaWNJZGVudGlmaWVyCiBdIGludGVyZmFjZSBSZWFkYWJsZVN0cmVh
bSB7Ci0gICAgW05vdEVudW1lcmFibGVdIFByb21pc2UgY2FuY2VsKG9wdGlvbmFsIGFueSByZWFz
b24pOworICAgIFtOb3RFbnVtZXJhYmxlXSBQcm9taXNlPGFueT4gY2FuY2VsKG9wdGlvbmFsIGFu
eSByZWFzb24pOwogICAgIFtOb3RFbnVtZXJhYmxlXSBPYmplY3QgZ2V0UmVhZGVyKG9wdGlvbmFs
IGFueSBvcHRpb25zKTsKLSAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlzZSBwaXBlVG8oYW55IHN0
cmVhbXMsIG9wdGlvbmFsIGFueSBvcHRpb25zKTsKKyAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlz
ZTxhbnk+IHBpcGVUbyhhbnkgc3RyZWFtcywgb3B0aW9uYWwgYW55IG9wdGlvbnMpOwogICAgIFtO
b3RFbnVtZXJhYmxlXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsK
ICAgICBbTm90RW51bWVyYWJsZV0gT2JqZWN0IHRlZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyLmlkbAkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDkgKzM0LDkgQEAKICAgICBKU0J1aWx0aW4sCiAgICAgTm9JbnRlcmZhY2VPYmplY3QK
IF0gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciB7Ci0gICAgW05vdEVudW1l
cmFibGVdIFByb21pc2UgcmVhZCgpOwotICAgIFtOb3RFbnVtZXJhYmxlXSBQcm9taXNlIGNhbmNl
bChvcHRpb25hbCBhbnkgcmVhc29uKTsKKyAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlzZTxhbnk+
IHJlYWQoKTsKKyAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlzZTxhbnk+IGNhbmNlbChvcHRpb25h
bCBhbnkgcmVhc29uKTsKICAgICBbTm90RW51bWVyYWJsZV0gdm9pZCByZWxlYXNlTG9jaygpOwog
Ci0gICAgW05vdEVudW1lcmFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlIGNsb3NlZDsK
KyAgICBbTm90RW51bWVyYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8Ym9vbGVhbj4g
Y2xvc2VkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCShyZXZpc2lvbiAyMDgzOTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaAkod29ya2luZyBj
b3B5KQpAQCAtNDIsMTAgKzQyLDggQEAgY2xhc3MgUmVhZGFibGVTdHJlYW1Tb3VyY2UgOiBwdWJs
aWMgUmVmQwogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWRhYmxlU3RyZWFtU291cmNlKCkgeyB9
CiAKLSAgICB0eXBlZGVmIERPTVByb21pc2U8c3RkOjpudWxscHRyX3Q+IFByb21pc2U7Ci0KLSAg
ICB2b2lkIHN0YXJ0KFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXImJiwgUHJvbWlzZSYm
KTsKLSAgICB2b2lkIHB1bGwoUHJvbWlzZSYmKTsKKyAgICB2b2lkIHN0YXJ0KFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXImJiwgRE9NUHJvbWlzZTx2b2lkPiYmKTsKKyAgICB2b2lkIHB1
bGwoRE9NUHJvbWlzZTx2b2lkPiYmKTsKICAgICB2b2lkIGNhbmNlbChKU0M6OkpTVmFsdWUpOwog
CiAgICAgYm9vbCBpc1B1bGxpbmcoKSBjb25zdCB7IHJldHVybiAhIW1fcHJvbWlzZTsgfQpAQCAt
NjcsMTEgKzY1LDExIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZG9DYW5jZWwoKSA9
IDA7CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8UHJvbWlzZT4gbV9wcm9taXNlOworICAgIE9w
dGlvbmFsPERPTVByb21pc2U8dm9pZD4+IG1fcHJvbWlzZTsKICAgICBPcHRpb25hbDxSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyPiBtX2NvbnRyb2xsZXI7CiB9OwogCi1pbmxpbmUgdm9p
ZCBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6c3RhcnQoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlciYmIGNvbnRyb2xsZXIsIFByb21pc2UmJiBwcm9taXNlKQoraW5saW5lIHZvaWQgUmVhZGFi
bGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXImJiBj
b250cm9sbGVyLCBET01Qcm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBBU1NFUlQoIW1f
cHJvbWlzZSk7CiAgICAgbV9wcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKQEAgLTgxLDcgKzc5
LDcgQEAgaW5saW5lIHZvaWQgUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KAogICAgIGRvU3Rh
cnQoKTsKIH0KIAotaW5saW5lIHZvaWQgUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnB1bGwoUHJvbWlz
ZSYmIHByb21pc2UpCitpbmxpbmUgdm9pZCBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6cHVsbChET01Q
cm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBBU1NFUlQoIW1fcHJvbWlzZSk7CiAgICAg
QVNTRVJUKG1fY29udHJvbGxlcik7CkBAIC05NSwxNCArOTMsMTQgQEAgaW5saW5lIHZvaWQgUmVh
ZGFibGVTdHJlYW1Tb3VyY2U6OnB1bGwoUAogaW5saW5lIHZvaWQgUmVhZGFibGVTdHJlYW1Tb3Vy
Y2U6OnN0YXJ0RmluaXNoZWQoKQogewogICAgIEFTU0VSVChtX3Byb21pc2UpOwotICAgIHN0ZDo6
ZXhjaGFuZ2UobV9wcm9taXNlLCBOdWxsb3B0KS52YWx1ZSgpLnJlc29sdmUobnVsbHB0cik7Cisg
ICAgc3RkOjpleGNoYW5nZShtX3Byb21pc2UsIE51bGxvcHQpLnZhbHVlKCkucmVzb2x2ZSgpOwog
ICAgIHNldEluYWN0aXZlKCk7CiB9CiAKIGlubGluZSB2b2lkIFJlYWRhYmxlU3RyZWFtU291cmNl
OjpwdWxsRmluaXNoZWQoKQogewogICAgIEFTU0VSVChtX3Byb21pc2UpOwotICAgIHN0ZDo6ZXhj
aGFuZ2UobV9wcm9taXNlLCBOdWxsb3B0KS52YWx1ZSgpLnJlc29sdmUobnVsbHB0cik7CisgICAg
c3RkOjpleGNoYW5nZShtX3Byb21pc2UsIE51bGxvcHQpLnZhbHVlKCkucmVzb2x2ZSgpOwogICAg
IHNldEluYWN0aXZlKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbAkocmV2aXNpb24gMjA4Mzk4
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsOCBAQAogICAgIENvbmRpdGlvbmFsPVJF
QURBQkxFX1NUUkVBTV9BUEksCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0gaW50ZXJmYWNl
IFJlYWRhYmxlU3RyZWFtU291cmNlIHsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHN0YXJ0KFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29udHJvbGxlcik7Ci0gICAgW0N1c3RvbV0gUHJv
bWlzZSBwdWxsKFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29udHJvbGxlcik7Cisg
ICAgW0N1c3RvbV0gUHJvbWlzZTx2b2lkPiBzdGFydChSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250
cm9sbGVyIGNvbnRyb2xsZXIpOworICAgIFtDdXN0b21dIFByb21pc2U8dm9pZD4gcHVsbChSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIGNvbnRyb2xsZXIpOwogICAgIHZvaWQgY2FuY2Vs
KGFueSByZWFzb24pOwogCiAgICAgLy8gUGxhY2UgaG9sZGVyIHRvIGtlZXAgdGhlIGNvbnRyb2xs
ZXIgbGlua2VkIHRvIHRoZSBzb3VyY2UuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwJKHJldmlzaW9uIDIwODM5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDExICszMiwxMSBAQAogICAgIENvbnN0cnVjdG9yLAogICAgIEpTQnVpbHRp
bgogXSBpbnRlcmZhY2UgV3JpdGFibGVTdHJlYW0gewotICAgIFByb21pc2UgYWJvcnQob3B0aW9u
YWwgYW55IHJlYXNvbik7Ci0gICAgUHJvbWlzZSBjbG9zZSgpOwotICAgIFByb21pc2Ugd3JpdGUo
YW55IGNodW5rKTsKKyAgICBQcm9taXNlPGFueT4gYWJvcnQob3B0aW9uYWwgYW55IHJlYXNvbik7
CisgICAgUHJvbWlzZTxhbnk+IGNsb3NlKCk7CisgICAgUHJvbWlzZTxhbnk+IHdyaXRlKGFueSBj
aHVuayk7CiAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZSBjbG9zZWQ7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFByb21pc2UgcmVhZHk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFBy
b21pc2U8Ym9vbGVhbj4gY2xvc2VkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPGJv
b2xlYW4+IHJlYWR5OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdGU7CiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmNwcAkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNyArMjgwLDcgQEAg
Ym9vbCBBdWRpb0NvbnRleHQ6OmlzSW5pdGlhbGl6ZWQoKSBjb25zdAogICAgIHJldHVybiBtX2lz
SW5pdGlhbGl6ZWQ7CiB9CiAKLXZvaWQgQXVkaW9Db250ZXh0OjphZGRSZWFjdGlvbihTdGF0ZSBz
dGF0ZSwgUHJvbWlzZSYmIHByb21pc2UpCit2b2lkIEF1ZGlvQ29udGV4dDo6YWRkUmVhY3Rpb24o
U3RhdGUgc3RhdGUsIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQogewogICAgIHNpemVfdCBz
dGF0ZUluZGV4ID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSk7CiAgICAgaWYgKHN0YXRlSW5k
ZXggPj0gbV9zdGF0ZVJlYWN0aW9ucy5zaXplKCkpCkBAIC0zMDEsMTEgKzMwMSwxMSBAQCB2b2lk
IEF1ZGlvQ29udGV4dDo6c2V0U3RhdGUoU3RhdGUgc3RhdGUpCiAgICAgaWYgKHN0YXRlSW5kZXgg
Pj0gbV9zdGF0ZVJlYWN0aW9ucy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3Rv
cjxQcm9taXNlPiByZWFjdGlvbnM7CisgICAgVmVjdG9yPERPTVByb21pc2U8dm9pZD4+IHJlYWN0
aW9uczsKICAgICBtX3N0YXRlUmVhY3Rpb25zW3N0YXRlSW5kZXhdLnN3YXAocmVhY3Rpb25zKTsK
IAogICAgIGZvciAoYXV0byYgcHJvbWlzZSA6IHJlYWN0aW9ucykKLSAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKG51bGxwdHIpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KIAogdm9pZCBB
dWRpb0NvbnRleHQ6OnN0b3AoKQpAQCAtMTAxNyw3ICsxMDE3LDcgQEAgdm9pZCBBdWRpb0NvbnRl
eHQ6OmRlY3JlbWVudEFjdGl2ZVNvdXJjZQogICAgIC0tbV9hY3RpdmVTb3VyY2VDb3VudDsKIH0K
IAotdm9pZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmQoUHJvbWlzZSYmIHByb21pc2UpCit2b2lkIEF1
ZGlvQ29udGV4dDo6c3VzcGVuZChET01Qcm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBp
ZiAoaXNPZmZsaW5lQ29udGV4dCgpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURf
U1RBVEVfRVJSKTsKQEAgLTEwMjUsNyArMTAyNSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdXNw
ZW5kKFByb21pc2UmJiBwcm8KICAgICB9CiAKICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6U3Vz
cGVuZGVkKSB7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwNDYsNyArMTA0
Niw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdXNwZW5kKFByb21pc2UmJiBwcm8KICAgICB9KTsK
IH0KIAotdm9pZCBBdWRpb0NvbnRleHQ6OnJlc3VtZShQcm9taXNlJiYgcHJvbWlzZSkKK3ZvaWQg
QXVkaW9Db250ZXh0OjpyZXN1bWUoRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAg
aWYgKGlzT2ZmbGluZUNvbnRleHQoKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJTlZBTElE
X1NUQVRFX0VSUik7CkBAIC0xMDU0LDcgKzEwNTQsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6cmVz
dW1lKFByb21pc2UmJiBwcm9tCiAgICAgfQogCiAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlJ1
bm5pbmcpIHsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgICAgICBwcm9t
aXNlLnJlc29sdmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA3NSw3ICsxMDc1
LDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnJlc3VtZShQcm9taXNlJiYgcHJvbQogICAgIH0pOwog
fQogCi12b2lkIEF1ZGlvQ29udGV4dDo6Y2xvc2UoUHJvbWlzZSYmIHByb21pc2UpCit2b2lkIEF1
ZGlvQ29udGV4dDo6Y2xvc2UoRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYg
KGlzT2ZmbGluZUNvbnRleHQoKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NU
QVRFX0VSUik7CkBAIC0xMDgzLDcgKzEwODMsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xvc2Uo
UHJvbWlzZSYmIHByb21pCiAgICAgfQogCiAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkNsb3Nl
ZCB8fCAhbV9kZXN0aW5hdGlvbk5vZGUpIHsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG51bGxw
dHIpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5oCShyZXZpc2lvbiAyMDgzOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksMTEgKzEwOSw5IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBBY3RpdmVET01PYmplY3Q6OnN1c3BlbmQ7CiAgICAgdXNpbmcgQWN0aXZl
RE9NT2JqZWN0OjpyZXN1bWU7CiAKLSAgICB0eXBlZGVmIERPTVByb21pc2U8c3RkOjpudWxscHRy
X3Q+IFByb21pc2U7Ci0KLSAgICB2b2lkIHN1c3BlbmQoUHJvbWlzZSYmKTsKLSAgICB2b2lkIHJl
c3VtZShQcm9taXNlJiYpOwotICAgIHZvaWQgY2xvc2UoUHJvbWlzZSYmKTsKKyAgICB2b2lkIHN1
c3BlbmQoRE9NUHJvbWlzZTx2b2lkPiYmKTsKKyAgICB2b2lkIHJlc3VtZShET01Qcm9taXNlPHZv
aWQ+JiYpOworICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZTx2b2lkPiYmKTsKIAogICAgIGVudW0g
Y2xhc3MgU3RhdGUgeyBTdXNwZW5kZWQsIFJ1bm5pbmcsIEludGVycnVwdGVkLCBDbG9zZWQgfTsK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0OwpAQCAtMzI2LDcgKzMyNCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWluZ0p1bmN0aW9ucygpOwogICAgIHZvaWQgaGFu
ZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CiAKLSAgICB2b2lkIGFkZFJlYWN0aW9uKFN0YXRl
LCBQcm9taXNlJiYpOworICAgIHZvaWQgYWRkUmVhY3Rpb24oU3RhdGUsIERPTVByb21pc2U8dm9p
ZD4mJik7CiAgICAgdm9pZCB1cGRhdGVBdXRvbWF0aWNQdWxsTm9kZXMoKTsKIAogICAgIC8vIE9u
bHkgYWNjZXNzZWQgaW4gdGhlIGF1ZGlvIHRocmVhZC4KQEAgLTM2Myw3ICszNjEsNyBAQCBwcml2
YXRlOgogICAgIFZlY3RvcjxBdWRpb05vZGUqPiBtX3JlbmRlcmluZ0F1dG9tYXRpY1B1bGxOb2Rl
czsKICAgICAvLyBPbmx5IGFjY2Vzc2VkIGluIHRoZSBhdWRpbyB0aHJlYWQuCiAgICAgVmVjdG9y
PEF1ZGlvTm9kZSo+IG1fZGVmZXJyZWRGaW5pc2hEZXJlZkxpc3Q7Ci0gICAgVmVjdG9yPFZlY3Rv
cjxQcm9taXNlPj4gbV9zdGF0ZVJlYWN0aW9uczsKKyAgICBWZWN0b3I8VmVjdG9yPERPTVByb21p
c2U8dm9pZD4+PiBtX3N0YXRlUmVhY3Rpb25zOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtTWVkaWFTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R2Vu
ZXJpY0V2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwJKHJldmlzaW9uIDIwODM5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsOSArNTEsOSBAQCBlbnVtIEF1ZGlvQ29udGV4dFN0YXRlIHsKICAgICAv
LyBBbGwgcGFubmluZyBpcyByZWxhdGl2ZSB0byB0aGlzIGxpc3RlbmVyLgogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBdWRpb0xpc3RlbmVyIGxpc3RlbmVyOwogCi0gICAgUHJvbWlzZSBzdXNwZW5k
KCk7Ci0gICAgUHJvbWlzZSByZXN1bWUoKTsKLSAgICBQcm9taXNlIGNsb3NlKCk7CisgICAgUHJv
bWlzZTx2b2lkPiBzdXNwZW5kKCk7CisgICAgUHJvbWlzZTx2b2lkPiByZXN1bWUoKTsKKyAgICBQ
cm9taXNlPHZvaWQ+IGNsb3NlKCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250
ZXh0U3RhdGUgc3RhdGU7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlLmgJKHJldmlz
aW9uIDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsOCArMTk3LDcgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSBj
YWxsUHJvbWlzZUZ1bmN0aW9uKAogfQogCiAvLyBBdCB0aGUgbW9tZW50LCBWYWx1ZSBjYW5ub3Qg
YmUgYSBSZWY8VD4gb3IgUmVmUHRyPFQ+LCBpdCBzaG91bGQgYmUgYSBET00gY2xhc3MuCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVmFsdWU+Ci1jbGFzcyBET01Qcm9taXNlIHsKK3RlbXBsYXRlPHR5cGVu
YW1lIFZhbHVlPiBjbGFzcyBET01Qcm9taXNlIHsKIHB1YmxpYzoKICAgICBET01Qcm9taXNlKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgZ2VuZXJpY1Byb21pc2UpIDogbV9wcm9taXNlRGVmZXJyZWQo
V1RGTW92ZShnZW5lcmljUHJvbWlzZSkpIHsgfQogCkBAIC0yMDcsNyArMjA2LDExIEBAIHB1Ymxp
YzoKICAgICBET01Qcm9taXNlKGNvbnN0IERPTVByb21pc2UmKSA9IGRlZmF1bHQ7CiAgICAgRE9N
UHJvbWlzZSYgb3BlcmF0b3I9KERPTVByb21pc2UgY29uc3QmKSA9IGRlZmF1bHQ7CiAKLSAgICB2
b2lkIHJlc29sdmUodHlwZW5hbWUgUHJvbWlzZVJlc3VsdEluc3BlY3RvcjxWYWx1ZT46OlR5cGUg
dmFsdWUpIHsgbV9wcm9taXNlRGVmZXJyZWQtPnJlc29sdmUodmFsdWUpOyB9CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVCA9IFZhbHVlPgorICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6
OmlzX3ZvaWQ8VD46OnZhbHVlLCB2b2lkPjo6dHlwZSByZXNvbHZlKHR5cGVuYW1lIFByb21pc2VS
ZXN1bHRJbnNwZWN0b3I8VmFsdWU+OjpUeXBlIHZhbHVlKSB7IG1fcHJvbWlzZURlZmVycmVkLT5y
ZXNvbHZlKHZhbHVlKTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCA9IFZhbHVlPgorICAg
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfdm9pZDxUPjo6dmFsdWUsIHZvaWQ+Ojp0
eXBlIHJlc29sdmUoKSB7IG1fcHJvbWlzZURlZmVycmVkLT5yZXNvbHZlKG51bGxwdHIpOyB9CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFcnJvclR5cGU+IHZvaWQgcmVqZWN0KEVycm9yVHlw
ZSYmLi4uIGVycm9yKSB7IG1fcHJvbWlzZURlZmVycmVkLT5yZWplY3Qoc3RkOjpmb3J3YXJkPEVy
cm9yVHlwZT4oZXJyb3IpLi4uKTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTQwNSw2
ICs0MDUsNyBAQCBteSAkbmV4dFByaW1pdGl2ZVR5cGVfMSA9ICdeKGludHxsb25nfHNoCiBteSAk
bmV4dFByaW1pdGl2ZVR5cGVfMiA9ICdeKGRvdWJsZXxmbG9hdHx1bnJlc3RyaWN0ZWQpJCc7CiBt
eSAkbmV4dEFyZ3VtZW50TGlzdF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3Ry
aW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58bG9uZ3xvYmplY3R8
b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwog
bXkgJG5leHROb25BbnlUeXBlXzEgPSAnXihib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8
b2N0ZXR8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRTdHJpbmdUeXBl
XzEgPSAnXihCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmcpJCc7CiBteSAkbmV4dEludGVy
ZmFjZU1lbWJlcl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8
YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxn
ZXR0ZXJ8aW5oZXJpdHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2Vx
dWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJp
Y3RlZHx1bnNpZ25lZHx2b2lkKSQnOwogbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8xID0g
J14oc3RhdGljfHN0cmluZ2lmaWVyKSQnOwogbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8y
ID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGJvb2xlYW58
Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxsZWdhY3ljYWxsZXJ8bG9u
Z3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25l
ZHx2b2lkKSQnOwpAQCAtMjAyNiwyMiArMjAyNyw4IEBAIHN1YiBwYXJzZU5vbkFueVR5cGUKICAg
ICAgICAgJHR5cGUtPm5hbWUoJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpKTsKICAgICAgICAg
cmV0dXJuICR0eXBlOwogICAgIH0KLSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkJ5dGVTdHJp
bmciKSB7Ci0gICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiQnl0ZVN0cmluZyIsIF9fTElORV9fKTsKLQotICAgICAgICAkdHlwZS0+bmFtZSgiQnl0ZVN0
cmluZyIpOwotICAgICAgICByZXR1cm4gJHR5cGU7Ci0gICAgfQotICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiRE9NU3RyaW5nIikgewotICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIkRPTVN0cmluZyIsIF9fTElORV9fKTsKLQotICAgICAgICAkdHlw
ZS0+bmFtZSgiRE9NU3RyaW5nIik7Ci0gICAgICAgIHJldHVybiAkdHlwZTsKLSAgICB9Ci0gICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJVU1ZTdHJpbmciKSB7Ci0gICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiVVNWU3RyaW5nIiwgX19MSU5FX18pOwot
Ci0gICAgICAgICR0eXBlLT5uYW1lKCJVU1ZTdHJpbmciKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0U3RyaW5nVHlwZV8xLykgeworICAgICAgICAkdHlwZS0+bmFtZSgkc2VsZi0+
cGFyc2VTdHJpbmdUeXBlKCkpOwogICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQogICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0IikgewpAQCAtMjEwMiw2ICsyMDg5LDIwIEBAIHN1
YiBwYXJzZU5vbkFueVR5cGUKIAogICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiUHJvbWlzZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJQcm9taXNlIiwgX19MSU5FX18pOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiLCBfX0xJTkVf
Xyk7CisKKyAgICAgICAgbXkgJHN1YnR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7Cisg
ICAgICAgIG15ICRzdWJ0eXBlTmFtZSA9ICRzdWJ0eXBlLT5uYW1lOworCisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKKwor
ICAgICAgICAkdHlwZS0+bmFtZSgiUHJvbWlzZSIpOworICAgICAgICBwdXNoKEB7JHR5cGUtPnN1
YnR5cGVzfSwgJHN1YnR5cGUpOworCisgICAgICAgIHJldHVybiAkdHlwZTsKKyAgICB9CiAgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CiAgICAgICAgIG15ICRpZGVu
dGlmaWVyID0gJHNlbGYtPmdldFRva2VuKCk7CiAKQEAgLTIxMzQsNiArMjEzNSwyNSBAQCBzdWIg
cGFyc2VDb25zdFR5cGUKICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKK3N1YiBwYXJzZVN0cmluZ1R5cGUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiQnl0ZVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJCeXRlU3RyaW5nIiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gIkJ5dGVTdHJpbmciOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJET01TdHJpbmciLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAi
RE9NU3RyaW5nIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJVU1ZTdHJpbmci
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
VVNWU3RyaW5nIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIlVTVlN0cmluZyI7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKwogc3ViIHBhcnNlUHJpbWl0aXZlVHlwZQogewogICAgIG15ICRzZWxmID0gc2hp
ZnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbAkocmV2aXNpb24g
MjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDUgKzI5LDYgQEAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZh
Y2UgU3VidGxlQ3J5cHRvIHsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIGdlbmVyYXRlS2V5KEFsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBib29sZWFuIGV4dHJhY3RhYmxlLCBzZXF1ZW5jZTxL
ZXlVc2FnZT4ga2V5VXNhZ2VzKTsKKyAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgcmV0dXJuIGEg
UHJvbWlzZTwoQ3J5cHRvS2V5IG9yIENyeXB0b0tleVBhaXIpPj8KKyAgICBbQ3VzdG9tXSBQcm9t
aXNlPGFueT4gZ2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIGJvb2xl
YW4gZXh0cmFjdGFibGUsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOwogfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCShyZXZpc2lv
biAyMDgzOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTQgKzI4LDE0IEBACiAgICAgR2VuZXJhdGVJc1JlYWNo
YWJsZT1JbXBsRG9jdW1lbnQsCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBX
ZWJLaXRTdWJ0bGVDcnlwdG8gewotICAgIFtDdXN0b21dIFByb21pc2UgZW5jcnlwdChBbGdvcml0
aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9u
RGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBkZWNyeXB0KEFsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBk
YXRhKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHNpZ24oQWxnb3JpdGhtSWRlbnRpZmllciBhbGdv
cml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAg
IFtDdXN0b21dIFByb21pc2UgdmVyaWZ5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBL
ZXkga2V5LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNpZ25hdHVyZSwgc2VxdWVuY2U8Q3J5cHRvT3Bl
cmF0aW9uRGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBkaWdlc3QoQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEp
OwotICAgIFtDdXN0b21dIFByb21pc2UgZ2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNl
PEtleVVzYWdlPiBrZXlVc2FnZXMpOwotICAgIFtDdXN0b21dIFByb21pc2UgaW1wb3J0S2V5KEtl
eUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEga2V5RGF0YSwgQWxnb3JpdGhtSWRl
bnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25h
bCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIGV4
cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKLSAgICBbQ3VzdG9tXSBQcm9taXNl
IHdyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5IGtleSwgS2V5IHdyYXBwaW5nS2V5LCBBbGdv
cml0aG1JZGVudGlmaWVyIHdyYXBBbGdvcml0aG0pOwotICAgIFtDdXN0b21dIFByb21pc2UgdW53
cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtleSwg
S2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgdW53cmFwQWxnb3JpdGhtLCBB
bGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xl
YW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOwor
ICAgIFtDdXN0b21dIFByb21pc2U8QXJyYXlCdWZmZXI+IGVuY3J5cHQoQWxnb3JpdGhtSWRlbnRp
ZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRh
dGEpOworICAgIFtDdXN0b21dIFByb21pc2U8QXJyYXlCdWZmZXI+IGRlY3J5cHQoQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRh
dGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2U8QXJyYXlCdWZmZXI+IHNpZ24oQWxnb3Jp
dGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlv
bkRhdGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2U8Ym9vbGVhbj4gdmVyaWZ5KEFsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNp
Z25hdHVyZSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3Rv
bV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gZGlnZXN0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3Jp
dGhtLCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKKyAgICBbQ3VzdG9tXSBQ
cm9taXNlPChDcnlwdG9LZXkgb3IgQ3J5cHRvS2V5UGFpcik+IGdlbmVyYXRlS2V5KEFsZ29yaXRo
bUlkZW50aWZpZXIgYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxlLCBvcHRp
b25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNl
PENyeXB0b0tleT4gaW1wb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRh
dGEga2V5RGF0YSwgQWxnb3JpdGhtSWRlbnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29s
ZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsK
KyAgICBbQ3VzdG9tXSBQcm9taXNlPEFycmF5QnVmZmVyPiBleHBvcnRLZXkoS2V5Rm9ybWF0IGZv
cm1hdCwgS2V5IGtleSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gd3JhcEtl
eShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5LCBLZXkgd3JhcHBpbmdLZXksIEFsZ29yaXRobUlk
ZW50aWZpZXIgd3JhcEFsZ29yaXRobSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZTxDcnlwdG9LZXk+
IHVud3JhcEtleShLZXlGb3JtYXQgZm9ybWF0LCBDcnlwdG9PcGVyYXRpb25EYXRhIHdyYXBwZWRL
ZXksIEtleSB1bndyYXBwaW5nS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyIHVud3JhcEFsZ29yaXRo
bSwgQWxnb3JpdGhtSWRlbnRpZmllcj8gdW53cmFwcGVkS2V5QWxnb3JpdGhtLCBvcHRpb25hbCBi
b29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2Vz
KTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5pZGwJKHJldmlzaW9uIDIwODM5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYg
KzU0LDYgQEAgZGljdGlvbmFyeSBGb250RmFjZURlc2NyaXB0b3JzIHsKIAogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBGb250RmFjZUxvYWRTdGF0dXMgc3RhdHVzOwogCi0gICAgW0N1c3RvbV0gUHJv
bWlzZSBsb2FkKCk7Ci0gICAgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVyXSByZWFkb25s
eSBhdHRyaWJ1dGUgT2JqZWN0IGxvYWRlZDsKKyAgICBbQ3VzdG9tXSBQcm9taXNlPEZvbnRGYWNl
PiBsb2FkKCk7CisgICAgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVyXSByZWFkb25seSBh
dHRyaWJ1dGUgUHJvbWlzZTxGb250RmFjZT4gbG9hZGVkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250RmFjZVNldC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlU2V0LmlkbAkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlU2V0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDcsOSArNDcsOSBAQCBlbnVtIEZv
bnRGYWNlU2V0TG9hZFN0YXR1cyB7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxvYWRp
bmdkb25lOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25sb2FkaW5nZXJyb3I7CiAKLSAg
ICBQcm9taXNlIGxvYWQoRE9NU3RyaW5nIGZvbnQsIG9wdGlvbmFsIERPTVN0cmluZyB0ZXh0ID0g
IiAiKTsKKyAgICBQcm9taXNlPHNlcXVlbmNlPEZvbnRGYWNlPj4gbG9hZChET01TdHJpbmcgZm9u
dCwgb3B0aW9uYWwgRE9NU3RyaW5nIHRleHQgPSAiICIpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gYm9vbGVhbiBjaGVjayhET01TdHJpbmcgZm9udCwgb3B0aW9uYWwgRE9NU3RyaW5nIHRleHQg
PSAiICIpOwogCi0gICAgW0N1c3RvbUdldHRlciwgQ2FjaGVkQXR0cmlidXRlXSByZWFkb25seSBh
dHRyaWJ1dGUgUHJvbWlzZSByZWFkeTsKKyAgICBbQ3VzdG9tR2V0dGVyLCBDYWNoZWRBdHRyaWJ1
dGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPEZvbnRGYWNlU2V0PiByZWFkeTsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRm9udEZhY2VTZXRMb2FkU3RhdHVzIHN0YXR1czsKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmlkbAkocmV2aXNp
b24gMjA4Mzk4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDUgKzMwLDUgQEAKIF0gaW50ZXJmYWNlIEN1c3RvbUVs
ZW1lbnRSZWdpc3RyeSB7CiAgICAgW0NFUmVhY3Rpb25zLCBDdXN0b21dIHZvaWQgZGVmaW5lKERP
TVN0cmluZyBuYW1lLCBGdW5jdGlvbiBjb25zdHJ1Y3Rvcik7CiAgICAgYW55IGdldChET01TdHJp
bmcgbmFtZSk7Ci0gICAgW0N1c3RvbSwgTWF5VGhyb3dFeGNlcHRpb25dIFByb21pc2Ugd2hlbkRl
ZmluZWQoRE9NU3RyaW5nIG5hbWUpOworICAgIFtDdXN0b20sIE1heVRocm93RXhjZXB0aW9uXSBQ
cm9taXNlPHZvaWQ+IHdoZW5EZWZpbmVkKERPTVN0cmluZyBuYW1lKTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwODM5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTk2NywxMCArOTY3LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVqZWN0UGVuZGlu
Z1BsYXkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNl
cygpCiB7Ci0gICAgVmVjdG9yPFBsYXlQcm9taXNlPiBwZW5kaW5nUGxheVByb21pc2VzID0gV1RG
TW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpOworICAgIFZlY3RvcjxET01Qcm9taXNlPHZvaWQ+
PiBwZW5kaW5nUGxheVByb21pc2VzID0gV1RGTW92ZShtX3BlbmRpbmdQbGF5UHJvbWlzZXMpOwog
CiAgICAgZm9yIChhdXRvJiBwcm9taXNlIDogcGVuZGluZ1BsYXlQcm9taXNlcykKLSAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0K
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZU5vdGlmeUFib3V0UGxheWluZygpCkBA
IC0zMDI1LDcgKzMwMjUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFByZWxvYWQoY29u
c3QgCiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihwcmVsb2FkQXR0ciwg
cHJlbG9hZCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheShQbGF5UHJvbWlzZSYm
IHByb21pc2UpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoRE9NUHJvbWlzZTx2b2lkPiYm
IHByb21pc2UpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6cGxheSglcCki
LCB0aGlzKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJl
dmlzaW9uIDIwODM5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsOCArMjE2LDcgQEAgcHVibGljOgogICAgIGJvb2wgbG9v
cCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TG9vcChib29sIGIpOwogCi0gICAgdHlwZWRlZiBET01Q
cm9taXNlPHN0ZDo6bnVsbHB0cl90PiBQbGF5UHJvbWlzZTsKLSAgICB2b2lkIHBsYXkoUGxheVBy
b21pc2UmJik7CisgICAgdm9pZCBwbGF5KERPTVByb21pc2U8dm9pZD4mJik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBsYXkoKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHBhdXNlKCkgb3ZlcnJpZGU7CkBAIC04MjAsNyArODE5LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8VGltZVJhbmdlcz4gbV9wbGF5ZWRUaW1lUmFuZ2VzOwogICAgIEdlbmVyaWNFdmVudFF1ZXVl
IG1fYXN5bmNFdmVudFF1ZXVlOwogCi0gICAgVmVjdG9yPFBsYXlQcm9taXNlPiBtX3BlbmRpbmdQ
bGF5UHJvbWlzZXM7CisgICAgVmVjdG9yPERPTVByb21pc2U8dm9pZD4+IG1fcGVuZGluZ1BsYXlQ
cm9taXNlczsKIAogICAgIGRvdWJsZSBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZSB7IDEgfTsKICAg
ICBkb3VibGUgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZSB7IDEgfTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNzEs
NyArNzEsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOwogICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvcGxheTsKICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIGJvb2xlYW4gbG9vcDsKLSAgICBQcm9taXNlIHBsYXkoKTsKKyAgICBQcm9taXNlPHZvaWQ+
IHBsYXkoKTsKICAgICB2b2lkIHBhdXNlKCk7CiAgICAgdm9pZCBmYXN0U2Vlayh1bnJlc3RyaWN0
ZWQgZG91YmxlIHRpbWUpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294254</attachid>
            <date>2016-11-09 11:32:38 -0800</date>
            <delta_ts>2016-11-09 13:19:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164497-20161109112827.patch</filename>
            <type>text/plain</type>
            <size>46754</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODQ1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc1IEBACisyMDE2LTExLTA5ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHByb3BlciBwYXJz
aW5nIGZvciBQcm9taXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKHBhcnNl
Tm9uQW55VHlwZSk6CisgICAgICAgIChwYXJzZVN0cmluZ1R5cGUpOgorICAgICAgICBSZXF1aXJl
IFByb21pc2UgdHlwZXMgdG8gZGVjbGFyZSB0aGUgdHlwZSB0aGV5IHJlc29sdmUgdG8uCisgICAg
ICAgIAorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZS5oOgorICAgICAgICBBbGxv
dyBET01Qcm9taXNlIHRvIGJlIGJlIHBhcmFtZXRlcml6ZWQgb24gdm9pZC4gQWRkIGFuIFNGSU5B
RSBndWFyZGVkCisgICAgICAgIG92ZXJsb2FkIG9mIHJlc29sdmUgdGhhdCB0YWtlcyBubyBhcmd1
bWVudHMgd2hlbiBpbiBhIERPTVByb21pc2U8dm9pZD4uCisKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9ET01X
aW5kb3dGZXRjaC5pZGw6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9Xb3JrZXJHbG9iYWxTY29wZUZldGNoLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNlbmRlci5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cG9ydC5pZGw6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0Tm9kZS5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uaWRsOgorICAgICAg
ICAqIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsOgorICAgICAgICAqIGNzcy9Gb250RmFj
ZS5pZGw6CisgICAgICAgICogY3NzL0ZvbnRGYWNlU2V0LmlkbDoKKyAgICAgICAgKiBkb20vQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsOgorICAgICAgICBVcGRhdGUgSURMcyB0byBzcGVjaWZ5IHRoZSByZXNvbHZlIHR5cGUgb2Yg
cHJvbWlzZSB0eXBlcy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFzayk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uU3VjY2Vl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2Fu
ZGlkYXRlU3VjY2VlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpwdWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpzdGFydEZpbmlzaGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpwdWxsRmluaXNoZWQpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvQ29udGV4dDo6YWRkUmVhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250
ZXh0OjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnN1c3BlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpyZXN1bWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpjbG9zZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVqZWN0UGVuZGluZ1BsYXlQcm9taXNl
cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZXNvbHZlUGVuZGluZ1Bs
YXlQcm9taXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgVXBkYXRlIGltcGxl
bWVudGF0aW9ucyB0byB1c2UgRE9NUHJvbWlzZTx2b2lkPiByYXRoZXIgdGhhbiBET01Qcm9taXNl
PG51bGxwdHJfdD4KKyAgICAgICAgYW5kIHVzZSB0aGUgbmV3IHJlc29sdmUoKSBvdmVybG9hZC4K
KwogMjAxNi0xMS0wOSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
U3VwcG9ydCBUb3VjaEJhciBpbiBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5pZGwJKHJldmlzaW9uIDIwODQ0OCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsOCBAQAogCiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0
c1ZlcnNpb24odW5zaWduZWQgbG9uZyB2ZXJzaW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIHN0YXRpYyBib29sZWFuIGNhbk1ha2VQ
YXltZW50cygpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJv
d0V4Y2VwdGlvbl0gc3RhdGljIFByb21pc2UgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQo
RE9NU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllcik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBzdGF0aWMgUHJvbWlzZSBvcGVuUGF5bWVu
dFNldHVwKERPTVN0cmluZyBtZXJjaGFudElkZW50aWZpZXIpOworICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gc3RhdGljIFByb21pc2U8Ym9v
bGVhbj4gY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoRE9NU3RyaW5nIG1lcmNoYW50SWRl
bnRpZmllcik7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93
RXhjZXB0aW9uXSBzdGF0aWMgUHJvbWlzZTxib29sZWFuPiBvcGVuUGF5bWVudFNldHVwKERPTVN0
cmluZyBtZXJjaGFudElkZW50aWZpZXIpOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lk
IGJlZ2luKCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIGFib3J0KCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmlkbAkocmV2
aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9ET01XaW5kb3dG
ZXRjaC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICBDb25kaXRpb25h
bD1GRVRDSF9BUEksCiAgICAgRW5hYmxlZEF0UnVudGltZT1GZXRjaEFQSSwKIF0gcGFydGlhbCBp
bnRlcmZhY2UgRE9NV2luZG93IHsKLSAgICBbSlNCdWlsdGluXSBQcm9taXNlIGZldGNoKGFueSBp
bnB1dCwgb3B0aW9uYWwgRGljdGlvbmFyeSBpbml0KTsKKyAgICBbSlNCdWlsdGluXSBQcm9taXNl
PFJlc3BvbnNlPiBmZXRjaChhbnkgaW5wdXQsIG9wdGlvbmFsIERpY3Rpb25hcnkgaW5pdCk7CiAK
LSAgICBbUHJpdmF0ZUlkZW50aWZpZXIsIEltcGxlbWVudGVkQXM9ZmV0Y2hdIFByb21pc2UgZmV0
Y2hSZXF1ZXN0KEZldGNoUmVxdWVzdCByZXF1ZXN0KTsKKyAgICBbUHJpdmF0ZUlkZW50aWZpZXIs
IEltcGxlbWVudGVkQXM9ZmV0Y2hdIFByb21pc2U8UmVzcG9uc2U+IGZldGNoUmVxdWVzdChGZXRj
aFJlcXVlc3QgcmVxdWVzdCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5LmlkbAkocmV2aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5IEBA
CiBdCiBpbnRlcmZhY2UgRmV0Y2hCb2R5IHsKICAgICBbSW1wbGVtZW50ZWRBcz1pc0Rpc3R1cmJl
ZF0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYm9keVVzZWQ7Ci0gICAgW05ld09iamVjdF0g
UHJvbWlzZSBhcnJheUJ1ZmZlcigpOwotICAgIFtOZXdPYmplY3RdIFByb21pc2UgYmxvYigpOwot
ICAgIFtOZXdPYmplY3RdIFByb21pc2UgZm9ybURhdGEoKTsKLSAgICBbTmV3T2JqZWN0XSBQcm9t
aXNlIGpzb24oKTsKLSAgICBbTmV3T2JqZWN0XSBQcm9taXNlIHRleHQoKTsKKyAgICBbTmV3T2Jq
ZWN0XSBQcm9taXNlPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlcigpOworICAgIFtOZXdPYmplY3Rd
IFByb21pc2U8QmxvYj4gYmxvYigpOworICAgIFtOZXdPYmplY3RdIFByb21pc2U8QmxvYj4gZm9y
bURhdGEoKTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlPGFueT4ganNvbigpOworICAgIFtOZXdP
YmplY3RdIFByb21pc2U8VVNWU3RyaW5nPiB0ZXh0KCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCShyZXZpc2lvbiAyMDg0NDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCwxMSArNTQsMTEgQEAgZW51bSBSZXNwb25zZVR5cGUgeyAiYmFzaWMi
LCAiY29ycyIsICJkZQogCiAgICAgLy8gQ29weSBvZiBGZXRjaEJvZHkgSURMIGFzIHdlIHdhbnQg
dG8gaW1wbGVtZW50IHNvbWUgb2YgdGhlc2UgYXMgYnVpbHQtaW5zLgogICAgIFtKU0J1aWx0aW5d
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJvZHlVc2VkOwotICAgIFtKU0J1aWx0aW5dIFBy
b21pc2UgYXJyYXlCdWZmZXIoKTsKLSAgICBbSlNCdWlsdGluXSBQcm9taXNlIGJsb2IoKTsKLSAg
ICBbSlNCdWlsdGluXSBQcm9taXNlIGZvcm1EYXRhKCk7Ci0gICAgW0pTQnVpbHRpbl0gUHJvbWlz
ZSBqc29uKCk7Ci0gICAgW0pTQnVpbHRpbl0gUHJvbWlzZSB0ZXh0KCk7CisgICAgW0pTQnVpbHRp
bl0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIoKTsKKyAgICBbSlNCdWlsdGluXSBQ
cm9taXNlPEJsb2I+IGJsb2IoKTsKKyAgICBbSlNCdWlsdGluXSBQcm9taXNlPEJsb2I+IGZvcm1E
YXRhKCk7CisgICAgW0pTQnVpbHRpbl0gUHJvbWlzZTxhbnk+IGpzb24oKTsKKyAgICBbSlNCdWls
dGluXSBQcm9taXNlPFVTVlN0cmluZz4gdGV4dCgpOwogCiAgICAgW0pTQnVpbHRpbl0gRmV0Y2hS
ZXNwb25zZSBjbG9uZSgpOwogCkBAIC02Niw5ICs2Niw5IEBAIGVudW0gUmVzcG9uc2VUeXBlIHsg
ImJhc2ljIiwgImNvcnMiLCAiZGUKIAogICAgIFtDb25kaXRpb25hbD1SRUFEQUJMRV9TVFJFQU1f
QVBJLCBQcml2YXRlSWRlbnRpZmllcl0gdm9pZCBzdGFydENvbnN1bWluZ1N0cmVhbSh1bnNpZ25l
ZCBzaG9ydCB0eXBlKTsKICAgICBbQ29uZGl0aW9uYWw9UkVBREFCTEVfU1RSRUFNX0FQSSwgUHJp
dmF0ZUlkZW50aWZpZXJdIHZvaWQgY29uc3VtZUNodW5rKFVpbnQ4QXJyYXkgY2h1bmspOwotICAg
IFtDb25kaXRpb25hbD1SRUFEQUJMRV9TVFJFQU1fQVBJLCBQcml2YXRlSWRlbnRpZmllcl0gUHJv
bWlzZSBmaW5pc2hDb25zdW1pbmdTdHJlYW0oKTsKKyAgICBbQ29uZGl0aW9uYWw9UkVBREFCTEVf
U1RSRUFNX0FQSSwgUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2U8YW55PiBmaW5pc2hDb25zdW1p
bmdTdHJlYW0oKTsKIAotICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJvbWlzZSBjb25zdW1lKHVu
c2lnbmVkIHNob3J0IHR5cGUpOworICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJvbWlzZTxhbnk+
IGNvbnN1bWUodW5zaWduZWQgc2hvcnQgdHlwZSk7CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyXSBi
b29sZWFuIGlzTG9hZGluZygpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgUHJpdmF0ZUlkZW50
aWZpZXJdIHZvaWQgc2V0U3RhdHVzKHVuc2lnbmVkIHNob3J0IHN0YXR1cywgRE9NU3RyaW5nIHN0
YXR1c1RleHQpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgUHJpdmF0ZUlkZW50aWZpZXJd
IHZvaWQgaW5pdGlhbGl6ZVdpdGgoYW55IGJvZHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9Xb3JrZXJHbG9iYWxTY29wZUZldGNoLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guaWRsCShyZXZp
c2lvbiAyMDg0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL1dvcmtlckdsb2Jh
bFNjb3BlRmV0Y2guaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgQ29u
ZGl0aW9uYWw9RkVUQ0hfQVBJLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9RmV0Y2hBUEksCiBdIHBh
cnRpYWwgaW50ZXJmYWNlIFdvcmtlckdsb2JhbFNjb3BlIHsKLSAgICBbSlNCdWlsdGluXSBQcm9t
aXNlIGZldGNoKGFueSBpbnB1dCwgb3B0aW9uYWwgRGljdGlvbmFyeSBpbml0KTsKKyAgICBbSlNC
dWlsdGluXSBQcm9taXNlPFJlc3BvbnNlPiBmZXRjaChhbnkgaW5wdXQsIG9wdGlvbmFsIERpY3Rp
b25hcnkgaW5pdCk7CiAKLSAgICBbUHJpdmF0ZUlkZW50aWZpZXIsIEltcGxlbWVudGVkQXM9ZmV0
Y2hdIFByb21pc2UgZmV0Y2hSZXF1ZXN0KEZldGNoUmVxdWVzdCByZXF1ZXN0KTsKKyAgICBbUHJp
dmF0ZUlkZW50aWZpZXIsIEltcGxlbWVudGVkQXM9ZmV0Y2hdIFByb21pc2U8UmVzcG9uc2U+IGZl
dGNoUmVxdWVzdChGZXRjaFJlcXVlc3QgcmVxdWVzdCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbAkocmV2aXNp
b24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw2IEBACiBdIGludGVyZmFjZSBN
ZWRpYURldmljZXMgewogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBnZXRTdXBw
b3J0ZWRDb25zdHJhaW50cygpOwogCi0gICAgW0N1c3RvbSwgTWF5VGhyb3dFeGNlcHRpb24sIFBy
aXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNlIGdldFVzZXJNZWRpYShE
aWN0aW9uYXJ5IG9wdGlvbnMpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUHJvbWlzZSBlbnVt
ZXJhdGVEZXZpY2VzKCk7CisgICAgW0N1c3RvbSwgTWF5VGhyb3dFeGNlcHRpb24sIFByaXZhdGVJ
ZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNlPE1lZGlhU3RyZWFtPiBnZXRVc2Vy
TWVkaWEoRGljdGlvbmFyeSBvcHRpb25zKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFByb21p
c2U8c2VxdWVuY2U8TWVkaWFEZXZpY2VJbmZvPj4gZW51bWVyYXRlRGV2aWNlcygpOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDIwODQ0OCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWMKICAgICBpZiAobWlkLmlzTnVsbCgpKSB7
CiAgICAgICAgIC8vIFRyYW5zY2VpdmVyIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBtZWRpYSBk
ZXNjcmlwdGlvbiB5ZXQuCiAgICAgICAgIHNlbmRlci5zZXRUcmFjayhXVEZNb3ZlKHdpdGhUcmFj
aykpOwotICAgICAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgICAgIHByb21pc2Uu
cmVzb2x2ZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MzMsNyArNzMzLDcgQEAg
dm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhYwogICAgIG1fbWVkaWFFbmRw
b2ludC0+cmVwbGFjZVNlbmRTb3VyY2Uod2l0aFRyYWNrLT5zb3VyY2UoKSwgbWlkKTsKIAogICAg
IHNlbmRlci5zZXRUcmFjayhXVEZNb3ZlKHdpdGhUcmFjaykpOwotICAgIHByb21pc2UucmVzb2x2
ZShudWxscHRyKTsKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KIAogdm9pZCBNZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb246OmRvU3RvcCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9u
IDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y2Fw
YWJpbGl0aWVzKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50
cyhSZWY8TWVkaWFDb25zdHJhaW50cz4mJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c1By
b21pc2UmJiBwcm9taXNlKQordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjphcHBseUNvbnN0cmFpbnRz
KFJlZjxNZWRpYUNvbnN0cmFpbnRzPiYmIGNvbnN0cmFpbnRzLCBET01Qcm9taXNlPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBpZiAoIWNvbnN0cmFpbnRzLT5pc1ZhbGlkKCkpIHsKICAgICAgICAg
cHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIE1lZGlh
U3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMoCiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwg
IXdlYWtUaGlzLT5tX3Byb21pc2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgd2Vh
a1RoaXMtPm1fcHJvbWlzZS0+cmVzb2x2ZShudWxscHRyKTsKKyAgICAgICAgd2Vha1RoaXMtPm1f
cHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgIH07CiAKICAgICBtX3ByaXZhdGUtPmFwcGx5Q29uc3Ry
YWludHMoY29uc3RyYWludHMsIHN1Y2Nlc3NIYW5kbGVyLCBmYWlsdXJlSGFuZGxlcik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaAkocmV2aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDggKzgy
LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxNZWRpYVNvdXJjZVNldHRpbmdzPiBnZXRTZXR0aW5n
cygpIGNvbnN0OwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBn
ZXRDYXBhYmlsaXRpZXMoKSBjb25zdDsKIAotICAgIHVzaW5nIEFwcGx5Q29uc3RyYWludHNQcm9t
aXNlID0gRE9NUHJvbWlzZTxzdGQ6Om51bGxwdHJfdD47Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzKFJlZjxNZWRpYUNvbnN0cmFpbnRzPiYmLCBBcHBseUNvbnN0cmFpbnRzUHJvbWlzZSYmKTsK
KyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoUmVmPE1lZGlhQ29uc3RyYWludHM+JiYsIERPTVBy
b21pc2U8dm9pZD4mJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmKTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KQEAgLTEyOCw3ICsxMjcsNyBAQCBwcml2YXRl
OgogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogCiAgICAgUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7Ci0gICAgT3B0aW9uYWw8QXBwbHlD
b25zdHJhaW50c1Byb21pc2U+IG1fcHJvbWlzZTsKKyAgICBPcHRpb25hbDxET01Qcm9taXNlPHZv
aWQ+PiBtX3Byb21pc2U7CiAgICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFTdHJlYW1UcmFjaz4gbV93
ZWFrUHRyRmFjdG9yeTsKIAogICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5pZGwJKHJldmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUw
LDcgQEAgZW51bSBNZWRpYVN0cmVhbVRyYWNrU3RhdGUgeyAibmV3IiwgImxpdgogICAgIFtDdXN0
b21dIE1lZGlhVHJhY2tDb25zdHJhaW50cyBnZXRDb25zdHJhaW50cygpOwogICAgIFtDdXN0b21d
IE1lZGlhU291cmNlU2V0dGluZ3MgZ2V0U2V0dGluZ3MoKTsKICAgICBbQ3VzdG9tXSBNZWRpYVRy
YWNrQ2FwYWJpbGl0aWVzIGdldENhcGFiaWxpdGllcygpOwotICAgIFtDdXN0b21dIFByb21pc2Ug
YXBwbHlDb25zdHJhaW50cyhEaWN0aW9uYXJ5PyBjb25zdHJhaW50cyk7CisgICAgW0N1c3RvbV0g
UHJvbWlzZTx2b2lkPiBhcHBseUNvbnN0cmFpbnRzKG9wdGlvbmFsIE1lZGlhVHJhY2tDb25zdHJh
aW50cyBjb25zdHJhaW50cyk7CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ub3ZlcmNv
bnN0cmFpbmVkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDIw
ODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRMb2NhbERlc2MKIAogICAgIEFTU0VSVChtX3NldERlc2Ny
aXB0aW9uUHJvbWlzZSk7CiAKLSAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZS0+cmVzb2x2ZShu
dWxscHRyKTsKKyAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgIG1f
c2V0RGVzY3JpcHRpb25Qcm9taXNlID0gTnVsbG9wdDsKIH0KIApAQCAtMjA2LDcgKzIwNiw3IEBA
IHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXMKIAogICAgIEFTU0VSVCht
X3NldERlc2NyaXB0aW9uUHJvbWlzZSk7CiAKLSAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZS0+
cmVzb2x2ZShudWxscHRyKTsKKyAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZS0+cmVzb2x2ZSgp
OwogICAgIG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlID0gTnVsbG9wdDsKIH0KIApAQCAtMjQ1LDcg
KzI0NSw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRJY2VDYW5kaWQKICAgICAv
LyBGSVhNRTogVXBkYXRlIHJlbW90ZSBkZXNjcmlwdGlvbiBhbmQgc2V0IElDRSBjb25uZWN0aW9u
IHN0YXRlIHRvIGNoZWNraW5nIGlmIG5vdCBhbHJlYWR5IGRvbmUgc28uCiAgICAgQVNTRVJUKG1f
YWRkSWNlQ2FuZGlkYXRlUHJvbWlzZSk7CiAKLSAgICBtX2FkZEljZUNhbmRpZGF0ZVByb21pc2Ut
PnJlc29sdmUobnVsbHB0cik7CisgICAgbV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlLT5yZXNvbHZl
KCk7CiAgICAgbV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlID0gTnVsbG9wdDsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oCShyZXZpc2lvbiAyMDg0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBSVENPZmZlck9wdGlvbnM7CiAKIG5hbWVzcGFjZSBQ
ZWVyQ29ubmVjdGlvbiB7CiB0eXBlZGVmIERPTVByb21pc2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
PiBTZXNzaW9uRGVzY3JpcHRpb25Qcm9taXNlOwotdHlwZWRlZiBET01Qcm9taXNlPHN0ZDo6bnVs
bHB0cl90PiBWb2lkUHJvbWlzZTsKK3R5cGVkZWYgRE9NUHJvbWlzZTx2b2lkPiBWb2lkUHJvbWlz
ZTsKIHR5cGVkZWYgRE9NUHJvbWlzZTxSVENTdGF0c1Jlc3BvbnNlPiBTdGF0c1Byb21pc2U7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCShyZXZpc2lvbiAyMDg0NDgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNzAsMTggKzcwLDE4IEBAIGRpY3Rpb25hcnkgUlRDQW5zd2VyT3B0aW9ucyA6IFJU
Q09mZmVyQW4KICAgICBbSlNCdWlsdGluXSB2b2lkIGFkZFN0cmVhbShNZWRpYVN0cmVhbSBzdHJl
YW0pOwogICAgIFtKU0J1aWx0aW5dIHZvaWQgcmVtb3ZlU3RyZWFtKE1lZGlhU3RyZWFtIHN0cmVh
bSk7CiAKLSAgICBbSlNCdWlsdGluXSBQcm9taXNlIGNyZWF0ZU9mZmVyKG9wdGlvbmFsIFJUQ09m
ZmVyT3B0aW9ucyBvZmZlck9wdGlvbnMpOwotICAgIC8vIExlZ2FjeSBzaWduYXR1cmU6IFByb21p
c2UgY3JlYXRlT2ZmZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2sgc3VjY2Vzc0NhbGxi
YWNrCisgICAgW0pTQnVpbHRpbl0gUHJvbWlzZTxSVENTZXNzaW9uRGVzY3JpcHRpb25Jbml0PiBj
cmVhdGVPZmZlcihvcHRpb25hbCBSVENPZmZlck9wdGlvbnMgb2ZmZXJPcHRpb25zKTsKKyAgICAv
LyBMZWdhY3kgc2lnbmF0dXJlOiBQcm9taXNlPHZvaWQ+IGNyZWF0ZU9mZmVyKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjawogICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGVy
cm9yQ2FsbGJhY2ssCiAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRpb25hbCBEaWN0aW9uYXJ5IG9mZmVyT3B0aW9ucyk7CiAKLSAgICBbSlNCdWlsdGluXSBQ
cm9taXNlIGNyZWF0ZUFuc3dlcihvcHRpb25hbCBSVENBbnN3ZXJPcHRpb25zIGFuc3dlck9wdGlv
bnMpOwotICAgIC8vIExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2UgY3JlYXRlQW5zd2VyKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaworICAgIFtKU0J1aWx0aW5d
IFByb21pc2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdD4gY3JlYXRlQW5zd2VyKG9wdGlvbmFs
IFJUQ0Fuc3dlck9wdGlvbnMgYW5zd2VyT3B0aW9ucyk7CisgICAgLy8gTGVnYWN5IHNpZ25hdHVy
ZTogUHJvbWlzZTx2b2lkPiBjcmVhdGVBbnN3ZXIoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrCiAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssCiAg
ICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgRGlj
dGlvbmFyeSBhbnN3ZXJPcHRpb25zKTsKIAotICAgIFtKU0J1aWx0aW5dIFByb21pc2Ugc2V0TG9j
YWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pOwotICAgIC8v
IExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2Ugc2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9u
RGVzY3JpcHRpb24gZGVzY3JpcHRpb24KKyAgICBbSlNCdWlsdGluXSBQcm9taXNlPHZvaWQ+IHNl
dExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKKyAg
ICAvLyBMZWdhY3kgc2lnbmF0dXJlOiBQcm9taXNlPHZvaWQ+IHNldExvY2FsRGVzY3JpcHRpb24o
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uCiAgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2ssCiAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKIApAQCAtODks
OCArODksOCBAQCBkaWN0aW9uYXJ5IFJUQ0Fuc3dlck9wdGlvbnMgOiBSVENPZmZlckFuCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBjdXJyZW50TG9jYWxEZXNj
cmlwdGlvbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIHBl
bmRpbmdMb2NhbERlc2NyaXB0aW9uOwogCi0gICAgW0pTQnVpbHRpbl0gUHJvbWlzZSBzZXRSZW1v
dGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pOwotICAgIC8v
IExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2Ugc2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uCisgICAgW0pTQnVpbHRpbl0gUHJvbWlzZTx2b2lkPiBz
ZXRSZW1vdGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pOwor
ICAgIC8vIExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2U8dm9pZD4gc2V0UmVtb3RlRGVzY3JpcHRp
b24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uCiAgICAgLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0Nh
bGxiYWNrLAogICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogCkBA
IC0xMDAsOCArMTAwLDggQEAgZGljdGlvbmFyeSBSVENBbnN3ZXJPcHRpb25zIDogUlRDT2ZmZXJB
bgogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzaWduYWxpbmdTdGF0ZTsKIAot
ICAgIFtKU0J1aWx0aW5dIFByb21pc2UgYWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSBj
YW5kaWRhdGUpOwotICAgIC8vIExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2UgYWRkSWNlQ2FuZGlk
YXRlKFJUQ0ljZUNhbmRpZGF0ZSBjYW5kaWRhdGUKKyAgICBbSlNCdWlsdGluXSBQcm9taXNlPHZv
aWQ+IGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKKyAgICAvLyBM
ZWdhY3kgc2lnbmF0dXJlOiBQcm9taXNlPHZvaWQ+IGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUgY2FuZGlkYXRlCiAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywKICAgICAvLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2Fs
bGJhY2sgZXJyb3JDYWxsYmFjayk7CiAKQEAgLTExMSwxOSArMTExLDE5IEBAIGRpY3Rpb25hcnkg
UlRDQW5zd2VyT3B0aW9ucyA6IFJUQ09mZmVyQW4KICAgICBSVENDb25maWd1cmF0aW9uIGdldENv
bmZpZ3VyYXRpb24oKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0Q29uZmlndXJh
dGlvbihEaWN0aW9uYXJ5IGNvbmZpZ3VyYXRpb24pOwogCi0gICAgW0pTQnVpbHRpbl0gUHJvbWlz
ZSBnZXRTdGF0cyhvcHRpb25hbCBNZWRpYVN0cmVhbVRyYWNrPyBzZWxlY3RvciA9IG51bGwpOwot
ICAgIC8vIExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2UgZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFj
az8gc2VsZWN0b3IKKyAgICBbSlNCdWlsdGluXSBQcm9taXNlPFJUQ1N0YXRzUmVwb3J0PiBnZXRT
dGF0cyhvcHRpb25hbCBNZWRpYVN0cmVhbVRyYWNrPyBzZWxlY3RvciA9IG51bGwpOworICAgIC8v
IExlZ2FjeSBzaWduYXR1cmU6IFByb21pc2U8dm9pZD4gZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFj
az8gc2VsZWN0b3IKICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJU
Q1N0YXRzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAogICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2Fs
bGJhY2spOwogCiAgICAgLy8gUHJpdmF0ZSBBUEkgdXNlZCB0byBpbXBsZW1lbnQgdGhlIG92ZXJs
b2FkZWQgb3BlcmF0aW9ucyBhYm92ZS4gUXVldWVkIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGJ5CiAg
ICAgLy8gcnVuUXVldWVkT3BlcmF0aW9uKCkgKGRlZmluZWQgaW4gUlRDUGVlckNvbm5lY3Rpb25J
bnRlcm5hbHMuanMpLgotICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJvbWlzZSBxdWV1ZWRDcmVh
dGVPZmZlcihvcHRpb25hbCBSVENPZmZlck9wdGlvbnMgb2ZmZXJPcHRpb25zKTsKLSAgICBbUHJp
dmF0ZUlkZW50aWZpZXJdIFByb21pc2UgcXVldWVkQ3JlYXRlQW5zd2VyKG9wdGlvbmFsIFJUQ0Fu
c3dlck9wdGlvbnMgYW5zd2VyT3B0aW9ucyk7Ci0gICAgW1ByaXZhdGVJZGVudGlmaWVyXSBQcm9t
aXNlIHF1ZXVlZFNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2Ny
aXB0aW9uKTsKLSAgICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2UgcXVldWVkU2V0UmVtb3Rl
RGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKLSAgICBbUHJp
dmF0ZUlkZW50aWZpZXJdIFByb21pc2UgcXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRp
ZGF0ZSBjYW5kaWRhdGUpOwotICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJvbWlzZSBwcml2YXRl
R2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjaz8gc2VsZWN0b3IpOworICAgIFtQcml2YXRlSWRlbnRp
Zmllcl0gUHJvbWlzZTxSVENTZXNzaW9uRGVzY3JpcHRpb25Jbml0PiBxdWV1ZWRDcmVhdGVPZmZl
cihvcHRpb25hbCBSVENPZmZlck9wdGlvbnMgb2ZmZXJPcHRpb25zKTsKKyAgICBbUHJpdmF0ZUlk
ZW50aWZpZXJdIFByb21pc2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdD4gcXVldWVkQ3JlYXRl
QW5zd2VyKG9wdGlvbmFsIFJUQ0Fuc3dlck9wdGlvbnMgYW5zd2VyT3B0aW9ucyk7CisgICAgW1By
aXZhdGVJZGVudGlmaWVyXSBQcm9taXNlPHZvaWQ+IHF1ZXVlZFNldExvY2FsRGVzY3JpcHRpb24o
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKKyAgICBbUHJpdmF0ZUlkZW50aWZp
ZXJdIFByb21pc2U8dm9pZD4gcXVldWVkU2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uKTsKKyAgICBbUHJpdmF0ZUlkZW50aWZpZXJdIFByb21pc2U8
dm9pZD4gcXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSBjYW5kaWRhdGUpOwor
ICAgIFtQcml2YXRlSWRlbnRpZmllcl0gUHJvbWlzZTxSVENTdGF0c1JlcG9ydD4gcHJpdmF0ZUdl
dFN0YXRzKE1lZGlhU3RyZWFtVHJhY2s/IHNlbGVjdG9yKTsKIAogICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gUlRDRGF0YUNoYW5uZWwgY3JlYXRlRGF0YUNoYW5uZWwoW1RyZWF0TnVsbEFzPUVtcHR5
U3RyaW5nXSBET01TdHJpbmcgbGFiZWwsIG9wdGlvbmFsIERpY3Rpb25hcnkgb3B0aW9ucyk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5pZGwJKHJldmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNSArMzMs
NSBAQAogXSBpbnRlcmZhY2UgUlRDUnRwU2VuZGVyIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
TWVkaWFTdHJlYW1UcmFjaz8gdHJhY2s7CiAKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFByb21p
c2UgcmVwbGFjZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2sgd2l0aFRyYWNrKTsKKyAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIFByb21pc2U8dm9pZD4gcmVwbGFjZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2sg
d2l0aFRyYWNrKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAkocmV2aXNpb24gMjA4NDQ4KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHR5cGU7CiAgICAgRE9NU3RyaW5nIHN0YXQoRE9NU3RyaW5nIG5hbWUpOwogICAgIHNlcXVl
bmNlPERPTVN0cmluZz4gbmFtZXMoKTsKKwogICAgIC8vIERFUFJFQ0FURUQgLSBmYWtlIGZvciBv
bGQgUlRDU3RhdHNFbGVtZW50IG9iamVjdC4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3Rh
dHNSZXBvcnQgbG9jYWw7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzUmVwb3J0IHJl
bW90ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmlkbAkocmV2aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUs
OSBAQAogICAgIFByaXZhdGVJZGVudGlmaWVyLAogICAgIFB1YmxpY0lkZW50aWZpZXIKIF0gaW50
ZXJmYWNlIFJlYWRhYmxlU3RyZWFtIHsKLSAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlzZSBjYW5j
ZWwob3B0aW9uYWwgYW55IHJlYXNvbik7CisgICAgW05vdEVudW1lcmFibGVdIFByb21pc2U8YW55
PiBjYW5jZWwob3B0aW9uYWwgYW55IHJlYXNvbik7CiAgICAgW05vdEVudW1lcmFibGVdIE9iamVj
dCBnZXRSZWFkZXIob3B0aW9uYWwgYW55IG9wdGlvbnMpOwotICAgIFtOb3RFbnVtZXJhYmxlXSBQ
cm9taXNlIHBpcGVUbyhhbnkgc3RyZWFtcywgb3B0aW9uYWwgYW55IG9wdGlvbnMpOworICAgIFtO
b3RFbnVtZXJhYmxlXSBQcm9taXNlPGFueT4gcGlwZVRvKGFueSBzdHJlYW1zLCBvcHRpb25hbCBh
bnkgb3B0aW9ucyk7CiAgICAgW05vdEVudW1lcmFibGVdIE9iamVjdCBwaXBlVGhyb3VnaChhbnkg
ZGVzdCwgYW55IG9wdGlvbnMpOwogICAgIFtOb3RFbnVtZXJhYmxlXSBPYmplY3QgdGVlKCk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCShyZXZpc2lvbiAyMDg0NDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsOSBAQAogICAgIEpTQnVpbHRpbiwKICAg
ICBOb0ludGVyZmFjZU9iamVjdAogXSBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyIHsKLSAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlzZSByZWFkKCk7Ci0gICAgW05vdEVudW1l
cmFibGVdIFByb21pc2UgY2FuY2VsKG9wdGlvbmFsIGFueSByZWFzb24pOworICAgIFtOb3RFbnVt
ZXJhYmxlXSBQcm9taXNlPGFueT4gcmVhZCgpOworICAgIFtOb3RFbnVtZXJhYmxlXSBQcm9taXNl
PGFueT4gY2FuY2VsKG9wdGlvbmFsIGFueSByZWFzb24pOwogICAgIFtOb3RFbnVtZXJhYmxlXSB2
b2lkIHJlbGVhc2VMb2NrKCk7CiAKLSAgICBbTm90RW51bWVyYWJsZV0gcmVhZG9ubHkgYXR0cmli
dXRlIFByb21pc2UgY2xvc2VkOworICAgIFtOb3RFbnVtZXJhYmxlXSByZWFkb25seSBhdHRyaWJ1
dGUgUHJvbWlzZTxib29sZWFuPiBjbG9zZWQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgJKHJldmlzaW9u
IDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxMCArNDIsOCBAQCBjbGFzcyBSZWFkYWJs
ZVN0cmVhbVNvdXJjZSA6IHB1YmxpYyBSZWZDCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhZGFi
bGVTdHJlYW1Tb3VyY2UoKSB7IH0KIAotICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxzdGQ6Om51bGxw
dHJfdD4gUHJvbWlzZTsKLQotICAgIHZvaWQgc3RhcnQoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlciYmLCBQcm9taXNlJiYpOwotICAgIHZvaWQgcHVsbChQcm9taXNlJiYpOworICAgIHZv
aWQgc3RhcnQoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciYmLCBET01Qcm9taXNlPHZv
aWQ+JiYpOworICAgIHZvaWQgcHVsbChET01Qcm9taXNlPHZvaWQ+JiYpOwogICAgIHZvaWQgY2Fu
Y2VsKEpTQzo6SlNWYWx1ZSk7CiAKICAgICBib29sIGlzUHVsbGluZygpIGNvbnN0IHsgcmV0dXJu
ICEhbV9wcm9taXNlOyB9CkBAIC02NywxMSArNjUsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBkb0NhbmNlbCgpID0gMDsKIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxQcm9taXNl
PiBtX3Byb21pc2U7CisgICAgT3B0aW9uYWw8RE9NUHJvbWlzZTx2b2lkPj4gbV9wcm9taXNlOwog
ICAgIE9wdGlvbmFsPFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI+IG1fY29udHJvbGxl
cjsKIH07CiAKLWlubGluZSB2b2lkIFJlYWRhYmxlU3RyZWFtU291cmNlOjpzdGFydChSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJiYgY29udHJvbGxlciwgUHJvbWlzZSYmIHByb21pc2Up
CitpbmxpbmUgdm9pZCBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6c3RhcnQoUmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlciYmIGNvbnRyb2xsZXIsIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNl
KQogewogICAgIEFTU0VSVCghbV9wcm9taXNlKTsKICAgICBtX3Byb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpOwpAQCAtODEsNyArNzksNyBAQCBpbmxpbmUgdm9pZCBSZWFkYWJsZVN0cmVhbVNvdXJj
ZTo6c3RhcnQoCiAgICAgZG9TdGFydCgpOwogfQogCi1pbmxpbmUgdm9pZCBSZWFkYWJsZVN0cmVh
bVNvdXJjZTo6cHVsbChQcm9taXNlJiYgcHJvbWlzZSkKK2lubGluZSB2b2lkIFJlYWRhYmxlU3Ry
ZWFtU291cmNlOjpwdWxsKERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQogewogICAgIEFTU0VS
VCghbV9wcm9taXNlKTsKICAgICBBU1NFUlQobV9jb250cm9sbGVyKTsKQEAgLTk1LDE0ICs5Mywx
NCBAQCBpbmxpbmUgdm9pZCBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6cHVsbChQCiBpbmxpbmUgdm9p
ZCBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6c3RhcnRGaW5pc2hlZCgpCiB7CiAgICAgQVNTRVJUKG1f
cHJvbWlzZSk7Ci0gICAgc3RkOjpleGNoYW5nZShtX3Byb21pc2UsIE51bGxvcHQpLnZhbHVlKCku
cmVzb2x2ZShudWxscHRyKTsKKyAgICBzdGQ6OmV4Y2hhbmdlKG1fcHJvbWlzZSwgTnVsbG9wdCku
dmFsdWUoKS5yZXNvbHZlKCk7CiAgICAgc2V0SW5hY3RpdmUoKTsKIH0KIAogaW5saW5lIHZvaWQg
UmVhZGFibGVTdHJlYW1Tb3VyY2U6OnB1bGxGaW5pc2hlZCgpCiB7CiAgICAgQVNTRVJUKG1fcHJv
bWlzZSk7Ci0gICAgc3RkOjpleGNoYW5nZShtX3Byb21pc2UsIE51bGxvcHQpLnZhbHVlKCkucmVz
b2x2ZShudWxscHRyKTsKKyAgICBzdGQ6OmV4Y2hhbmdlKG1fcHJvbWlzZSwgTnVsbG9wdCkudmFs
dWUoKS5yZXNvbHZlKCk7CiAgICAgc2V0SW5hY3RpdmUoKTsKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2Uu
aWRsCShyZXZpc2lvbiAyMDg0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw4IEBA
CiAgICAgQ29uZGl0aW9uYWw9UkVBREFCTEVfU1RSRUFNX0FQSSwKICAgICBTa2lwVlRhYmxlVmFs
aWRhdGlvbgogXSBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW1Tb3VyY2UgewotICAgIFtDdXN0b21d
IFByb21pc2Ugc3RhcnQoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciBjb250cm9sbGVy
KTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHB1bGwoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlciBjb250cm9sbGVyKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlPHZvaWQ+IHN0YXJ0KFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29udHJvbGxlcik7CisgICAgW0N1c3RvbV0gUHJv
bWlzZTx2b2lkPiBwdWxsKFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29udHJvbGxl
cik7CiAgICAgdm9pZCBjYW5jZWwoYW55IHJlYXNvbik7CiAKICAgICAvLyBQbGFjZSBob2xkZXIg
dG8ga2VlcCB0aGUgY29udHJvbGxlciBsaW5rZWQgdG8gdGhlIHNvdXJjZS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbAkocmV2
aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxl
U3RyZWFtLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTEgKzMyLDExIEBACiAgICAgQ29uc3Ry
dWN0b3IsCiAgICAgSlNCdWlsdGluCiBdIGludGVyZmFjZSBXcml0YWJsZVN0cmVhbSB7Ci0gICAg
UHJvbWlzZSBhYm9ydChvcHRpb25hbCBhbnkgcmVhc29uKTsKLSAgICBQcm9taXNlIGNsb3NlKCk7
Ci0gICAgUHJvbWlzZSB3cml0ZShhbnkgY2h1bmspOworICAgIFByb21pc2U8YW55PiBhYm9ydChv
cHRpb25hbCBhbnkgcmVhc29uKTsKKyAgICBQcm9taXNlPGFueT4gY2xvc2UoKTsKKyAgICBQcm9t
aXNlPGFueT4gd3JpdGUoYW55IGNodW5rKTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9t
aXNlIGNsb3NlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZSByZWFkeTsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTxib29sZWFuPiBjbG9zZWQ7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFByb21pc2U8Ym9vbGVhbj4gcmVhZHk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBzdGF0ZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCShyZXZpc2lvbiAyMDg0NDgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4MCw3ICsyODAsNyBAQCBib29sIEF1ZGlvQ29udGV4dDo6aXNJbml0aWFsaXplZCgpIGNv
bnN0CiAgICAgcmV0dXJuIG1faXNJbml0aWFsaXplZDsKIH0KIAotdm9pZCBBdWRpb0NvbnRleHQ6
OmFkZFJlYWN0aW9uKFN0YXRlIHN0YXRlLCBQcm9taXNlJiYgcHJvbWlzZSkKK3ZvaWQgQXVkaW9D
b250ZXh0OjphZGRSZWFjdGlvbihTdGF0ZSBzdGF0ZSwgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21p
c2UpCiB7CiAgICAgc2l6ZV90IHN0YXRlSW5kZXggPSBzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRl
KTsKICAgICBpZiAoc3RhdGVJbmRleCA+PSBtX3N0YXRlUmVhY3Rpb25zLnNpemUoKSkKQEAgLTMw
MSwxMSArMzAxLDExIEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkK
ICAgICBpZiAoc3RhdGVJbmRleCA+PSBtX3N0YXRlUmVhY3Rpb25zLnNpemUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgVmVjdG9yPFByb21pc2U+IHJlYWN0aW9uczsKKyAgICBWZWN0b3I8RE9N
UHJvbWlzZTx2b2lkPj4gcmVhY3Rpb25zOwogICAgIG1fc3RhdGVSZWFjdGlvbnNbc3RhdGVJbmRl
eF0uc3dhcChyZWFjdGlvbnMpOwogCiAgICAgZm9yIChhdXRvJiBwcm9taXNlIDogcmVhY3Rpb25z
KQotICAgICAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgICAgIHByb21pc2UucmVz
b2x2ZSgpOwogfQogCiB2b2lkIEF1ZGlvQ29udGV4dDo6c3RvcCgpCkBAIC0xMDE3LDcgKzEwMTcs
NyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVjcmVtZW50QWN0aXZlU291cmNlCiAgICAgLS1tX2Fj
dGl2ZVNvdXJjZUNvdW50OwogfQogCi12b2lkIEF1ZGlvQ29udGV4dDo6c3VzcGVuZChQcm9taXNl
JiYgcHJvbWlzZSkKK3ZvaWQgQXVkaW9Db250ZXh0OjpzdXNwZW5kKERPTVByb21pc2U8dm9pZD4m
JiBwcm9taXNlKQogewogICAgIGlmIChpc09mZmxpbmVDb250ZXh0KCkpIHsKICAgICAgICAgcHJv
bWlzZS5yZWplY3QoSU5WQUxJRF9TVEFURV9FUlIpOwpAQCAtMTAyNSw3ICsxMDI1LDcgQEAgdm9p
ZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmQoUHJvbWlzZSYmIHBybwogICAgIH0KIAogICAgIGlmICht
X3N0YXRlID09IFN0YXRlOjpTdXNwZW5kZWQpIHsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG51
bGxwdHIpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMTA0Niw3ICsxMDQ2LDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnN1c3BlbmQoUHJv
bWlzZSYmIHBybwogICAgIH0pOwogfQogCi12b2lkIEF1ZGlvQ29udGV4dDo6cmVzdW1lKFByb21p
c2UmJiBwcm9taXNlKQordm9pZCBBdWRpb0NvbnRleHQ6OnJlc3VtZShET01Qcm9taXNlPHZvaWQ+
JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpKSB7CiAgICAgICAgIHBy
b21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSKTsKQEAgLTEwNTQsNyArMTA1NCw3IEBAIHZv
aWQgQXVkaW9Db250ZXh0OjpyZXN1bWUoUHJvbWlzZSYmIHByb20KICAgICB9CiAKICAgICBpZiAo
bV9zdGF0ZSA9PSBTdGF0ZTo6UnVubmluZykgewotICAgICAgICBwcm9taXNlLnJlc29sdmUobnVs
bHB0cik7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6cmVzdW1lKFByb21p
c2UmJiBwcm9tCiAgICAgfSk7CiB9CiAKLXZvaWQgQXVkaW9Db250ZXh0OjpjbG9zZShQcm9taXNl
JiYgcHJvbWlzZSkKK3ZvaWQgQXVkaW9Db250ZXh0OjpjbG9zZShET01Qcm9taXNlPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpKSB7CiAgICAgICAgIHByb21p
c2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSKTsKQEAgLTEwODMsNyArMTA4Myw3IEBAIHZvaWQg
QXVkaW9Db250ZXh0OjpjbG9zZShQcm9taXNlJiYgcHJvbWkKICAgICB9CiAKICAgICBpZiAobV9z
dGF0ZSA9PSBTdGF0ZTo6Q2xvc2VkIHx8ICFtX2Rlc3RpbmF0aW9uTm9kZSkgewotICAgICAgICBw
cm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmgJKHJldmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
OSwxMSArMTA5LDkgQEAgcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTU9iamVjdDo6c3VzcGVu
ZDsKICAgICB1c2luZyBBY3RpdmVET01PYmplY3Q6OnJlc3VtZTsKIAotICAgIHR5cGVkZWYgRE9N
UHJvbWlzZTxzdGQ6Om51bGxwdHJfdD4gUHJvbWlzZTsKLQotICAgIHZvaWQgc3VzcGVuZChQcm9t
aXNlJiYpOwotICAgIHZvaWQgcmVzdW1lKFByb21pc2UmJik7Ci0gICAgdm9pZCBjbG9zZShQcm9t
aXNlJiYpOworICAgIHZvaWQgc3VzcGVuZChET01Qcm9taXNlPHZvaWQ+JiYpOworICAgIHZvaWQg
cmVzdW1lKERPTVByb21pc2U8dm9pZD4mJik7CisgICAgdm9pZCBjbG9zZShET01Qcm9taXNlPHZv
aWQ+JiYpOwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IFN1c3BlbmRlZCwgUnVubmluZywgSW50
ZXJydXB0ZWQsIENsb3NlZCB9OwogICAgIFN0YXRlIHN0YXRlKCkgY29uc3Q7CkBAIC0zMjYsNyAr
MzI0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rp
b25zKCk7CiAgICAgdm9pZCBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKIAotICAgIHZv
aWQgYWRkUmVhY3Rpb24oU3RhdGUsIFByb21pc2UmJik7CisgICAgdm9pZCBhZGRSZWFjdGlvbihT
dGF0ZSwgRE9NUHJvbWlzZTx2b2lkPiYmKTsKICAgICB2b2lkIHVwZGF0ZUF1dG9tYXRpY1B1bGxO
b2RlcygpOwogCiAgICAgLy8gT25seSBhY2Nlc3NlZCBpbiB0aGUgYXVkaW8gdGhyZWFkLgpAQCAt
MzYzLDcgKzM2MSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEF1ZGlvTm9kZSo+IG1fcmVuZGVy
aW5nQXV0b21hdGljUHVsbE5vZGVzOwogICAgIC8vIE9ubHkgYWNjZXNzZWQgaW4gdGhlIGF1ZGlv
IHRocmVhZC4KICAgICBWZWN0b3I8QXVkaW9Ob2RlKj4gbV9kZWZlcnJlZEZpbmlzaERlcmVmTGlz
dDsKLSAgICBWZWN0b3I8VmVjdG9yPFByb21pc2U+PiBtX3N0YXRlUmVhY3Rpb25zOworICAgIFZl
Y3RvcjxWZWN0b3I8RE9NUHJvbWlzZTx2b2lkPj4+IG1fc3RhdGVSZWFjdGlvbnM7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOwpJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAko
cmV2aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSw5IEBAIGVudW0gQXVkaW9D
b250ZXh0U3RhdGUgewogICAgIC8vIEFsbCBwYW5uaW5nIGlzIHJlbGF0aXZlIHRvIHRoaXMgbGlz
dGVuZXIuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvTGlzdGVuZXIgbGlzdGVuZXI7CiAK
LSAgICBQcm9taXNlIHN1c3BlbmQoKTsKLSAgICBQcm9taXNlIHJlc3VtZSgpOwotICAgIFByb21p
c2UgY2xvc2UoKTsKKyAgICBQcm9taXNlPHZvaWQ+IHN1c3BlbmQoKTsKKyAgICBQcm9taXNlPHZv
aWQ+IHJlc3VtZSgpOworICAgIFByb21pc2U8dm9pZD4gY2xvc2UoKTsKIAogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBdWRpb0NvbnRleHRTdGF0ZSBzdGF0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uc3RhdGVjaGFuZ2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVByb21pc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVByb21pc2UuaAkocmV2aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Qcm9taXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDEyIEBAIHB1
YmxpYzoKICAgICB0eXBlZGVmIERPTUNsYXNzJiBUeXBlOwogfTsKIAordGVtcGxhdGU8Pgorc3Ry
dWN0IFByb21pc2VSZXN1bHRJbnNwZWN0b3I8dm9pZD4geworcHVibGljOgorICAgIHR5cGVkZWYg
aW50IFR5cGU7Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBET01DbGFzcz4KIHN0cnVjdCBQcm9t
aXNlUmVzdWx0SW5zcGVjdG9yPERPTUNsYXNzLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxUeXBl
SW5zcGVjdG9yPERPTUNsYXNzPjo6aXNQYXNzQnlWYWx1ZVR5cGU+Ojp0eXBlPiB7CiBwdWJsaWM6
CkBAIC0xOTcsOCArMjAzLDcgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSBjYWxsUHJvbWlzZUZ1bmN0
aW9uKAogfQogCiAvLyBBdCB0aGUgbW9tZW50LCBWYWx1ZSBjYW5ub3QgYmUgYSBSZWY8VD4gb3Ig
UmVmUHRyPFQ+LCBpdCBzaG91bGQgYmUgYSBET00gY2xhc3MuCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VmFsdWU+Ci1jbGFzcyBET01Qcm9taXNlIHsKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlPiBjbGFz
cyBET01Qcm9taXNlIHsKIHB1YmxpYzoKICAgICBET01Qcm9taXNlKFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgZ2VuZXJpY1Byb21pc2UpIDogbV9wcm9taXNlRGVmZXJyZWQoV1RGTW92ZShnZW5lcmlj
UHJvbWlzZSkpIHsgfQogCkBAIC0yMDcsNyArMjEyLDExIEBAIHB1YmxpYzoKICAgICBET01Qcm9t
aXNlKGNvbnN0IERPTVByb21pc2UmKSA9IGRlZmF1bHQ7CiAgICAgRE9NUHJvbWlzZSYgb3BlcmF0
b3I9KERPTVByb21pc2UgY29uc3QmKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHJlc29sdmUodHlw
ZW5hbWUgUHJvbWlzZVJlc3VsdEluc3BlY3RvcjxWYWx1ZT46OlR5cGUgdmFsdWUpIHsgbV9wcm9t
aXNlRGVmZXJyZWQtPnJlc29sdmUodmFsdWUpOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCA9
IFZhbHVlPgorICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX3ZvaWQ8VD46OnZh
bHVlLCB2b2lkPjo6dHlwZSByZXNvbHZlKHR5cGVuYW1lIFByb21pc2VSZXN1bHRJbnNwZWN0b3I8
VmFsdWU+OjpUeXBlIHZhbHVlKSB7IG1fcHJvbWlzZURlZmVycmVkLT5yZXNvbHZlKHZhbHVlKTsg
fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCA9IFZhbHVlPgorICAgIHR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmPHN0ZDo6aXNfdm9pZDxUPjo6dmFsdWUsIHZvaWQ+Ojp0eXBlIHJlc29sdmUoKSB7
IG1fcHJvbWlzZURlZmVycmVkLT5yZXNvbHZlKG51bGxwdHIpOyB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBFcnJvclR5cGU+IHZvaWQgcmVqZWN0KEVycm9yVHlwZSYmLi4uIGVycm9yKSB7
IG1fcHJvbWlzZURlZmVycmVkLT5yZWplY3Qoc3RkOjpmb3J3YXJkPEVycm9yVHlwZT4oZXJyb3Ip
Li4uKTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBh
cnNlci5wbQkocmV2aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTQxNCw2ICs0MTQsNyBAQCBteSAk
bmV4dFByaW1pdGl2ZVR5cGVfMSA9ICdeKGludHxsb25nfHNoCiBteSAkbmV4dFByaW1pdGl2ZVR5
cGVfMiA9ICdeKGRvdWJsZXxmbG9hdHx1bnJlc3RyaWN0ZWQpJCc7CiBteSAkbmV4dEFyZ3VtZW50
TGlzdF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8XFt8YW55
fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8
c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHROb25BbnlU
eXBlXzEgPSAnXihib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2N0ZXR8c2hvcnR8dW5y
ZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRTdHJpbmdUeXBlXzEgPSAnXihCeXRlU3Ry
aW5nfERPTVN0cmluZ3xVU1ZTdHJpbmcpJCc7CiBteSAkbmV4dEludGVyZmFjZU1lbWJlcl8xID0g
J14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxi
b29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxs
ZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXpl
cnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2
b2lkKSQnOwogbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8xID0gJ14oc3RhdGljfHN0cmlu
Z2lmaWVyKSQnOwogbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8yID0gJ14oXCh8Qnl0ZVN0
cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRl
bGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8
c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOwpAQCAt
MjA2MSwyMiArMjA2Miw4IEBAIHN1YiBwYXJzZU5vbkFueVR5cGUKICAgICAgICAgJHR5cGUtPm5h
bWUoJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpKTsKICAgICAgICAgcmV0dXJuICR0eXBlOwog
ICAgIH0KLSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkJ5dGVTdHJpbmciKSB7Ci0gICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiQnl0ZVN0cmluZyIs
IF9fTElORV9fKTsKLQotICAgICAgICAkdHlwZS0+bmFtZSgiQnl0ZVN0cmluZyIpOwotICAgICAg
ICByZXR1cm4gJHR5cGU7Ci0gICAgfQotICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiRE9NU3Ry
aW5nIikgewotICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIkRPTVN0cmluZyIsIF9fTElORV9fKTsKLQotICAgICAgICAkdHlwZS0+bmFtZSgiRE9NU3Ry
aW5nIik7Ci0gICAgICAgIHJldHVybiAkdHlwZTsKLSAgICB9Ci0gICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJVU1ZTdHJpbmciKSB7Ci0gICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiVVNWU3RyaW5nIiwgX19MSU5FX18pOwotCi0gICAgICAgICR0eXBl
LT5uYW1lKCJVU1ZTdHJpbmciKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3Ry
aW5nVHlwZV8xLykgeworICAgICAgICAkdHlwZS0+bmFtZSgkc2VsZi0+cGFyc2VTdHJpbmdUeXBl
KCkpOwogICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAib2JqZWN0IikgewpAQCAtMjEzNyw2ICsyMTI0LDIwIEBAIHN1YiBwYXJzZU5vbkFueVR5
cGUKIAogICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiUHJvbWlzZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJQcm9taXNlIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiLCBfX0xJTkVfXyk7CisKKyAgICAgICAg
bXkgJHN1YnR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRzdWJ0
eXBlTmFtZSA9ICRzdWJ0eXBlLT5uYW1lOworCisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKKworICAgICAgICAkdHlwZS0+
bmFtZSgiUHJvbWlzZSIpOworICAgICAgICBwdXNoKEB7JHR5cGUtPnN1YnR5cGVzfSwgJHN1YnR5
cGUpOworCisgICAgICAgIHJldHVybiAkdHlwZTsKKyAgICB9CiAgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuKSB7CiAgICAgICAgIG15ICRpZGVudGlmaWVyID0gJHNlbGYt
PmdldFRva2VuKCk7CiAKQEAgLTIxNjksNiArMjE3MCwyNSBAQCBzdWIgcGFyc2VDb25zdFR5cGUK
ICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7CiB9CiAKK3N1YiBwYXJzZVN0cmluZ1R5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiQnl0ZVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJCeXRlU3RyaW5nIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4g
IkJ5dGVTdHJpbmciOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRPTVN0cmlu
ZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJET01TdHJpbmciLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiRE9NU3RyaW5nIjsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJVU1ZTdHJpbmciKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiVVNWU3RyaW5nIiwgX19M
SU5FX18pOworICAgICAgICByZXR1cm4gIlVTVlN0cmluZyI7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwogc3Vi
IHBhcnNlUHJpbWl0aXZlVHlwZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5vZGUuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Tm9kZS5pZGwJKHJl
dmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0Tm9kZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG5hbWU7CiAKICAgICBbRW5hYmxlZEF0UnVudGltZT1ET01JdGVyYXRvcl0g
aXRlcmFibGU8VGVzdE5vZGU+OwotICAgIFByb21pc2UgdGVzdFdvcmtlclByb21pc2UoKTsKKyAg
ICBQcm9taXNlPHZvaWQ+IHRlc3RXb3JrZXJQcm9taXNlKCk7CiAKICAgICBzZXJpYWxpemVyOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwJKHJldmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAzLDE3ICs0MDMsMTcg
QEAgZW51bSBUZXN0Q29uZmlkZW5jZSB7ICJoaWdoIiwgImtpbmRhLWxvdwogICAgIHZvaWQgX2Fu
eSh1bnJlc3RyaWN0ZWQgZmxvYXQgYSwgbG9uZyBiKTsKIAogCi0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIFByb21pc2UgdGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZTsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgUHJvbWlzZTx2b2lkPiB0ZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlOwogICAg
IC8vIFByb21pc2UgZnVuY3Rpb24KLSAgICBQcm9taXNlIHRlc3RQcm9taXNlRnVuY3Rpb24oKTsK
LSAgICBQcm9taXNlIHRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudChmbG9hdCBh
KTsKLSAgICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIFByb21pc2UgdGVzdFByb21pc2VGdW5j
dGlvbldpdGhFeGNlcHRpb24oKTsKLSAgICBQcm9taXNlIHRlc3RQcm9taXNlRnVuY3Rpb25XaXRo
T3B0aW9uYWxJbnRBcmd1bWVudChvcHRpb25hbCBsb25nIGEpOwotICAgIFByb21pc2UgdGVzdFBy
b21pc2VPdmVybG9hZGVkRnVuY3Rpb24oZmxvYXQgYSk7Ci0gICAgUHJvbWlzZSB0ZXN0UHJvbWlz
ZU92ZXJsb2FkZWRGdW5jdGlvbihGZXRjaFJlcXVlc3QgcmVxdWVzdCk7Ci0gICAgc3RhdGljIFBy
b21pc2UgdGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbigpOwotICAgIFtNYXlUaHJvd0xlZ2FjeUV4
Y2VwdGlvbl0gc3RhdGljIFByb21pc2UgdGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNl
cHRpb24oKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24o
KTsKKyAgICBQcm9taXNlPHZvaWQ+IHRlc3RQcm9taXNlRnVuY3Rpb24oKTsKKyAgICBQcm9taXNl
PHZvaWQ+IHRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudChmbG9hdCBhKTsKKyAg
ICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIFByb21pc2U8dm9pZD4gdGVzdFByb21pc2VGdW5j
dGlvbldpdGhFeGNlcHRpb24oKTsKKyAgICBQcm9taXNlPHZvaWQ+IHRlc3RQcm9taXNlRnVuY3Rp
b25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudChvcHRpb25hbCBsb25nIGEpOworICAgIFByb21pc2U8
dm9pZD4gdGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24oZmxvYXQgYSk7CisgICAgUHJvbWlz
ZTx2b2lkPiB0ZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbihGZXRjaFJlcXVlc3QgcmVxdWVz
dCk7CisgICAgc3RhdGljIFByb21pc2U8dm9pZD4gdGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbigp
OworICAgIFtNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gc3RhdGljIFByb21pc2U8dm9pZD4gdGVz
dFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24oKTsKKyAgICBbQ3VzdG9tXSBQcm9t
aXNlPHZvaWQ+IHRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24oKTsKIAogICAgIC8vIFB1dEZvcndh
cmRzCiAgICAgW1B1dEZvcndhcmRzPW5hbWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBUZXN0Tm9kZSBw
dXRGb3J3YXJkc0F0dHJpYnV0ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVD
cnlwdG8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uaWRsCShyZXZpc2lvbiAyMDg0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxl
Q3J5cHRvLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNSArMjksNiBAQAogICAgIEdlbmVyYXRl
SXNSZWFjaGFibGU9SW1wbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgTm9JbnRlcmZhY2VP
YmplY3QsCiBdIGludGVyZmFjZSBTdWJ0bGVDcnlwdG8gewotICAgIFtDdXN0b21dIFByb21pc2Ug
Z2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIGJvb2xlYW4gZXh0cmFj
dGFibGUsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOworICAgIC8vIEZJWE1FOiBTaG91
bGQgdGhpcyByZXR1cm4gYSBQcm9taXNlPChDcnlwdG9LZXkgb3IgQ3J5cHRvS2V5UGFpcik+Pwor
ICAgIFtDdXN0b21dIFByb21pc2U8YW55PiBnZW5lcmF0ZUtleShBbGdvcml0aG1JZGVudGlmaWVy
IGFsZ29yaXRobSwgYm9vbGVhbiBleHRyYWN0YWJsZSwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVz
YWdlcyk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0
by5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNy
eXB0by5pZGwJKHJldmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJL
aXRTdWJ0bGVDcnlwdG8uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNCArMjgsMTQgQEAKICAg
ICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxEb2N1bWVudCwKICAgICBOb0ludGVyZmFjZU9iamVj
dCwKIF0gaW50ZXJmYWNlIFdlYktpdFN1YnRsZUNyeXB0byB7Ci0gICAgW0N1c3RvbV0gUHJvbWlz
ZSBlbmNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5j
ZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIGRlY3J5
cHQoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0
b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAgIFtDdXN0b21dIFByb21pc2Ugc2lnbihBbGdvcml0
aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9u
RGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSB2ZXJpZnkoQWxnb3JpdGhtSWRlbnRp
ZmllciBhbGdvcml0aG0sIEtleSBrZXksIENyeXB0b09wZXJhdGlvbkRhdGEgc2lnbmF0dXJlLCBz
ZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNl
IGRpZ2VzdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgc2VxdWVuY2U8Q3J5cHRvT3Bl
cmF0aW9uRGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBnZW5lcmF0ZUtleShBbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgb3B0aW9uYWwgYm9vbGVhbiBleHRyYWN0YWJsZSwg
b3B0aW9uYWwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVzYWdlcyk7Ci0gICAgW0N1c3RvbV0gUHJv
bWlzZSBpbXBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9uRGF0YSBrZXlE
YXRhLCBBbGdvcml0aG1JZGVudGlmaWVyPyBhbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0
cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOwotICAgIFtD
dXN0b21dIFByb21pc2UgZXhwb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIEtleSBrZXkpOwotICAg
IFtDdXN0b21dIFByb21pc2Ugd3JhcEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5LCBLZXkg
d3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgd3JhcEFsZ29yaXRobSk7Ci0gICAgW0N1
c3RvbV0gUHJvbWlzZSB1bndyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9u
RGF0YSB3cmFwcGVkS2V5LCBLZXkgdW53cmFwcGluZ0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciB1
bndyYXBBbGdvcml0aG0sIEFsZ29yaXRobUlkZW50aWZpZXI/IHVud3JhcHBlZEtleUFsZ29yaXRo
bSwgb3B0aW9uYWwgYm9vbGVhbiBleHRyYWN0YWJsZSwgb3B0aW9uYWwgc2VxdWVuY2U8S2V5VXNh
Z2U+IGtleVVzYWdlcyk7CisgICAgW0N1c3RvbV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gZW5jcnlw
dChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRv
T3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4g
ZGVjcnlwdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8
Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZTxBcnJheUJ1
ZmZlcj4gc2lnbihBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVu
Y2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZTxib29s
ZWFuPiB2ZXJpZnkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIENyeXB0
b09wZXJhdGlvbkRhdGEgc2lnbmF0dXJlLCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBk
YXRhKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlPEFycmF5QnVmZmVyPiBkaWdlc3QoQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEp
OworICAgIFtDdXN0b21dIFByb21pc2U8KENyeXB0b0tleSBvciBDcnlwdG9LZXlQYWlyKT4gZ2Vu
ZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4g
ZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOworICAg
IFtDdXN0b21dIFByb21pc2U8Q3J5cHRvS2V5PiBpbXBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwg
Q3J5cHRvT3BlcmF0aW9uRGF0YSBrZXlEYXRhLCBBbGdvcml0aG1JZGVudGlmaWVyPyBhbGdvcml0
aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVz
YWdlPiBrZXlVc2FnZXMpOworICAgIFtDdXN0b21dIFByb21pc2U8QXJyYXlCdWZmZXI+IGV4cG9y
dEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlPEFy
cmF5QnVmZmVyPiB3cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIEtleSBrZXksIEtleSB3cmFwcGlu
Z0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciB3cmFwQWxnb3JpdGhtKTsKKyAgICBbQ3VzdG9tXSBQ
cm9taXNlPENyeXB0b0tleT4gdW53cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJh
dGlvbkRhdGEgd3JhcHBlZEtleSwgS2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZp
ZXIgdW53cmFwQWxnb3JpdGhtLCBBbGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdv
cml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtl
eVVzYWdlPiBrZXlVc2FnZXMpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFj
ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmlkbAkocmV2
aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNiArNTQsNiBAQCBkaWN0aW9uYXJ5IEZvbnRGYWNlRGVzY3JpcHRvcnMg
ewogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZvbnRGYWNlTG9hZFN0YXR1cyBzdGF0dXM7CiAK
LSAgICBbQ3VzdG9tXSBQcm9taXNlIGxvYWQoKTsKLSAgICBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0
b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBPYmplY3QgbG9hZGVkOworICAgIFtDdXN0b21d
IFByb21pc2U8Rm9udEZhY2U+IGxvYWQoKTsKKyAgICBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21H
ZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPEZvbnRGYWNlPiBsb2FkZWQ7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlU2V0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2VTZXQuaWRsCShyZXZpc2lvbiAyMDg0NDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2VTZXQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw5
ICs0Nyw5IEBAIGVudW0gRm9udEZhY2VTZXRMb2FkU3RhdHVzIHsKICAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ubG9hZGluZ2RvbmU7CiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmxv
YWRpbmdlcnJvcjsKIAotICAgIFByb21pc2UgbG9hZChET01TdHJpbmcgZm9udCwgb3B0aW9uYWwg
RE9NU3RyaW5nIHRleHQgPSAiICIpOworICAgIFByb21pc2U8c2VxdWVuY2U8Rm9udEZhY2U+PiBs
b2FkKERPTVN0cmluZyBmb250LCBvcHRpb25hbCBET01TdHJpbmcgdGV4dCA9ICIgIik7CiAgICAg
W01heVRocm93RXhjZXB0aW9uXSBib29sZWFuIGNoZWNrKERPTVN0cmluZyBmb250LCBvcHRpb25h
bCBET01TdHJpbmcgdGV4dCA9ICIgIik7CiAKLSAgICBbQ3VzdG9tR2V0dGVyLCBDYWNoZWRBdHRy
aWJ1dGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlIHJlYWR5OworICAgIFtDdXN0b21HZXR0
ZXIsIENhY2hlZEF0dHJpYnV0ZV0gcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8Rm9udEZhY2VT
ZXQ+IHJlYWR5OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGb250RmFjZVNldExvYWRTdGF0dXMg
c3RhdHVzOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0
cnkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVn
aXN0cnkuaWRsCShyZXZpc2lvbiAyMDg0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNSArMzAsNSBAQAogXSBp
bnRlcmZhY2UgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IHsKICAgICBbQ0VSZWFjdGlvbnMsIEN1c3Rv
bV0gdm9pZCBkZWZpbmUoRE9NU3RyaW5nIG5hbWUsIEZ1bmN0aW9uIGNvbnN0cnVjdG9yKTsKICAg
ICBhbnkgZ2V0KERPTVN0cmluZyBuYW1lKTsKLSAgICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2VwdGlv
bl0gUHJvbWlzZSB3aGVuRGVmaW5lZChET01TdHJpbmcgbmFtZSk7CisgICAgW0N1c3RvbSwgTWF5
VGhyb3dFeGNlcHRpb25dIFByb21pc2U8dm9pZD4gd2hlbkRlZmluZWQoRE9NU3RyaW5nIG5hbWUp
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2
aXNpb24gMjA4NDQ4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTU5LDcgKzk1OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2NoZWR1bGVSZXNvbHZlUGUKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZWplY3RQZW5k
aW5nUGxheVByb21pc2VzKERPTUVycm9yJiBlcnJvcikKIHsKLSAgICBWZWN0b3I8UGxheVByb21p
c2U+IHBlbmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZNb3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyk7
CisgICAgVmVjdG9yPERPTVByb21pc2U8dm9pZD4+IHBlbmRpbmdQbGF5UHJvbWlzZXMgPSBXVEZN
b3ZlKG1fcGVuZGluZ1BsYXlQcm9taXNlcyk7CiAKICAgICBmb3IgKGF1dG8mIHByb21pc2UgOiBw
ZW5kaW5nUGxheVByb21pc2VzKQogICAgICAgICBwcm9taXNlLnJlamVjdChlcnJvcik7CkBAIC05
NjcsMTAgKzk2NywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlamVjdFBlbmRpbmdQbGF5
CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVzb2x2ZVBlbmRpbmdQbGF5UHJvbWlzZXMoKQog
ewotICAgIFZlY3RvcjxQbGF5UHJvbWlzZT4gcGVuZGluZ1BsYXlQcm9taXNlcyA9IFdURk1vdmUo
bV9wZW5kaW5nUGxheVByb21pc2VzKTsKKyAgICBWZWN0b3I8RE9NUHJvbWlzZTx2b2lkPj4gcGVu
ZGluZ1BsYXlQcm9taXNlcyA9IFdURk1vdmUobV9wZW5kaW5nUGxheVByb21pc2VzKTsKIAogICAg
IGZvciAoYXV0byYgcHJvbWlzZSA6IHBlbmRpbmdQbGF5UHJvbWlzZXMpCi0gICAgICAgIHByb21p
c2UucmVzb2x2ZShudWxscHRyKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiB9CiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVOb3RpZnlBYm91dFBsYXlpbmcoKQpAQCAtMzAy
NSw3ICszMDI1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRQcmVsb2FkKGNvbnN0IAog
ICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24ocHJlbG9hZEF0dHIsIHByZWxv
YWQpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoUGxheVByb21pc2UmJiBwcm9t
aXNlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2U8dm9pZD4mJiBwcm9t
aXNlKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoJXApIiwgdGhp
cyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lv
biAyMDg0NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjE2LDggKzIxNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGxvb3AoKSBj
b25zdDsKICAgICB2b2lkIHNldExvb3AoYm9vbCBiKTsKIAotICAgIHR5cGVkZWYgRE9NUHJvbWlz
ZTxzdGQ6Om51bGxwdHJfdD4gUGxheVByb21pc2U7Ci0gICAgdm9pZCBwbGF5KFBsYXlQcm9taXNl
JiYpOworICAgIHZvaWQgcGxheShET01Qcm9taXNlPHZvaWQ+JiYpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXVz
ZSgpIG92ZXJyaWRlOwpAQCAtODIwLDcgKzgxOSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFRp
bWVSYW5nZXM+IG1fcGxheWVkVGltZVJhbmdlczsKICAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2Fz
eW5jRXZlbnRRdWV1ZTsKIAotICAgIFZlY3RvcjxQbGF5UHJvbWlzZT4gbV9wZW5kaW5nUGxheVBy
b21pc2VzOworICAgIFZlY3RvcjxET01Qcm9taXNlPHZvaWQ+PiBtX3BlbmRpbmdQbGF5UHJvbWlz
ZXM7CiAKICAgICBkb3VibGUgbV9yZXF1ZXN0ZWRQbGF5YmFja1JhdGUgeyAxIH07CiAgICAgZG91
YmxlIG1fcmVwb3J0ZWRQbGF5YmFja1JhdGUgeyAxIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwJKHJldmlzaW9uIDIwODQ0OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcx
LDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBlbmRlZDsKICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIGJvb2xlYW4gYXV0b3BsYXk7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBi
b29sZWFuIGxvb3A7Ci0gICAgUHJvbWlzZSBwbGF5KCk7CisgICAgUHJvbWlzZTx2b2lkPiBwbGF5
KCk7CiAgICAgdm9pZCBwYXVzZSgpOwogICAgIHZvaWQgZmFzdFNlZWsodW5yZXN0cmljdGVkIGRv
dWJsZSB0aW1lKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>