<?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>192062</bug_id>
          
          <creation_ts>2018-11-27 18:13:37 -0800</creation_ts>
          <short_desc>Add SessionIDs wherever BlobURLs are used in SerializedScriptValue</short_desc>
          <delta_ts>2018-11-28 13:12:42 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1482303</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-27 18:13:37 -0800</bug_when>
    <thetext>Add SessionIDs wherever BlobURLs are used in SerializedScriptValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482304</commentid>
    <comment_count>1</comment_count>
      <attachid>355833</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-27 18:14:40 -0800</bug_when>
    <thetext>Created attachment 355833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482307</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-27 18:19:07 -0800</bug_when>
    <thetext>Attachment 355833 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:587:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1838:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:3278:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482461</commentid>
    <comment_count>3</comment_count>
      <attachid>355833</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-28 09:35:14 -0800</bug_when>
    <thetext>Comment on attachment 355833
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Just adding infrastructure for fixing &quot;the blob bug&quot;

Should be &quot;the blog blug&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482611</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-28 13:11:34 -0800</bug_when>
    <thetext>http://trac.webkit.org/r238632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482612</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-28 13:12:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/46319290&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355833</attachid>
            <date>2018-11-27 18:14:40 -0800</date>
            <delta_ts>2018-11-28 09:35:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192062-20181127181439.patch</filename>
            <type>text/plain</type>
            <size>40462</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODU5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBACisyMDE4LTExLTI3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNlc3Np
b25JRHMgd2hlcmV2ZXIgQmxvYlVSTHMgYXJlIHVzZWQgaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIwNjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKdXN0IGFk
ZGluZyBpbmZyYXN0cnVjdHVyZSBmb3IgZml4aW5nICJ0aGUgYmxvYiBidWciCisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpJREJEYXRhYmFzZUlkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjppc29sYXRlZENvcHkgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5o
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpoYXNoIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllcjo6c2Vzc2lvbklEIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkZhY3Rvcnk6Om9wZW5JbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0
b3J5OjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnB1dE9yQWRk
T25TZXJ2ZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlZhbHVlOjpJREJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJWYWx1ZTo6c2V0QXNJc29sYXRlZENvcHkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQlZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJWYWx1ZTo6c2Vzc2lvbklEIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlZhbHVlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCVmFsdWU6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6TWVtb3J5SW5kZXhDdXJzb3I6OmN1cnJlbnREYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmdldEJsb2JSZWNvcmRzRm9yT2JqZWN0U3RvcmVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsT2JqZWN0U3Rv
cmVSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2lu
Z1N0b3JlOjp1bmNoZWNrZWRHZXRJbmRleFJlY29yZEZvck9uZUtleSk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJDdXJzb3I6OmludGVybmFsRmV0Y2hOZXh0UmVj
b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybVB1dE9yQWRkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0
aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCVmFsdWVUb0pTVmFsdWUp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OkNsb25lU2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3Jl
OjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURl
c2VyaWFsaXplcjo6Q2xvbmVEZXNlcmlhbGl6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OndyaXRlQmxvYnNUb0Rpc2tGb3JJbmRleGVkREIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp3cml0ZUJsb2JzVG9EaXNrRm9ySW5k
ZXhlZERCU3luY2hyb25vdXNseSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNl
c3Npb25JRCBjb25zdCk6CisKIDIwMTgtMTEtMjcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUyBzaG91bGQgYmUgZmFs
c2UgZm9yIGlvc21hYy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjM4NTQ1
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlm
aWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUlEQkRhdGFiYXNlSWRlbnRpZmllcjo6SURCRGF0YWJhc2VJZGVudGlmaWVyKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBTZWN1cml0eU9yaWdpbkRhdGEmJiBvcGVuaW5nT3Jp
Z2luLCBTZWN1cml0eU9yaWdpbkRhdGEmJiBtYWluRnJhbWVPcmlnaW4pCitJREJEYXRhYmFzZUlk
ZW50aWZpZXI6OklEQkRhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYg
b3BlbmluZ09yaWdpbiwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgbWFpbkZyYW1lT3JpZ2luKQogICAg
IDogbV9kYXRhYmFzZU5hbWUoZGF0YWJhc2VOYW1lKQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgbV9vcGVuaW5nT3JpZ2luKFdURk1vdmUob3BlbmluZ09yaWdpbikpCiAgICAg
LCBtX21haW5GcmFtZU9yaWdpbihXVEZNb3ZlKG1haW5GcmFtZU9yaWdpbikpCiAKQEAgLTUwLDYg
KzUxLDcgQEAgSURCRGF0YWJhc2VJZGVudGlmaWVyIElEQkRhdGFiYXNlSWRlbnRpZgogICAgIElE
QkRhdGFiYXNlSWRlbnRpZmllciBpZGVudGlmaWVyOwogCiAgICAgaWRlbnRpZmllci5tX2RhdGFi
YXNlTmFtZSA9IG1fZGF0YWJhc2VOYW1lLmlzb2xhdGVkQ29weSgpOworICAgIGlkZW50aWZpZXIu
bV9zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRC5pc29sYXRlZENvcHkoKTsKICAgICBpZGVudGlmaWVy
Lm1fb3BlbmluZ09yaWdpbiA9IG1fb3BlbmluZ09yaWdpbi5pc29sYXRlZENvcHkoKTsKICAgICBp
ZGVudGlmaWVyLm1fbWFpbkZyYW1lT3JpZ2luID0gbV9tYWluRnJhbWVPcmlnaW4uaXNvbGF0ZWRD
b3B5KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oCShyZXZpc2lvbiAyMzg1NDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgewogICAg
IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIElEQkRhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgb3BlbmluZ09yaWdpbiwgU2Vj
dXJpdHlPcmlnaW5EYXRhJiYgbWFpbkZyYW1lT3JpZ2luKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJ
REJEYXRhYmFzZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgb3BlbmluZ09yaWdpbiwgU2VjdXJp
dHlPcmlnaW5EYXRhJiYgbWFpbkZyYW1lT3JpZ2luKTsKIAogICAgIElEQkRhdGFiYXNlSWRlbnRp
ZmllciBpc29sYXRlZENvcHkoKSBjb25zdDsKIApAQCAtNTUsMTIgKzU2LDEzIEBAIHB1YmxpYzoK
ICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG5hbWVI
YXNoID0gU3RyaW5nSGFzaDo6aGFzaChtX2RhdGFiYXNlTmFtZSk7CisgICAgICAgIHVuc2lnbmVk
IHNlc3Npb25JREhhc2ggPSBXVEY6OlNlc3Npb25JREhhc2g6Omhhc2gobV9zZXNzaW9uSUQpOwog
ICAgICAgICB1bnNpZ25lZCBvcGVuaW5nUHJvdG9jb2xIYXNoID0gU3RyaW5nSGFzaDo6aGFzaCht
X29wZW5pbmdPcmlnaW4ucHJvdG9jb2wpOwogICAgICAgICB1bnNpZ25lZCBvcGVuaW5nSG9zdEhh
c2ggPSBTdHJpbmdIYXNoOjpoYXNoKG1fb3BlbmluZ09yaWdpbi5ob3N0KTsKICAgICAgICAgdW5z
aWduZWQgbWFpbkZyYW1lUHJvdG9jb2xIYXNoID0gU3RyaW5nSGFzaDo6aGFzaChtX21haW5GcmFt
ZU9yaWdpbi5wcm90b2NvbCk7CiAgICAgICAgIHVuc2lnbmVkIG1haW5GcmFtZUhvc3RIYXNoID0g
U3RyaW5nSGFzaDo6aGFzaChtX21haW5GcmFtZU9yaWdpbi5ob3N0KTsKICAgICAgICAgCi0gICAg
ICAgIHVuc2lnbmVkIGhhc2hDb2Rlc1s3XSA9IHsgbmFtZUhhc2gsIG9wZW5pbmdQcm90b2NvbEhh
c2gsIG9wZW5pbmdIb3N0SGFzaCwgbV9vcGVuaW5nT3JpZ2luLnBvcnQudmFsdWVfb3IoMCksIG1h
aW5GcmFtZVByb3RvY29sSGFzaCwgbWFpbkZyYW1lSG9zdEhhc2gsIG1fbWFpbkZyYW1lT3JpZ2lu
LnBvcnQudmFsdWVfb3IoMCkgfTsKKyAgICAgICAgdW5zaWduZWQgaGFzaENvZGVzWzhdID0geyBu
YW1lSGFzaCwgc2Vzc2lvbklESGFzaCwgb3BlbmluZ1Byb3RvY29sSGFzaCwgb3BlbmluZ0hvc3RI
YXNoLCBtX29wZW5pbmdPcmlnaW4ucG9ydC52YWx1ZV9vcigwKSwgbWFpbkZyYW1lUHJvdG9jb2xI
YXNoLCBtYWluRnJhbWVIb3N0SGFzaCwgbV9tYWluRnJhbWVPcmlnaW4ucG9ydC52YWx1ZV9vcigw
KSB9OwogICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5PHNpemVvZihoYXNo
Q29kZXMpPihoYXNoQ29kZXMpOwogICAgIH0KIApAQCAtODMsNiArODUsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBt
X2RhdGFiYXNlTmFtZTsgfQorICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCiAgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5KSBjb25zdDsKICAg
ICBzdGF0aWMgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnkpOwpAQCAtMTAxLDYg
KzEwNCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9kYXRhYmFzZU5hbWU7
CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG1fb3BlbmluZ09yaWdpbjsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgbV9tYWluRnJhbWVPcmln
aW47CiB9OwpAQCAtMTIwLDcgKzEyNCw3IEBAIHN0cnVjdCBJREJEYXRhYmFzZUlkZW50aWZpZXJI
YXNoVHJhaXRzIDoKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElEQkRhdGFiYXNlSWRl
bnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCBtX2RhdGFiYXNlTmFtZSA8PCBtX29wZW5pbmdPcmlnaW4gPDwgbV9tYWluRnJhbWVPcmlnaW47
CisgICAgZW5jb2RlciA8PCBtX2RhdGFiYXNlTmFtZSA8PCBtX3Nlc3Npb25JRCA8PCBtX29wZW5p
bmdPcmlnaW4gPDwgbV9tYWluRnJhbWVPcmlnaW47CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CkBAIC0xMzEsNiArMTM1LDExIEBAIHN0ZDo6b3B0aW9uYWw8SURCRGF0YWJhc2VJZGVudGlm
aWVyPiBJREIKICAgICBpZiAoIWRhdGFiYXNlTmFtZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIAorICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRDsKKyAg
ICBkZWNvZGVyID4+IHNlc3Npb25JRDsKKyAgICBpZiAoIXNlc3Npb25JRCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAKICAgICBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2lu
RGF0YT4gb3BlbmluZ09yaWdpbjsKICAgICBkZWNvZGVyID4+IG9wZW5pbmdPcmlnaW47CiAgICAg
aWYgKCFvcGVuaW5nT3JpZ2luKQpAQCAtMTQzLDYgKzE1Miw3IEBAIHN0ZDo6b3B0aW9uYWw8SURC
RGF0YWJhc2VJZGVudGlmaWVyPiBJREIKIAogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBpZGVu
dGlmaWVyOwogICAgIGlkZW50aWZpZXIubV9kYXRhYmFzZU5hbWUgPSBXVEZNb3ZlKCpkYXRhYmFz
ZU5hbWUpOyAvLyBGSVhNRTogV2hlbiBkZWNvZGluZyBmcm9tIElQQywgZGF0YWJhc2VOYW1lIGNh
biBiZSBudWxsLCBhbmQgdGhlIG5vbi1lbXB0eSBjb25zdHJ1Y3RvciBhc3NlcnRzIHRoYXQgdGhp
cyBpcyBub3QgdGhlIGNhc2UuCisgICAgaWRlbnRpZmllci5tX3Nlc3Npb25JRCA9IFdURk1vdmUo
KnNlc3Npb25JRCk7CiAgICAgaWRlbnRpZmllci5tX29wZW5pbmdPcmlnaW4gPSBXVEZNb3ZlKCpv
cGVuaW5nT3JpZ2luKTsKICAgICBpZGVudGlmaWVyLm1fbWFpbkZyYW1lT3JpZ2luID0gV1RGTW92
ZSgqbWFpbkZyYW1lT3JpZ2luKTsKICAgICByZXR1cm4gV1RGTW92ZShpZGVudGlmaWVyKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3Bw
CShyZXZpc2lvbiAyMzg1NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBFeGNlcHRpb25P
cjxSZWY8SURCT3BlbkRCUmVxdWVzdD4+IElEQkZhCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBTZWN1cml0eUVycm9yLCAiSURCRmFjdG9yeS5vcGVuKCkgY2FsbGVkIGluIGFuIGludmFsaWQg
c2VjdXJpdHkgY29udGV4dCJfcyB9OwogCiAgICAgQVNTRVJUKGNvbnRleHQuc2VjdXJpdHlPcmln
aW4oKSk7Ci0gICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIGRhdGFiYXNlSWRlbnRpZmllcihuYW1l
LCBTZWN1cml0eU9yaWdpbkRhdGEgeyBjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSB9
LCBTZWN1cml0eU9yaWdpbkRhdGEgeyBjb250ZXh0LnRvcE9yaWdpbigpLmRhdGEoKSB9KTsKKyAg
ICBJREJEYXRhYmFzZUlkZW50aWZpZXIgZGF0YWJhc2VJZGVudGlmaWVyKG5hbWUsIGNvbnRleHQu
c2Vzc2lvbklEKCksIFNlY3VyaXR5T3JpZ2luRGF0YSB7IGNvbnRleHQuc2VjdXJpdHlPcmlnaW4o
KS0+ZGF0YSgpIH0sIFNlY3VyaXR5T3JpZ2luRGF0YSB7IGNvbnRleHQudG9wT3JpZ2luKCkuZGF0
YSgpIH0pOwogICAgIGlmICghZGF0YWJhc2VJZGVudGlmaWVyLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIklEQkZhY3Rvcnkub3BlbigpIGNhbGxlZCB3
aXRoIGFuIGludmFsaWQgc2VjdXJpdHkgb3JpZ2luIl9zIH07CiAKQEAgLTExMSw3ICsxMTEsNyBA
QCBFeGNlcHRpb25PcjxSZWY8SURCT3BlbkRCUmVxdWVzdD4+IElEQkZhCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiSURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgp
IGNhbGxlZCBpbiBhbiBpbnZhbGlkIHNlY3VyaXR5IGNvbnRleHQiX3MgfTsKIAogICAgIEFTU0VS
VChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkpOwotICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBk
YXRhYmFzZUlkZW50aWZpZXIobmFtZSwgU2VjdXJpdHlPcmlnaW5EYXRhIHsgY29udGV4dC5zZWN1
cml0eU9yaWdpbigpLT5kYXRhKCkgfSwgU2VjdXJpdHlPcmlnaW5EYXRhIHsgY29udGV4dC50b3BP
cmlnaW4oKS5kYXRhKCkgfSk7CisgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIGRhdGFiYXNlSWRl
bnRpZmllcihuYW1lLCBjb250ZXh0LnNlc3Npb25JRCgpLCBTZWN1cml0eU9yaWdpbkRhdGEgeyBj
b250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSB9LCBTZWN1cml0eU9yaWdpbkRhdGEgeyBj
b250ZXh0LnRvcE9yaWdpbigpLmRhdGEoKSB9KTsKICAgICBpZiAoIWRhdGFiYXNlSWRlbnRpZmll
ci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJJREJG
YWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgY2FsbGVkIHdpdGggYW4gaW52YWxpZCBzZWN1cml0eSBv
cmlnaW4iX3MgfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gMjM4NTQ1KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw3ICs1NCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJUcmFuc2FjdGlvbk9wZXJhdGlvbi5o
IgotCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0xMjIzLDcgKzEyMjMsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpwdXRPckFkZE9uU2VydmVyKElECiAgICAgLy8gc3RvcCBmdXR1cmUgcmVx
dWVzdHMgZnJvbSBnb2luZyB0byB0aGUgc2VydmVyIGFoZWFkIG9mIGl0LgogICAgIG9wZXJhdGlv
bi5zZXROZXh0UmVxdWVzdENhbkdvVG9TZXJ2ZXIoZmFsc2UpOwogCi0gICAgdmFsdWUtPndyaXRl
QmxvYnNUb0Rpc2tGb3JJbmRleGVkREIoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
dGhpcywgcHJvdGVjdGVkT3BlcmF0aW9uID0gUmVmPElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVy
YXRpb24+KG9wZXJhdGlvbiksIGtleURhdGEgPSBJREJLZXlEYXRhKGtleS5nZXQoKSkuaXNvbGF0
ZWRDb3B5KCksIG92ZXJ3cml0ZU1vZGVdKGNvbnN0IElEQlZhbHVlJiBpZGJWYWx1ZSkgbXV0YWJs
ZSB7CisgICAgdmFsdWUtPndyaXRlQmxvYnNUb0Rpc2tGb3JJbmRleGVkREIoW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgcHJvdGVjdGVkT3BlcmF0aW9uID0gUmVmPElEQkNs
aWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24+KG9wZXJhdGlvbiksIGtleURhdGEgPSBJREJLZXlE
YXRhKGtleS5nZXQoKSkuaXNvbGF0ZWRDb3B5KCksIG92ZXJ3cml0ZU1vZGVdKElEQlZhbHVlJiYg
aWRiVmFsdWUpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZU
aHJlYWQ6OmN1cnJlbnQoKSk7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
ICAgIGlmIChpZGJWYWx1ZS5kYXRhKCkuZGF0YSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmFsdWUuY3BwCShyZXZpc2lvbiAyMzg1NDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWYWx1ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDYgKzQwLDcgQEAgSURCVmFsdWU6OklEQlZhbHVlKCkKIElEQlZhbHVlOjpJREJW
YWx1ZShjb25zdCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlKQogICAgIDogbV9k
YXRhKFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjb3B5VmVjdG9yKHNjcmlwdFZhbHVlLmRhdGEoKSkp
CiAgICAgLCBtX2Jsb2JVUkxzKHNjcmlwdFZhbHVlLmJsb2JVUkxzSXNvbGF0ZWRDb3B5KCkpCisg
ICAgLCBtX3Nlc3Npb25JRChzY3JpcHRWYWx1ZS5zZXNzaW9uSUQoKSkKIHsKIH0KIApAQCAtNDgs
MjQgKzQ5LDI3IEBAIElEQlZhbHVlOjpJREJWYWx1ZShjb25zdCBUaHJlYWRTYWZlRGF0YUIKIHsK
IH0KIAotSURCVmFsdWU6OklEQlZhbHVlKGNvbnN0IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2Ny
aXB0VmFsdWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JGaWxlUGF0aHMpCitJREJWYWx1ZTo6SURCVmFsdWUoY29uc3QgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJiBzY3JpcHRWYWx1ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxz
LCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
YmxvYkZpbGVQYXRocykKICAgICA6IG1fZGF0YShUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y29weVZl
Y3RvcihzY3JpcHRWYWx1ZS5kYXRhKCkpKQogICAgICwgbV9ibG9iVVJMcyhibG9iVVJMcykKKyAg
ICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fYmxvYkZpbGVQYXRocyhibG9iRmls
ZVBhdGhzKQogewogICAgIEFTU0VSVChtX2RhdGEuZGF0YSgpKTsKIH0KIAotSURCVmFsdWU6OklE
QlZhbHVlKGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSwgVmVjdG9yPFN0cmluZz4m
JiBibG9iVVJMcywgVmVjdG9yPFN0cmluZz4mJiBibG9iRmlsZVBhdGhzKQorSURCVmFsdWU6OklE
QlZhbHVlKGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSwgVmVjdG9yPFN0cmluZz4m
JiBibG9iVVJMcywgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgVmVjdG9yPFN0cmlu
Zz4mJiBibG9iRmlsZVBhdGhzKQogICAgIDogbV9kYXRhKHZhbHVlKQogICAgICwgbV9ibG9iVVJM
cyhXVEZNb3ZlKGJsb2JVUkxzKSkKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAs
IG1fYmxvYkZpbGVQYXRocyhXVEZNb3ZlKGJsb2JGaWxlUGF0aHMpKQogewogfQogCi1JREJWYWx1
ZTo6SURCVmFsdWUoY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iRmlsZVBhdGhz
KQorSURCVmFsdWU6OklEQlZhbHVlKGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vz
c2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYkZpbGVQYXRocykKICAgICA6IG1fZGF0
YSh2YWx1ZSkKICAgICAsIG1fYmxvYlVSTHMoYmxvYlVSTHMpCisgICAgLCBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCiAgICAgLCBtX2Jsb2JGaWxlUGF0aHMoYmxvYkZpbGVQYXRocykKIHsKIH0KQEAg
LTc2LDYgKzgwLDcgQEAgdm9pZCBJREJWYWx1ZTo6c2V0QXNJc29sYXRlZENvcHkoY29uc3QgSQog
CiAgICAgbV9kYXRhID0gb3RoZXIubV9kYXRhOwogICAgIG1fYmxvYlVSTHMgPSBjcm9zc1RocmVh
ZENvcHkob3RoZXIubV9ibG9iVVJMcyk7CisgICAgbV9zZXNzaW9uSUQgPSBvdGhlci5tX3Nlc3Np
b25JRDsKICAgICBtX2Jsb2JGaWxlUGF0aHMgPSBjcm9zc1RocmVhZENvcHkob3RoZXIubV9ibG9i
RmlsZVBhdGhzKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJWYWx1ZS5oCShyZXZpc2lvbiAyMzg1NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCwxMSBAQAog
ICovCiAKICNwcmFnbWEgb25jZQorCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNp
bmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzgsMTUgKzQwLDE2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBJREJWYWx1
ZSgpOwogICAgIElEQlZhbHVlKGNvbnN0IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOwogICAgIElE
QlZhbHVlKGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJik7Ci0gICAgSURCVmFsdWUoY29uc3Qg
U2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYkZpbGVQYXRocyk7Ci0gICAgSURCVmFsdWUoY29uc3Qg
VGhyZWFkU2FmZURhdGFCdWZmZXImLCBWZWN0b3I8U3RyaW5nPiYmIGJsb2JVUkxzLCBWZWN0b3I8
U3RyaW5nPiYmIGJsb2JGaWxlUGF0aHMpOwotICAgIElEQlZhbHVlKGNvbnN0IFRocmVhZFNhZmVE
YXRhQnVmZmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYmxvYkZpbGVQYXRocyk7CisgICAgSURCVmFsdWUoY29uc3QgU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBQQUw6OlNl
c3Npb25JRCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iRmlsZVBhdGhzKTsKKyAgICBJREJW
YWx1ZShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYsIFZlY3RvcjxTdHJpbmc+JiYgYmxvYlVS
THMsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgVmVjdG9yPFN0cmluZz4mJiBibG9iRmlsZVBhdGhz
KTsKKyAgICBJREJWYWx1ZShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYmxvYkZpbGVQYXRocyk7CiAKICAgICB2b2lkIHNldEFzSXNvbGF0ZWRDb3B5KGNv
bnN0IElEQlZhbHVlJik7CiAgICAgSURCVmFsdWUgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKICAg
ICBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YTsgfQogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcygpIGNvbnN0IHsgcmV0dXJu
IG1fYmxvYlVSTHM7IH0KKyAgICBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKCkgY29u
c3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxv
YkZpbGVQYXRocygpIGNvbnN0IHsgcmV0dXJuIG1fYmxvYkZpbGVQYXRoczsgfQogCiAgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtNTUs
NiArNTgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFRocmVhZFNhZmVEYXRhQnVmZmVyIG1f
ZGF0YTsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Jsb2JVUkxzOworICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYkZpbGVQYXRoczsKIH07CiAK
QEAgLTY0LDYgKzY4LDcgQEAgdm9pZCBJREJWYWx1ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IAogewogICAgIGVuY29kZXIgPDwgbV9kYXRhOwogICAgIGVuY29kZXIgPDwgbV9ibG9iVVJMczsK
KyAgICBlbmNvZGVyIDw8IG1fc2Vzc2lvbklEOwogICAgIGVuY29kZXIgPDwgbV9ibG9iRmlsZVBh
dGhzOwogfQogCkBAIC03Nyw2ICs4Miw5IEBAIHN0ZDo6b3B0aW9uYWw8SURCVmFsdWU+IElEQlZh
bHVlOjpkZWNvZGUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2Jsb2JVUkxzKSkK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1fc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fYmxvYkZpbGVQYXRocykpCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlJbmRleEN1cnNvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcAkocmV2
aXNpb24gMjM4NTQ1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUluZGV4Q3Vyc29yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCB2
b2lkIE1lbW9yeUluZGV4Q3Vyc29yOjpjdXJyZW50RGF0YShJREJHCiAgICAgaWYgKG1faW5mby5j
dXJzb3JUeXBlKCkgPT0gSW5kZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlPbmx5KQogICAgICAgICBn
ZXRSZXN1bHQgPSB7IG1fY3VycmVudEtleSwgbV9jdXJyZW50UHJpbWFyeUtleSB9OwogICAgIGVs
c2UgewotICAgICAgICBJREJWYWx1ZSB2YWx1ZSA9IHsgbV9pbmRleC5vYmplY3RTdG9yZSgpLnZh
bHVlRm9yS2V5KG1fY3VycmVudFByaW1hcnlLZXkpLCB7IH0sIHsgfSB9OworICAgICAgICBJREJW
YWx1ZSB2YWx1ZSA9IHsgbV9pbmRleC5vYmplY3RTdG9yZSgpLnZhbHVlRm9yS2V5KG1fY3VycmVu
dFByaW1hcnlLZXkpLCB7IH0sIHsgfSwgeyB9IH07CiAgICAgICAgIGdldFJlc3VsdCA9IHsgbV9j
dXJyZW50S2V5LCBtX2N1cnJlbnRQcmltYXJ5S2V5LCBXVEZNb3ZlKHZhbHVlKSB9OwogICAgIH0K
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZUN1cnNvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcAkocmV2aXNpb24g
MjM4NTQ1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eU9iamVjdFN0b3JlQ3Vyc29yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw3IEBA
IHZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmN1cnJlbnREYXQKICAgICBpZiAobV9pbmZv
LmN1cnNvclR5cGUoKSA9PSBJbmRleGVkREI6OkN1cnNvclR5cGU6OktleU9ubHkpCiAgICAgICAg
IGRhdGEgPSB7IG1fY3VycmVudFBvc2l0aW9uS2V5LCBtX2N1cnJlbnRQb3NpdGlvbktleSB9Owog
ICAgIGVsc2UgewotICAgICAgICBJREJWYWx1ZSB2YWx1ZSA9IHsgbV9vYmplY3RTdG9yZS52YWx1
ZUZvcktleVJhbmdlKG1fY3VycmVudFBvc2l0aW9uS2V5KSwgeyB9LCB7IH0gfTsKKyAgICAgICAg
SURCVmFsdWUgdmFsdWUgPSB7IG1fb2JqZWN0U3RvcmUudmFsdWVGb3JLZXlSYW5nZShtX2N1cnJl
bnRQb3NpdGlvbktleSksIHsgfSwgeyB9LCB7IH0gfTsKICAgICAgICAgZGF0YSA9IHsgbV9jdXJy
ZW50UG9zaXRpb25LZXksIG1fY3VycmVudFBvc2l0aW9uS2V5LCBXVEZNb3ZlKHZhbHVlKSB9Owog
ICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCShyZXZpc2lv
biAyMzg1NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQmFja2luZ1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2Niw3ICsxODY2LDcg
QEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjphZGRSZWNvcgogICAgIHJldHVybiBl
cnJvcjsKIH0KIAotSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRCbG9iUmVjb3Jk
c0Zvck9iamVjdFN0b3JlUmVjb3JkKGludDY0X3Qgb2JqZWN0U3RvcmVSZWNvcmQsIFZlY3RvcjxT
dHJpbmc+JiBibG9iVVJMcywgVmVjdG9yPFN0cmluZz4mIGJsb2JGaWxlUGF0aHMpCitJREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEJsb2JSZWNvcmRzRm9yT2JqZWN0U3RvcmVSZWNv
cmQoaW50NjRfdCBvYmplY3RTdG9yZVJlY29yZCwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBQ
QUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiYgYmxvYkZpbGVQYXRocykK
IHsKICAgICBBU1NFUlQob2JqZWN0U3RvcmVSZWNvcmQpOwogCkBAIC0xOTE2LDYgKzE5MTYsNyBA
QCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEJsb2JSCiAgICAgICAgIFN0cmlu
ZyBmaWxlTmFtZSA9IHNxbC0+Z2V0Q29sdW1uVGV4dCgwKTsKICAgICAgICAgYmxvYkZpbGVQYXRo
cy5hcHBlbmQoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlRGly
ZWN0b3J5LCBmaWxlTmFtZSkpOwogICAgIH0KKyAgICBzZXNzaW9uSUQgPSBtX2lkZW50aWZpZXIu
c2Vzc2lvbklEKCk7CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQpAQCAtMjA0MSwxMyAr
MjA0MiwxNCBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yCiAKICAg
ICBBU1NFUlQocmVjb3JkSUQpOwogICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzLCBibG9iRmls
ZVBhdGhzOwotICAgIGF1dG8gZXJyb3IgPSBnZXRCbG9iUmVjb3Jkc0Zvck9iamVjdFN0b3JlUmVj
b3JkKHJlY29yZElELCBibG9iVVJMcywgYmxvYkZpbGVQYXRocyk7CisgICAgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEOworICAgIGF1dG8gZXJyb3IgPSBnZXRCbG9iUmVjb3Jkc0Zvck9iamVjdFN0
b3JlUmVjb3JkKHJlY29yZElELCBibG9iVVJMcywgc2Vzc2lvbklELCBibG9iRmlsZVBhdGhzKTsK
ICAgICBBU1NFUlQoYmxvYlVSTHMuc2l6ZSgpID09IGJsb2JGaWxlUGF0aHMuc2l6ZSgpKTsKIAog
ICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBlcnJvcjsKIAotICAgIHJl
c3VsdFZhbHVlID0geyB7IHJlc3VsdEJ1ZmZlciwgV1RGTW92ZShibG9iVVJMcyksIFdURk1vdmUo
YmxvYkZpbGVQYXRocykgfSB9OworICAgIHJlc3VsdFZhbHVlID0geyB7IHJlc3VsdEJ1ZmZlciwg
V1RGTW92ZShibG9iVVJMcyksIHNlc3Npb25JRCwgV1RGTW92ZShibG9iRmlsZVBhdGhzKSB9IH07
CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIApAQCAtMjE1MSwxMyArMjE1MywxNCBAQCBJ
REJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldEFsbE9iCiAKICAgICAgICAgICAgIEFT
U0VSVChyZWNvcmRJRCk7CiAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBibG9iVVJMcywgYmxv
YkZpbGVQYXRoczsKLSAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRCbG9iUmVjb3Jkc0Zvck9i
amVjdFN0b3JlUmVjb3JkKHJlY29yZElELCBibG9iVVJMcywgYmxvYkZpbGVQYXRocyk7CisgICAg
ICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgICAgICAgICBhdXRvIGVycm9y
ID0gZ2V0QmxvYlJlY29yZHNGb3JPYmplY3RTdG9yZVJlY29yZChyZWNvcmRJRCwgYmxvYlVSTHMs
IHNlc3Npb25JRCwgYmxvYkZpbGVQYXRocyk7CiAgICAgICAgICAgICBBU1NFUlQoYmxvYlVSTHMu
c2l6ZSgpID09IGJsb2JGaWxlUGF0aHMuc2l6ZSgpKTsKIAogICAgICAgICAgICAgaWYgKCFlcnJv
ci5pc051bGwoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CiAKLSAgICAgICAgICAg
IHJlc3VsdC5hZGRWYWx1ZSh7IHJlc3VsdEJ1ZmZlciwgV1RGTW92ZShibG9iVVJMcyksIFdURk1v
dmUoYmxvYkZpbGVQYXRocykgfSk7CisgICAgICAgICAgICByZXN1bHQuYWRkVmFsdWUoeyByZXN1
bHRCdWZmZXIsIFdURk1vdmUoYmxvYlVSTHMpLCBzZXNzaW9uSUQsIFdURk1vdmUoYmxvYkZpbGVQ
YXRocykgfSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4g
a2V5RGF0YTsKICAgICAgICAgICAgIElEQktleURhdGEga2V5OwpAQCAtMjMyMSwxMyArMjMyNCwx
NCBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlCiAKICAgICBpbnQ2
NF90IHJlY29yZElEID0gc3FsLT5nZXRDb2x1bW5JbnQ2NCgyKTsKICAgICBWZWN0b3I8U3RyaW5n
PiBibG9iVVJMcywgYmxvYkZpbGVQYXRoczsKLSAgICBhdXRvIGVycm9yID0gZ2V0QmxvYlJlY29y
ZHNGb3JPYmplY3RTdG9yZVJlY29yZChyZWNvcmRJRCwgYmxvYlVSTHMsIGJsb2JGaWxlUGF0aHMp
OworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBhdXRvIGVycm9yID0gZ2V0Qmxv
YlJlY29yZHNGb3JPYmplY3RTdG9yZVJlY29yZChyZWNvcmRJRCwgYmxvYlVSTHMsIHNlc3Npb25J
RCwgYmxvYkZpbGVQYXRocyk7CiAgICAgQVNTRVJUKGJsb2JVUkxzLnNpemUoKSA9PSBibG9iRmls
ZVBhdGhzLnNpemUoKSk7CiAKICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4gZXJyb3I7CiAKLSAgICBnZXRSZXN1bHQgPSB7IHsgVGhyZWFkU2FmZURhdGFCdWZmZXI6OmNy
ZWF0ZShXVEZNb3ZlKGtleVZlY3RvcikpLCBXVEZNb3ZlKGJsb2JVUkxzKSwgV1RGTW92ZShibG9i
RmlsZVBhdGhzKSB9LCBvYmplY3RTdG9yZUtleSB9OworICAgIGdldFJlc3VsdCA9IHsgeyBUaHJl
YWRTYWZlRGF0YUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoa2V5VmVjdG9yKSksIFdURk1vdmUoYmxv
YlVSTHMpLCBzZXNzaW9uSUQsIFdURk1vdmUoYmxvYkZpbGVQYXRocykgfSwgb2JqZWN0U3RvcmVL
ZXkgfTsKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5oCShyZXZpc2lvbiAyMzg1NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogCiAgICAgSURCQmFja2luZ1N0b3JlVGVtcG9y
YXJ5RmlsZUhhbmRsZXImIHRlbXBvcmFyeUZpbGVIYW5kbGVyKCkgY29uc3QgeyByZXR1cm4gbV90
ZW1wb3JhcnlGaWxlSGFuZGxlcjsgfQogCi0gICAgSURCRXJyb3IgZ2V0QmxvYlJlY29yZHNGb3JP
YmplY3RTdG9yZVJlY29yZChpbnQ2NF90IG9iamVjdFN0b3JlUmVjb3JkLCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIFZlY3RvcjxTdHJpbmc+JiBibG9iRmlsZVBhdGhzKTsKKyAgICBJREJFcnJv
ciBnZXRCbG9iUmVjb3Jkc0Zvck9iamVjdFN0b3JlUmVjb3JkKGludDY0X3Qgb2JqZWN0U3RvcmVS
ZWNvcmQsIFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgUEFMOjpTZXNzaW9uSUQmLCBWZWN0b3I8
U3RyaW5nPiYgYmxvYkZpbGVQYXRocyk7CiAKICAgICBzdGF0aWMgU3RyaW5nIGRhdGFiYXNlTmFt
ZUZyb21FbmNvZGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJD
dXJzb3IuY3BwCShyZXZpc2lvbiAyMzg1NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU2
LDcgKzQ1Niw4IEBAIFNRTGl0ZUlEQkN1cnNvcjo6RmV0Y2hSZXN1bHQgU1FMaXRlSURCQ3UKICAg
ICAgICAgcmVjb3JkLnJlY29yZC5wcmltYXJ5S2V5ID0gcmVjb3JkLnJlY29yZC5rZXk7CiAKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMsIGJsb2JGaWxlUGF0aHM7Ci0gICAgICAgIGF1
dG8gZXJyb3IgPSBtX3RyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmUoKS5nZXRCbG9iUmVjb3Jkc0Zv
ck9iamVjdFN0b3JlUmVjb3JkKHJlY29yZC5yb3dJRCwgYmxvYlVSTHMsIGJsb2JGaWxlUGF0aHMp
OworICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgICAgIGF1dG8gZXJyb3Ig
PSBtX3RyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmUoKS5nZXRCbG9iUmVjb3Jkc0Zvck9iamVjdFN0
b3JlUmVjb3JkKHJlY29yZC5yb3dJRCwgYmxvYlVSTHMsIHNlc3Npb25JRCwgYmxvYkZpbGVQYXRo
cyk7CiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIExPR19FUlJP
UigiVW5hYmxlIHRvIGZldGNoIGJsb2IgcmVjb3JkcyBmcm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFu
Y2luZyBjdXJzb3IiKTsKICAgICAgICAgICAgIG1hcmtBc0Vycm9yZWQocmVjb3JkKTsKQEAgLTQ2
NCw3ICs0NjUsNyBAQCBTUUxpdGVJREJDdXJzb3I6OkZldGNoUmVzdWx0IFNRTGl0ZUlEQkN1CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAobV9jdXJzb3JUeXBlID09IEluZGV4ZWREQjo6Q3Vyc29y
VHlwZTo6S2V5QW5kVmFsdWUpCi0gICAgICAgICAgICByZWNvcmQucmVjb3JkLnZhbHVlID0gc3Rk
OjptYWtlX3VuaXF1ZTxJREJWYWx1ZT4oVGhyZWFkU2FmZURhdGFCdWZmZXI6OmNyZWF0ZShXVEZN
b3ZlKGtleURhdGEpKSwgYmxvYlVSTHMsIGJsb2JGaWxlUGF0aHMpOworICAgICAgICAgICAgcmVj
b3JkLnJlY29yZC52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8SURCVmFsdWU+KFRocmVhZFNhZmVE
YXRhQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShrZXlEYXRhKSksIGJsb2JVUkxzLCBzZXNzaW9uSUQs
IGJsb2JGaWxlUGF0aHMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghZGVzZXJpYWxpemVJ
REJLZXlEYXRhKGtleURhdGEuZGF0YSgpLCBrZXlEYXRhLnNpemUoKSwgcmVjb3JkLnJlY29yZC5w
cmltYXJ5S2V5KSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZGVzZXJpYWxp
emUgdmFsdWUgZGF0YSBmcm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFuY2luZyBpbmRleCBjdXJzb3Ii
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMjM4NTQ1KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzOSw3ICsxMDM5LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cGVyZm9ybVB1dE9yQWRkKAogICAgIH0KIAogICAgIGlmIChpbmplY3RlZFJlY29y
ZFZhbHVlLmRhdGEoKSkKLSAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+YWRkUmVjb3Jk
KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgKm9iamVjdFN0b3JlSW5mbywgdXNlZEtleSwgeyBpbmpl
Y3RlZFJlY29yZFZhbHVlLCBvcmlnaW5hbFJlY29yZFZhbHVlLmJsb2JVUkxzKCksIG9yaWdpbmFs
UmVjb3JkVmFsdWUuYmxvYkZpbGVQYXRocygpIH0pOworICAgICAgICBlcnJvciA9IG1fYmFja2lu
Z1N0b3JlLT5hZGRSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCAqb2JqZWN0U3RvcmVJbmZv
LCB1c2VkS2V5LCB7IGluamVjdGVkUmVjb3JkVmFsdWUsIG9yaWdpbmFsUmVjb3JkVmFsdWUuYmxv
YlVSTHMoKSwgb3JpZ2luYWxSZWNvcmRWYWx1ZS5zZXNzaW9uSUQoKSwgb3JpZ2luYWxSZWNvcmRW
YWx1ZS5ibG9iRmlsZVBhdGhzKCkgfSk7CiAgICAgZWxzZQogICAgICAgICBlcnJvciA9IG1fYmFj
a2luZ1N0b3JlLT5hZGRSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCAqb2JqZWN0U3RvcmVJ
bmZvLCB1c2VkS2V5LCBvcmlnaW5hbFJlY29yZFZhbHVlKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAJKHJldmlzaW9u
IDIzODU0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRp
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDMsNyArMzQzLDcgQEAgc3RhdGljIEpTVmFsdWUg
ZGVzZXJpYWxpemVJREJWYWx1ZVRvSlNWYQogCiAgICAgc3RhdGUudm0oKS5hcGlMb2NrKCkubG9j
aygpOwogICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBtZXNzYWdlUG9ydHM7Ci0gICAg
SlNWYWx1ZSByZXN1bHQgPSBzZXJpYWxpemVkVmFsdWUtPmRlc2VyaWFsaXplKHN0YXRlLCAmZ2xv
YmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIHZhbHVlLmJsb2JVUkxzKCksIHZhbHVlLmJsb2JGaWxl
UGF0aHMoKSwgU2VyaWFsaXphdGlvbkVycm9yTW9kZTo6Tm9uVGhyb3dpbmcpOworICAgIEpTVmFs
dWUgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVlLT5kZXNlcmlhbGl6ZShzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgbWVzc2FnZVBvcnRzLCB2YWx1ZS5ibG9iVVJMcygpLCB2YWx1ZS5zZXNzaW9uSUQoKSwg
dmFsdWUuYmxvYkZpbGVQYXRocygpLCBTZXJpYWxpemF0aW9uRXJyb3JNb2RlOjpOb25UaHJvd2lu
Zyk7CiAgICAgc3RhdGUudm0oKS5hcGlMb2NrKCkudW5sb2NrKCk7CiAKICAgICByZXR1cm4gcmVz
dWx0OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lvbiAyMzg1NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NDcsMTMgKzU0NywxMyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAg
ICAgICAgV2FzbU1vZHVsZUFycmF5JiB3YXNtTW9kdWxlcywKICNlbmRpZgotICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBWZWN0b3I8dWludDhfdD4mIG91dCwgU2VyaWFsaXph
dGlvbkNvbnRleHQgY29udGV4dCwgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5JiBzaGFyZWRCdWZm
ZXJzKQorICAgICAgICBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQsIFZlY3Rvcjx1aW50OF90PiYgb3V0LCBTZXJpYWxpemF0aW9uQ29udGV4
dCBjb250ZXh0LCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkmIHNoYXJlZEJ1ZmZlcnMpCiAgICAg
ewogICAgICAgICBDbG9uZVNlcmlhbGl6ZXIgc2VyaWFsaXplcihleGVjLCBtZXNzYWdlUG9ydHMs
IGFycmF5QnVmZmVycywgaW1hZ2VCaXRtYXBzLAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAg
ICAgICAgICAgIHdhc21Nb2R1bGVzLAogI2VuZGlmCi0gICAgICAgICAgICBibG9iVVJMcywgb3V0
LCBjb250ZXh0LCBzaGFyZWRCdWZmZXJzKTsKKyAgICAgICAgICAgIGJsb2JVUkxzLCBzZXNzaW9u
SUQsIG91dCwgY29udGV4dCwgc2hhcmVkQnVmZmVycyk7CiAgICAgICAgIHJldHVybiBzZXJpYWxp
emVyLnNlcmlhbGl6ZSh2YWx1ZSk7CiAgICAgfQogCkBAIC01ODAsMTAgKzU4MCwxMSBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgICAgIFdhc21Nb2R1bGVBcnJh
eSYgd2FzbU1vZHVsZXMsCiAjZW5kaWYKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+JiBibG9i
VVJMcywgVmVjdG9yPHVpbnQ4X3Q+JiBvdXQsIFNlcmlhbGl6YXRpb25Db250ZXh0IGNvbnRleHQs
IEFycmF5QnVmZmVyQ29udGVudHNBcnJheSYgc2hhcmVkQnVmZmVycykKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBWZWN0
b3I8dWludDhfdD4mIG91dCwgU2VyaWFsaXphdGlvbkNvbnRleHQgY29udGV4dCwgQXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5JiBzaGFyZWRCdWZmZXJzKQogICAgICAgICA6IENsb25lQmFzZShleGVj
KQogICAgICAgICAsIG1fYnVmZmVyKG91dCkKICAgICAgICAgLCBtX2Jsb2JVUkxzKGJsb2JVUkxz
KQorICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX2VtcHR5SWRl
bnRpZmllcihJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGVtcHR5U3RyaW5nKCkpKQogICAg
ICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgICAgICAsIG1fc2hhcmVkQnVmZmVycyhzaGFy
ZWRCdWZmZXJzKQpAQCAtMTA0Myw2ICsxMDQ0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICB3cml0ZShDcnlwdG9LZXlUYWcpOwogICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBz
ZXJpYWxpemVkS2V5OwogICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGR1bW15QmxvYlVS
THM7CisgICAgICAgICAgICAgICAgUEFMOjpTZXNzaW9uSUQgZHVtbXlTZXNzaW9uSUQ7CiAgICAg
ICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+IGR1bW15TWVzc2FnZVBvcnRz
OwogICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+IGR1bW15
QXJyYXlCdWZmZXJzOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKQEAgLTEwNTMsNyArMTA1NSw3
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAgICAgICAgICAg
ICBkdW1teU1vZHVsZXMsCiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgZHVtbXlCbG9iVVJM
cywgc2VyaWFsaXplZEtleSwgU2VyaWFsaXphdGlvbkNvbnRleHQ6OkRlZmF1bHQsIGR1bW15U2hh
cmVkQnVmZmVycyk7CisgICAgICAgICAgICAgICAgICAgIGR1bW15QmxvYlVSTHMsIGR1bW15U2Vz
c2lvbklELCBzZXJpYWxpemVkS2V5LCBTZXJpYWxpemF0aW9uQ29udGV4dDo6RGVmYXVsdCwgZHVt
bXlTaGFyZWRCdWZmZXJzKTsKICAgICAgICAgICAgICAgICByYXdLZXlTZXJpYWxpemVyLndyaXRl
KGtleSk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHdyYXBwZWRLZXk7CiAgICAg
ICAgICAgICAgICAgaWYgKCF3cmFwQ3J5cHRvS2V5KG1fZXhlYywgc2VyaWFsaXplZEtleSwgd3Jh
cHBlZEtleSkpCkBAIC0xNDUyLDYgKzE0NTQsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPHVp
bnQ4X3Q+JiBtX2J1ZmZlcjsKICAgICBWZWN0b3I8U3RyaW5nPiYgbV9ibG9iVVJMczsKKyAgICBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBPYmplY3RQb29sIG1fb2JqZWN0UG9vbDsK
ICAgICBPYmplY3RQb29sIG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHM7CiAgICAgT2JqZWN0UG9v
bCBtX3RyYW5zZmVycmVkQXJyYXlCdWZmZXJzOwpAQCAtMTczNSw3ICsxNzM4LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gc3RyOwogICAgIH0KIAotICAgIHN0YXRpYyBEZXNlcmlhbGl6YXRp
b25SZXN1bHQgZGVzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0
cywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4m
JiBpbWFnZUJ1ZmZlcnMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiBibG9iRmlsZVBhdGhzLCBBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMKKyAgICBzdGF0aWMgRGVzZXJpYWxp
emF0aW9uUmVzdWx0IGRlc2VyaWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdl
UG9ydHMsIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9v
bD4+JiYgaW1hZ2VCdWZmZXJzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIGFycmF5QnVmZmVy
Q29udGVudHNBcnJheSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29u
c3QgVmVjdG9yPFN0cmluZz4gYmxvYkZpbGVQYXRocywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5
KiBzaGFyZWRCdWZmZXJzCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIFdhc21N
b2R1bGVBcnJheSogd2FzbU1vZHVsZXMKICNlbmRpZgpAQCAtMTc0Myw3ICsxNzQ2LDcgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgaWYgKCFidWZmZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV9wYWlyKGpzTnVsbCgpLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VW5z
cGVjaWZpZWRFcnJvcik7Ci0gICAgICAgIENsb25lRGVzZXJpYWxpemVyIGRlc2VyaWFsaXplcihl
eGVjLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5
LCBidWZmZXIsIGJsb2JVUkxzLCBibG9iRmlsZVBhdGhzLCBzaGFyZWRCdWZmZXJzLCBXVEZNb3Zl
KGltYWdlQnVmZmVycykKKyAgICAgICAgQ2xvbmVEZXNlcmlhbGl6ZXIgZGVzZXJpYWxpemVyKGV4
ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXks
IGJ1ZmZlciwgYmxvYlVSTHMsIHNlc3Npb25JRCwgYmxvYkZpbGVQYXRocywgc2hhcmVkQnVmZmVy
cywgV1RGTW92ZShpbWFnZUJ1ZmZlcnMpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAg
ICAgICAgLCB3YXNtTW9kdWxlcwogI2VuZGlmCkBAIC0xODE3LDcgKzE4MjAsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgbV92ZXJzaW9uID0gMHhGRkZGRkZGRjsKICAgICB9CiAKLSAgICBDbG9u
ZURlc2VyaWFsaXplcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkqIGFycmF5QnVmZmVyQ29udGVudHMsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYnVmZmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+IGJsb2JGaWxlUGF0aHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogc2hh
cmVkQnVmZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+
LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMKKyAgICBDbG9uZURlc2VyaWFsaXplcihFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8
TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIGFy
cmF5QnVmZmVyQ29udGVudHMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+IGJsb2JGaWxlUGF0aHMsIEFycmF5QnVmZmVyQ29udGVudHNB
cnJheSogc2hhcmVkQnVmZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CiAgICAgICAgICwgV2FzbU1vZHVsZUFycmF5KiB3YXNtTW9kdWxlcwogI2VuZGlmCkBAIC0xODMy
LDYgKzE4MzUsNyBAQCBwcml2YXRlOgogICAgICAgICAsIG1fYXJyYXlCdWZmZXJDb250ZW50cyhh
cnJheUJ1ZmZlckNvbnRlbnRzKQogICAgICAgICAsIG1fYXJyYXlCdWZmZXJzKGFycmF5QnVmZmVy
Q29udGVudHMgPyBhcnJheUJ1ZmZlckNvbnRlbnRzLT5zaXplKCkgOiAwKQogICAgICAgICAsIG1f
YmxvYlVSTHMoYmxvYlVSTHMpCisgICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAg
ICAgICAsIG1fYmxvYkZpbGVQYXRocyhibG9iRmlsZVBhdGhzKQogICAgICAgICAsIG1fc2hhcmVk
QnVmZmVycyhzaGFyZWRCdWZmZXJzKQogICAgICAgICAsIG1faW1hZ2VCdWZmZXJzKFdURk1vdmUo
aW1hZ2VCdWZmZXJzKSkKQEAgLTMwMzgsNiArMzA0Miw3IEBAIHByaXZhdGU6CiAgICAgQXJyYXlC
dWZmZXJDb250ZW50c0FycmF5KiBtX2FycmF5QnVmZmVyQ29udGVudHM7CiAgICAgVmVjdG9yPFJl
ZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4gbV9hcnJheUJ1ZmZlcnM7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gbV9ibG9iVVJMczsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBWZWN0
b3I8U3RyaW5nPiBtX2Jsb2JGaWxlUGF0aHM7CiAgICAgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5
KiBtX3NoYXJlZEJ1ZmZlcnM7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+LCBib29sPj4gbV9pbWFnZUJ1ZmZlcnM7CkBAIC0zMjU4LDcgKzMyNjMsNyBA
QCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWCiB7CiB9CiAKLVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYm
IGJ1ZmZlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8
QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXksIHN0ZDo6
dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlckNvbnRlbnRz
QXJyYXksIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9v
bD4+JiYgaW1hZ2VCdWZmZXJzCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgIHN0ZDo6dW5pcXVlX3B0
cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSwgc3Rk
Ojp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVyQ29udGVu
dHNBcnJheSwgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBi
b29sPj4mJiBpbWFnZUJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwg
c3RkOjp1bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4gd2FzbU1vZHVsZXNBcnJheQogI2VuZGlm
CkBAIC0zMjcwLDYgKzMyNzUsNyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRT
Y3JpcHRWCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICwgbV93YXNtTW9kdWxlc0FycmF5
KFdURk1vdmUod2FzbU1vZHVsZXNBcnJheSkpCiAjZW5kaWYKKyAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKIHsKICAgICAvLyBTaW5jZSB0aGlzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpcyBt
ZWFudCB0byBiZSBwYXNzZWQgYmV0d2VlbiB0aHJlYWRzLCBpdHMgU3RyaW5nIGRhdGEgbWVtYmVy
cwogICAgIC8vIG5lZWQgdG8gYmUgaXNvbGF0ZWRDb3BpZXMgc28gd2UgZG9uJ3QgcnVuIGludG8g
dGhyZWFkIHNhZmV0eSBpc3N1ZXMgZm9yIHRoZSBTdHJpbmdJbXBscy4KQEAgLTMzNTIsNiArMzM1
OCw3IEBAIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWQKIHsKICAgICBW
ZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzOworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4gZHVtbXlNZXNzYWdlUG9ydHM7CiAgICAgVmVjdG9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IGR1
bW15SW1hZ2VCaXRtYXBzOwogICAgIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+IGR1
bW15QXJyYXlCdWZmZXJzOwpAQCAtMzM2Myw3ICszMzcwLDcgQEAgUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gU2VyaWFsaXplZAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAg
ZHVtbXlNb2R1bGVzLAogI2VuZGlmCi0gICAgICAgIGJsb2JVUkxzLCBidWZmZXIsIFNlcmlhbGl6
YXRpb25Db250ZXh0OjpEZWZhdWx0LCBkdW1teVNoYXJlZEJ1ZmZlcnMpOworICAgICAgICBibG9i
VVJMcywgc2Vzc2lvbklELCBidWZmZXIsIFNlcmlhbGl6YXRpb25Db250ZXh0OjpEZWZhdWx0LCBk
dW1teVNoYXJlZEJ1ZmZlcnMpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIEFTU0VS
VF9XSVRIX01FU1NBR0UoZHVtbXlNb2R1bGVzLmlzRW1wdHkoKSwgIldhc206Ok1vZHVsZSBzZXJp
YWxpemF0aW9uIGlzIG9ubHkgYWxsb3dlZCBpbiB0aGUgcG9zdE1lc3NhZ2UgY29udGV4dCIpOwpA
QCAtMzM3NSw3ICszMzgyLDcgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFs
aXplZAogICAgIGlmIChjb2RlICE9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpTdWNjZXNzZnVs
bHlDb21wbGV0ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMs
IG51bGxwdHIsIG51bGxwdHIsIHsgfQorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGJ1ZmZlciksIGJsb2JVUkxzLCBzZXNzaW9uSUQsIG51bGxw
dHIsIG51bGxwdHIsIHsgfQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBudWxs
cHRyCiAjZW5kaWYKQEAgLTM0MzEsNiArMzQzOCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+PiAKIAogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CiAgICAgVmVj
dG9yPFN0cmluZz4gYmxvYlVSTHM7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBXYXNtTW9kdWxlQXJyYXkgd2FzbU1vZHVsZXM7CiAj
ZW5kaWYKQEAgLTM0MzksNyArMzQ0Nyw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+PiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIHdhc21Nb2R1bGVz
LCAKICNlbmRpZgotICAgICAgICBibG9iVVJMcywgYnVmZmVyLCBjb250ZXh0LCAqc2hhcmVkQnVm
ZmVycyk7CisgICAgICAgIGJsb2JVUkxzLCBzZXNzaW9uSUQsIGJ1ZmZlciwgY29udGV4dCwgKnNo
YXJlZEJ1ZmZlcnMpOwogCiAgICAgaWYgKGNvZGUgIT0gU2VyaWFsaXphdGlvblJldHVybkNvZGU6
OlN1Y2Nlc3NmdWxseUNvbXBsZXRlZCkKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbkZvclNlcmlh
bGl6YXRpb25GYWlsdXJlKGNvZGUpOwpAQCAtMzQ1MCw3ICszNDU4LDcgQEAgRXhjZXB0aW9uT3I8
UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IAogCiAgICAgYXV0byBpbWFnZUJ1ZmZlcnMgPSBJ
bWFnZUJpdG1hcDo6ZGV0YWNoQml0bWFwcyhXVEZNb3ZlKGltYWdlQml0bWFwcykpOwogCi0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVy
KSwgYmxvYlVSTHMsIGFycmF5QnVmZmVyQ29udGVudHNBcnJheS5yZWxlYXNlUmV0dXJuVmFsdWUo
KSwgY29udGV4dCA9PSBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UgPyBX
VEZNb3ZlKHNoYXJlZEJ1ZmZlcnMpIDogbnVsbHB0ciwgV1RGTW92ZShpbWFnZUJ1ZmZlcnMpCisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVm
ZmVyKSwgYmxvYlVSTHMsIHNlc3Npb25JRCwgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpLCBjb250ZXh0ID09IFNlcmlhbGl6YXRpb25Db250ZXh0OjpXb3JrZXJQ
b3N0TWVzc2FnZSA/IFdURk1vdmUoc2hhcmVkQnVmZmVycykgOiBudWxscHRyLCBXVEZNb3ZlKGlt
YWdlQnVmZmVycykKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICAgICAgICAgLCBz
dGQ6Om1ha2VfdW5pcXVlPFdhc21Nb2R1bGVBcnJheT4od2FzbU1vZHVsZXMpCiAjZW5kaWYKQEAg
LTM0OTgsMTIgKzM1MDYsMTMgQEAgSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2Vy
aWFsaQogewogICAgIFZlY3RvcjxTdHJpbmc+IGR1bW15QmxvYnM7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gZHVtbXlQYXRoczsKLSAgICByZXR1cm4gZGVzZXJpYWxpemUoZXhlYywgZ2xvYmFsT2JqZWN0
LCBtZXNzYWdlUG9ydHMsIGR1bW15QmxvYnMsIGR1bW15UGF0aHMsIHRocm93RXhjZXB0aW9ucyk7
CisgICAgUEFMOjpTZXNzaW9uSUQgZHVtbXlTZXNzaW9uSUQ7CisgICAgcmV0dXJuIGRlc2VyaWFs
aXplKGV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBkdW1teUJsb2JzLCBkdW1teVNl
c3Npb25JRCwgZHVtbXlQYXRocywgdGhyb3dFeGNlcHRpb25zKTsKIH0KIAotSlNWYWx1ZSBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNTdGF0ZSYgZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBt
ZXNzYWdlUG9ydHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGJsb2JGaWxlUGF0aHMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNl
cHRpb25zKQorSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNT
dGF0ZSYgZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJl
ZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JGaWxlUGF0aHMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRp
b25zKQogewotICAgIERlc2VyaWFsaXphdGlvblJlc3VsdCByZXN1bHQgPSBDbG9uZURlc2VyaWFs
aXplcjo6ZGVzZXJpYWxpemUoJmV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBXVEZN
b3ZlKG1faW1hZ2VCdWZmZXJzKSwgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkuZ2V0KCksIG1f
ZGF0YSwgYmxvYlVSTHMsIGJsb2JGaWxlUGF0aHMsIG1fc2hhcmVkQnVmZmVyQ29udGVudHNBcnJh
eS5nZXQoKQorICAgIERlc2VyaWFsaXphdGlvblJlc3VsdCByZXN1bHQgPSBDbG9uZURlc2VyaWFs
aXplcjo6ZGVzZXJpYWxpemUoJmV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBXVEZN
b3ZlKG1faW1hZ2VCdWZmZXJzKSwgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkuZ2V0KCksIG1f
ZGF0YSwgYmxvYlVSTHMsIHNlc3Npb25JRCwgYmxvYkZpbGVQYXRocywgbV9zaGFyZWRCdWZmZXJD
b250ZW50c0FycmF5LmdldCgpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIG1f
d2FzbU1vZHVsZXNBcnJheS5nZXQoKQogI2VuZGlmCkBAIC0zNTUyLDEzICszNTYxLDE0IEBAIFZl
Y3RvcjxTdHJpbmc+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YmwKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi12b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6d3JpdGVCbG9ic1RvRGlza0Zvcklu
ZGV4ZWREQihXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IElEQlZhbHVlJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6d3JpdGVCbG9ic1RvRGlza0Zv
ckluZGV4ZWREQihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElEQlZhbHVlJiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGhh
c0Jsb2JVUkxzKCkpOwogCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJvdGVj
dGVkVGhpcyh0aGlzKTsKLSAgICBibG9iUmVnaXN0cnkoKS53cml0ZUJsb2JzVG9UZW1wb3JhcnlG
aWxlcyhtX2Jsb2JVUkxzLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKGF1
dG8mIGJsb2JGaWxlUGF0aHMpIHsKKyAgICAvLyBGSVhNRTogQWRkIG1fc2Vzc2lvbklEIGFzIGEg
cGFyYW1ldGVyIGhlcmUuCisgICAgYmxvYlJlZ2lzdHJ5KCkud3JpdGVCbG9ic1RvVGVtcG9yYXJ5
RmlsZXMobV9ibG9iVVJMcywgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHRoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSAo
YXV0byYgYmxvYkZpbGVQYXRocykgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKICAgICAgICAgaWYgKGJsb2JGaWxlUGF0aHMuaXNFbXB0eSgpKSB7CkBAIC0zNTcw
LDcgKzM1ODAsNyBAQCB2b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6d3JpdGVCbG9ic1RvCiAK
ICAgICAgICAgQVNTRVJUKG1fYmxvYlVSTHMuc2l6ZSgpID09IGJsb2JGaWxlUGF0aHMuc2l6ZSgp
KTsKICAgICAgICAgCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgKnRoaXMsIG1fYmxvYlVS
THMsIGJsb2JGaWxlUGF0aHMgfSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgKnRoaXMs
IG1fYmxvYlVSTHMsIG1fc2Vzc2lvbklELCBibG9iRmlsZVBhdGhzIH0pOwogICAgIH0pOwogfQog
CkBAIC0zNTg0LDcgKzM1OTQsNyBAQCBJREJWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Ondy
aXRlQmxvCiAgICAgbG9jay5sb2NrKCk7CiAKICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3RoaXMsIGNvbmRpdGlvblB0ciA9ICZjb25kaXRpb24sIHZhbHVlUHRyID0gJnZhbHVlXSB7Ci0g
ICAgICAgIHdyaXRlQmxvYnNUb0Rpc2tGb3JJbmRleGVkREIoW2NvbmRpdGlvblB0ciwgdmFsdWVQ
dHJdKGNvbnN0IElEQlZhbHVlJiByZXN1bHQpIHsKKyAgICAgICAgd3JpdGVCbG9ic1RvRGlza0Zv
ckluZGV4ZWREQihbY29uZGl0aW9uUHRyLCB2YWx1ZVB0cl0oSURCVmFsdWUmJiByZXN1bHQpIHsK
ICAgICAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgICAgICB2YWx1ZVB0
ci0+c2V0QXNJc29sYXRlZENvcHkocmVzdWx0KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDIzODU0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL0dpZ2FjYWdlLmg+CkBAIC03Nyw3ICs3OCw3IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNT
dGF0ZSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBTZXJpYWxpemF0aW9uRXJyb3JNb2RlID0gU2Vy
aWFsaXphdGlvbkVycm9yTW9kZTo6VGhyb3dpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6
SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mLCBTZXJpYWxpemF0aW9uRXJyb3JN
b2RlID0gU2VyaWFsaXphdGlvbkVycm9yTW9kZTo6VGhyb3dpbmcpOwotICAgIEpTQzo6SlNWYWx1
ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25z
dCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxv
YlVSTHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iRmlsZVBhdGhzLCBTZXJpYWxpemF0aW9u
RXJyb3JNb2RlID0gU2VyaWFsaXphdGlvbkVycm9yTW9kZTo6VGhyb3dpbmcpOworICAgIEpTQzo6
SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBjb25zdCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGJsb2JGaWxlUGF0aHMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgPSBTZXJpYWxpemF0aW9uRXJy
b3JNb2RlOjpUaHJvd2luZyk7CiAKICAgICBzdGF0aWMgdWludDMyX3Qgd2lyZUZvcm1hdFZlcnNp
b24oKTsKIApAQCAtOTIsNyArOTMsOCBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKICAgICBWZWN0b3I8U3RyaW5nPiBibG9iVVJMc0lzb2xhdGVkQ29weSgpIGNvbnN0
OwotICAgIHZvaWQgd3JpdGVCbG9ic1RvRGlza0ZvckluZGV4ZWREQihXVEY6OkZ1bmN0aW9uPHZv
aWQgKGNvbnN0IElEQlZhbHVlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQor
ICAgIHZvaWQgd3JpdGVCbG9ic1RvRGlza0ZvckluZGV4ZWREQihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKElEQlZhbHVlJiYpPiYmKTsKICAgICBJREJWYWx1ZSB3cml0ZUJsb2JzVG9EaXNrRm9ySW5k
ZXhlZERCU3luY2hyb25vdXNseSgpOwogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCkBAIC0xMTAsNyArMTEyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VY
UE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hh
cj4mJiwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4pOwotICAgIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0Fy
cmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVm
ZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29s
Pj4mJiBpbWFnZUJ1ZmZlcnMKKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2ln
bmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgUEFMOjpT
ZXNzaW9uSUQmLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3Rk
Ojp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVj
dG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4mJiBpbWFn
ZUJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1bmlxdWVf
cHRyPFdhc21Nb2R1bGVBcnJheT4KICNlbmRpZgpAQCAtMTI0LDYgKzEyNiw3IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4gbV93YXNtTW9kdWxlc0FycmF5
OwogI2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gbV9ibG9iVVJMczsKKyAgICBQQUw6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cg==
</data>
<flag name="review"
          id="372904"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>