<?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>190610</bug_id>
          
          <creation_ts>2018-10-15 16:43:55 -0700</creation_ts>
          <short_desc>Modernize BackForwardClient.h</short_desc>
          <delta_ts>2018-10-16 08:35:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1469541</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-15 16:43:55 -0700</bug_when>
    <thetext>Modernize BackForwardClient.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469543</commentid>
    <comment_count>1</comment_count>
      <attachid>352404</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-15 16:44:35 -0700</bug_when>
    <thetext>Created attachment 352404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469544</commentid>
    <comment_count>2</comment_count>
      <attachid>352404</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-15 16:47:38 -0700</bug_when>
    <thetext>Comment on attachment 352404
Patch

r=me if the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469550</commentid>
    <comment_count>3</comment_count>
      <attachid>352408</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-15 17:11:23 -0700</bug_when>
    <thetext>Created attachment 352408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469553</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-15 17:15:03 -0700</bug_when>
    <thetext>Windows EWS is too slow.  I&apos;ll watch the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469554</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-15 17:19:10 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/237157/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469555</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-15 17:20:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/45290681&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469579</commentid>
    <comment_count>7</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-10-15 17:53:55 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Windows EWS is too slow.  I&apos;ll watch the bots.

WinCairo didn&apos;t like this change either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469714</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-16 08:35:49 -0700</bug_when>
    <thetext>I fixed the build last night.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352404</attachid>
            <date>2018-10-15 16:44:35 -0700</date>
            <delta_ts>2018-10-15 17:11:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190610-20181015164434.patch</filename>
            <type>text/plain</type>
            <size>29753</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE4LTEwLTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXpl
IEJhY2tGb3J3YXJkQ2xpZW50LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tG
b3J3YXJkQ2xpZW50Lmg6CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Y2xpZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Y2xpZW50IGNvbnN0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSk6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0
eUNsaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRW1wdHlGcmFtZU5ldHdvcmtpbmdD
b250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdlZCk6CisKIDIwMTgtMTAtMTUgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2Vk
IFdlYlZpZXcuX2dsb2JhbEhpc3RvcnlJdGVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw5ICsxNzQsNyBAQCB2b2lkIHJlbW92ZVN1YnJlc291
cmNlVVJMQXR0cmlidXRlcyhSZWY8CiAKIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdl
Rm9yU2FuaXRpemluZ1dlYkNvbnRlbnQoKQogewotICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VD
b25maWd1cmF0aW9uKGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksIFNvY2tldFByb3ZpZGVyOjpj
cmVhdGUoKSwgTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgpLCBDYWNoZVN0b3JhZ2VQcm92aWRl
cjo6Y3JlYXRlKCkpOwotCi0gICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRp
b24pOworICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBwYWdlQ29uZmlndXJhdGlvbldpdGhF
bXB0eUNsaWVudHMoKTsKICAgICAKICAgICBhdXRvIHBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBh
Z2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNl
dE1lZGlhRW5hYmxlZChmYWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNr
Rm9yd2FyZENsaWVudC5oCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0JhY2tGb3J3YXJkQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDggQEAg
cHVibGljOiAKICAgICB2aXJ0dWFsIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0qKSA9IDA7CiAg
ICAgICAgIAogICAgIHZpcnR1YWwgSGlzdG9yeUl0ZW0qIGl0ZW1BdEluZGV4KGludCkgPSAwOwot
ICAgIHZpcnR1YWwgaW50IGJhY2tMaXN0Q291bnQoKSA9IDA7Ci0gICAgdmlydHVhbCBpbnQgZm9y
d2FyZExpc3RDb3VudCgpID0gMDsKKyAgICB2aXJ0dWFsIGludCBiYWNrTGlzdENvdW50KCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgaW50IGZvcndhcmRMaXN0Q291bnQoKSBjb25zdCA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCShyZXZpc2lvbiAyMzcxNDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSw3ICs0MSw4IEBAIHB1YmxpYzoKICAgICBCYWNrRm9yd2FyZENvbnRyb2xs
ZXIoUGFnZSYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJik7CiAgICAgfkJhY2tGb3J3YXJkQ29u
dHJvbGxlcigpOwogCi0gICAgQmFja0ZvcndhcmRDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgQmFja0ZvcndhcmRDbGllbnQmIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgY29uc3QgQmFja0ZvcndhcmRDbGllbnQmIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGNhbkdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIGNvbnN0OwogICAgIHZv
aWQgZ29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSk7CkBAIC02Niw3ICs2Nyw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgUmVmUHRyPEJhY2tGb3J3YXJk
Q2xpZW50PiBtX2NsaWVudDsKKyAgICBSZWY8QmFja0ZvcndhcmRDbGllbnQ+IG1fY2xpZW50Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjM3MTQ4KQorKysgU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03MDQsMTMgKzcwNCw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkK
ICAgICBpZiAobV9vdmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJuIG1fb3ZlcmxheVBhZ2UuZ2V0
KCk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbigKLSAgICAgICAg
Y3JlYXRlRW1wdHlFZGl0b3JDbGllbnQoKSwKLSAgICAgICAgU29ja2V0UHJvdmlkZXI6OmNyZWF0
ZSgpLAotICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCi0gICAgICAgIENhY2hl
U3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKQotICAgICk7Ci0gICAgZmlsbFdpdGhFbXB0eUNsaWVu
dHMocGFnZUNvbmZpZ3VyYXRpb24pOworICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBwYWdl
Q29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoKTsKICAgICBtX292ZXJsYXlQYWdlID0gc3Rk
OjptYWtlX3VuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiAgICAgbV9v
dmVybGF5UGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IobV9wYWdlLmRldmljZVNjYWxlRmFjdG9y
KCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2aXNp
b24gMjM3MTQ4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDbGllbnQuaCIKKyNpbmNsdWRlICJD
YWNoZVN0b3JhZ2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyLmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAj
aW5jbHVkZSAiSW5Qcm9jZXNzSURCU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCisjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3Vy
YXRpb24uaCIKQEAgLTU1LDYgKzU3LDcgQEAKICNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtODIsOCArODUsOCBAQCBjbGFzcyBFbXB0eUJh
Y2tGb3J3YXJkQ2xpZW50IGZpbmFsIDogcHViCiAgICAgdm9pZCBhZGRJdGVtKFJlZjxIaXN0b3J5
SXRlbT4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSopIGZpbmFs
IHsgfQogICAgIEhpc3RvcnlJdGVtKiBpdGVtQXRJbmRleChpbnQpIGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KLSAgICBpbnQgYmFja0xpc3RDb3VudCgpIGZpbmFsIHsgcmV0dXJuIDA7IH0KLSAg
ICBpbnQgZm9yd2FyZExpc3RDb3VudCgpIGZpbmFsIHsgcmV0dXJuIDA7IH0KKyAgICBpbnQgYmFj
a0xpc3RDb3VudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KKyAgICBpbnQgZm9yd2FyZExp
c3RDb3VudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICB2b2lkIGNsb3NlKCkgZmlu
YWwgeyB9CiB9OwogCkBAIC00OTcsMTEgKzUwMCw2IEBAIFJlZjxGcmFtZU5ldHdvcmtpbmdDb250
ZXh0PiBFbXB0eUZyYW1lTG8KICAgICByZXR1cm4gRW1wdHlGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUoKTsKIH0KIAotUmVmPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZUVtcHR5
RnJhbWVOZXR3b3JraW5nQ29udGV4dCgpCi17Ci0gICAgcmV0dXJuIEVtcHR5RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKCk7Ci19Ci0KIHZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OkVtcHR5
VGV4dENoZWNrZXJDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFRleHRDaGVja2luZ1Jl
cXVlc3QmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKIHsKIH0KQEAgLTUzNCw4ICs1MzIsMTYg
QEAgUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbQogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7CiB9CiAKLXZvaWQgZmlsbFdpdGhF
bXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQorUGFnZUNv
bmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKCkKIHsKKyAgICBQ
YWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8RW1wdHlFZGl0b3JDbGllbnQ+KCksCisgICAgICAgIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUo
KSwKKyAgICAgICAgTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgpLAorICAgICAgICBDYWNoZVN0
b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCisgICAgICAgIGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNr
Rm9yd2FyZENsaWVudCkKKyAgICB9OworCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5
Q2hyb21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSAmZHVtbXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAKQEAgLTU2Myw3ICs1Njks
NiBAQCB2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiBkdW1teVByb2dyZXNz
VHJhY2tlckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVzc1RyYWNrZXJDbGll
bnQgPSAmZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQuZ2V0KCk7CiAKLSAgICBwYWdlQ29uZmln
dXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2Fy
ZENsaWVudCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
PSBzdGQ6Om1ha2VfdW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KCk7CiAKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSA9IEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpAQCAtNTcyLDExICs1NzcsOCBAQCB2b2lk
IGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92
aWRlciA9IGFkb3B0UmVmKCpuZXcgRW1wdHlVc2VyQ29udGVudFByb3ZpZGVyKTsKICAgICBwYWdl
Q29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gYWRvcHRSZWYoKm5ldyBFbXB0eVZpc2l0
ZWRMaW5rU3RvcmUpOwotfQotCi1VbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiBjcmVhdGVFbXB0eUVk
aXRvckNsaWVudCgpCi17Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8RW1wdHlFZGl0b3JDbGll
bnQ+KCk7CisgICAgCisgICAgcmV0dXJuIHBhZ2VDb25maWd1cmF0aW9uOwogfQogCiBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCYgZW1wdHlEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMywx
MSArMjAzLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQwogICAg
IFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8q
IGZpbGVuYW1lcyAqLykgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogfTsKIAotV0VCQ09SRV9F
WFBPUlQgdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlQ29uZmlndXJhdGlvbiYpOwotV0VC
Q09SRV9FWFBPUlQgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4gY3JlYXRlRW1wdHlFZGl0b3JDbGll
bnQoKTsKIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBlbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KCk7Ci0KLWNsYXNzIEVtcHR5RnJhbWVOZXR3b3JraW5nQ29udGV4dDsKLVdFQkNPUkVfRVhQ
T1JUIFJlZjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVFbXB0eUZyYW1lTmV0d29ya2lu
Z0NvbnRleHQoKTsKK1dFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1
cmF0aW9uV2l0aEVtcHR5Q2xpZW50cygpOwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJl
dmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIxNSw3ICsyMTUsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYg
cGFnZUNvbmZpCiAjZW5kaWYKICAgICAsIG1fc2V0dGluZ3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlz
KSkKICAgICAsIG1fcHJvZ3Jlc3Moc3RkOjptYWtlX3VuaXF1ZTxQcm9ncmVzc1RyYWNrZXI+KCpw
YWdlQ29uZmlndXJhdGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQpKQotICAgICwgbV9iYWNrRm9y
d2FyZENvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9yd2FyZENvbnRyb2xsZXI+KCp0
aGlzLCAqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCkpKQorICAg
ICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9yd2FyZENv
bnRyb2xsZXI+KCp0aGlzLCBXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xp
ZW50KSkpCiAgICAgLCBtX21haW5GcmFtZShGcmFtZTo6Y3JlYXRlKHRoaXMsIG51bGxwdHIsIHBh
Z2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCiAgICAgLCBtX2VkaXRv
ckNsaWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCkpCiAgICAgLCBt
X3BsdWdJbkNsaWVudChwYWdlQ29uZmlndXJhdGlvbi5wbHVnSW5DbGllbnQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAkocmV2aXNpb24gMjM3MTQ4KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDE0ICs0OCwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25m
aWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVk
aXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVS
ZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3Jh
Z2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQ
YWdlQ29uZmlndXJhdGlvbihVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwg
UmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRD
UHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4m
JiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3
YXJkQ2xpZW50KQogICAgIDogZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAg
ICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQogICAgICwgbGliV2Vi
UlRDUHJvdmlkZXIoV1RGTW92ZShsaWJXZWJSVENQcm92aWRlcikpCisgICAgLCBiYWNrRm9yd2Fy
ZENsaWVudChXVEZNb3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNhY2hlU3RvcmFnZVBy
b3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogewogfQogCiBQYWdlQ29uZmln
dXJhdGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKCkgPSBkZWZhdWx0OworUGFnZUNvbmZpZ3VyYXRp
b246OlBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpID0gZGVmYXVsdDsKIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24g
MjM3MTQ4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSw4ICs2NSw5IEBAIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogY2xh
c3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25m
aWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVm
PFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxD
YWNoZVN0b3JhZ2VQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3Vy
YXRpb24oVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBV
bmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4m
JiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNv
bmZpZ3VyYXRpb24oKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYm
KTsKIAogICAgIEFsdGVybmF0aXZlVGV4dENsaWVudCogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50IHsg
bnVsbHB0ciB9OwogICAgIENocm9tZUNsaWVudCogY2hyb21lQ2xpZW50IHsgbnVsbHB0ciB9OwpA
QCAtOTMsNyArOTQsNyBAQCBwdWJsaWM6CiAKICAgICBQbHVnSW5DbGllbnQqIHBsdWdJbkNsaWVu
dCB7IG51bGxwdHIgfTsKICAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQqIHByb2dyZXNzVHJhY2tl
ckNsaWVudCB7IG51bGxwdHIgfTsKLSAgICBSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+IGJhY2tG
b3J3YXJkQ2xpZW50OworICAgIFJlZjxCYWNrRm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRDbGll
bnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50PiB2YWxpZGF0
aW9uTWVzc2FnZUNsaWVudDsKICAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9y
TWFpbkZyYW1lIHsgbnVsbHB0ciB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudD4gZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1Mywx
MyArNDUzLDcgQEAgRW5jb2RlZERhdGFTdGF0dXMgU1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKAogICAg
ICAgICByZXR1cm4gRW5jb2RlZERhdGFTdGF0dXM6OkNvbXBsZXRlOwogCiAgICAgaWYgKGFsbERh
dGFSZWNlaXZlZCkgewotICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlv
bigKLSAgICAgICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAgICAgICAgICBT
b2NrZXRQcm92aWRlcjo6Y3JlYXRlKCksCi0gICAgICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlKCksCi0gICAgICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCkKLSAg
ICAgICAgKTsKLSAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24p
OworICAgICAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gcGFnZUNvbmZpZ3VyYXRpb25XaXRo
RW1wdHlDbGllbnRzKCk7CiAgICAgICAgIG1fY2hyb21lQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdJbWFnZUNocm9tZUNsaWVudD4odGhpcyk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9u
LmNocm9tZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50LmdldCgpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2
aXNpb24gMjM3MTU2KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMC0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIE1vZGVybml6ZSBCYWNrRm9yd2FyZENsaWVudC5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpp
bnN0YWxsU2VydmljZVdvcmtlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJh
Y2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRM
aXN0UHJveHk6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmFja0ZvcndhcmRMaXN0UHJveHk6OmJhY2tMaXN0Q291bnQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Zm9yd2FyZExpc3RDb3VudCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdW50KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmZvcndh
cmRMaXN0Q291bnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJC
YWNrRm9yd2FyZExpc3RQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExp
c3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Om1fY3B1TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpyZXN0b3JlU2Vzc2lvbkludGVybmFsKToKKwogMjAxOC0xMC0xNSAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHByZWZl
cnMtY29sb3Itc2NoZW1lIG1lZGlhIHF1ZXJ5CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJk
TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y2xlYQogICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPmNvcmVQ
YWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8
V2ViQmFja0ZvcndhcmRMaXN0UHJveHkqPihwYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+
Y2xlYXIoKTsKKyAgICBzdGF0aWNfY2FzdDxXZWJCYWNrRm9yd2FyZExpc3RQcm94eSY+KHBhZ2Ut
PmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLmNsZWFyKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAkocmV2aXNpb24g
MjM3MTQ4KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksMTQgKzEzOSw3IEBA
IHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3QKIHsKICAgICBMT0coU2Vy
dmljZVdvcmtlciwgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2Vydmlj
ZVdvcmtlciBmb3Igd29ya2VyICVzIiwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dn
aW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdl
Q29uZmlndXJhdGlvbiB7Ci0gICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAg
ICAgIFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKLSAgICAgICAgV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmNyZWF0ZSgpLAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5j
YWNoZVN0b3JhZ2VQcm92aWRlcigpCi0gICAgfTsKLQotICAgIGZpbGxXaXRoRW1wdHlDbGllbnRz
KHBhZ2VDb25maWd1cmF0aW9uKTsKKyAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gcGFnZUNv
bmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gV2ViRGF0YWJh
c2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJRCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRM
aXN0UHJveHkuY3BwCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTgyLDggKzgyLDggQEAgdm9pZCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6cmVtb3ZlSXRlbQog
ICAgIFdlYkNvcmU6OlBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2VzKGl0ZW0uZ2V0
KCkpOwogfQogCi1XZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6V2ViQmFja0ZvcndhcmRMaXN0UHJv
eHkoV2ViUGFnZSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQorV2ViQmFja0ZvcndhcmRMaXN0
UHJveHk6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3Bh
Z2UoJnBhZ2UpCiB7CiAgICAgV2ViQ29yZTo6bm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkID0gV0sy
Tm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkOwogfQpAQCAtMTI1LDcgKzEyNSw3IEBAIEhpc3RvcnlJ
dGVtKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6aXQKICAgICByZXR1cm4gaWRUb0hpc3RvcnlJ
dGVtTWFwKCkuZ2V0KCppdGVtSUQpOwogfQogCi1pbnQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6
OmJhY2tMaXN0Q291bnQoKQoraW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENv
dW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0x
MzcsNyArMTM3LDcgQEAgaW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdQog
ICAgIHJldHVybiBiYWNrTGlzdENvdW50OwogfQogCi1pbnQgV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHk6OmZvcndhcmRMaXN0Q291bnQoKQoraW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3
YXJkTGlzdENvdW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJu
IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5X2gKLSNkZWZp
bmUgV2ViQmFja0ZvcndhcmRMaXN0UHJveHlfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0JhY2tGb3J3YXJkQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAg
LTM5LDcgKzM4LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0
UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6QmFja0ZvcndhcmRDbGllbnQgewogcHVibGljOiAKLSAg
ICBzdGF0aWMgUmVmPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5PiBjcmVhdGUoV2ViUGFnZSogcGFn
ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShwYWdlKSk7
IH0KKyAgICBzdGF0aWMgUmVmPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5PiBjcmVhdGUoV2ViUGFn
ZSYgcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShw
YWdlKSk7IH0KIAogICAgIHN0YXRpYyBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbUZvcklEKGNv
bnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsKICAgICBzdGF0aWMgdm9p
ZCByZW1vdmVJdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsK
QEAgLTUzLDE1ICs1MiwxNSBAQCBwdWJsaWM6IAogICAgIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0
ZToKLSAgICBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShXZWJQYWdlKik7CisgICAgV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkoV2ViUGFnZSYpOwogCiAgICAgdm9pZCBhZGRJdGVtKFJlZjxXZWJDb3Jl
OjpIaXN0b3J5SXRlbT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGdvVG9JdGVtKFdlYkNvcmU6
Okhpc3RvcnlJdGVtKikgb3ZlcnJpZGU7CiAgICAgICAgIAogICAgIFdlYkNvcmU6Okhpc3RvcnlJ
dGVtKiBpdGVtQXRJbmRleChpbnQpIG92ZXJyaWRlOwotICAgIGludCBiYWNrTGlzdENvdW50KCkg
b3ZlcnJpZGU7Ci0gICAgaW50IGZvcndhcmRMaXN0Q291bnQoKSBvdmVycmlkZTsKKyAgICBpbnQg
YmFja0xpc3RDb3VudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGludCBmb3J3YXJkTGlzdENvdW50
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsb3NlKCkgb3ZlcnJpZGU7CiAKQEAgLTY5
LDUgKzY4LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gV2ViQmFja0ZvcndhcmRMaXN0UHJveHlfaApJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDgsNyArNDA4LDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBh
ZwogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNsaWVudD4odGhpcyksCiAgICAgICAg
IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJL
aXQ6OkxpYldlYlJUQ1Byb3ZpZGVyPigpLAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpCisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmNhY2hlU3RvcmFnZVByb3ZpZGVyKCksCisgICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5
OjpjcmVhdGUoKnRoaXMpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGll
bnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKQEAgLTQxNyw3ICs0MTgsNiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwg
V2ViUGFnCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5k
cmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ29u
ZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpj
cmVhdGUodGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3
IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwp
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFs
dGVybmF0aXZlVGV4dENsaWVudCh0aGlzKTsKQEAgLTI1MjcsNyArMjUyNyw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVzdG9yZVNlc3Npb25JbnRlcm5hbChjb24KICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0
ZW1TdGF0ZSA6IGl0ZW1TdGF0ZXMpIHsKICAgICAgICAgYXV0byBoaXN0b3J5SXRlbSA9IHRvSGlz
dG9yeUl0ZW0oaXRlbVN0YXRlKTsKICAgICAgICAgaGlzdG9yeUl0ZW0tPnNldFdhc1Jlc3RvcmVk
RnJvbVNlc3Npb24ocmVzdG9yZWRCeUFQSVJlcXVlc3QgPT0gV2FzUmVzdG9yZWRCeUFQSVJlcXVl
c3Q6Olllcyk7Ci0gICAgICAgIHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Kj4o
Y29yZVBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmFkZEl0ZW1Gcm9tVUlQcm9jZXNz
KGl0ZW1TdGF0ZS5pZGVudGlmaWVyLCBXVEZNb3ZlKGhpc3RvcnlJdGVtKSwgbV9wYWdlSUQsIG92
ZXJ3cml0ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Jj4o
Y29yZVBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSkuYWRkSXRlbUZyb21VSVByb2Nlc3Mo
aXRlbVN0YXRlLmlkZW50aWZpZXIsIFdURk1vdmUoaGlzdG9yeUl0ZW0pLCBtX3BhZ2VJRCwgb3Zl
cndyaXRlKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTE1ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIEJhY2tGb3J3
YXJkQ2xpZW50LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MDYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBIaXN0b3J5L0JhY2tG
b3J3YXJkTGlzdC5tbToKKyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RDb3VudCBj
b25zdCk6CisgICAgICAgIChCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRMaXN0Q291bnQgY29uc3Qp
OgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdENvdW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RDb3VudCk6IERlbGV0ZWQuCisgICAg
ICAgICogSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dlYkJhY2tG
b3J3YXJkTGlzdCBpbml0XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdl
IGNvbnN0KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1b
V2ViRnJhbWVWaWV3IGtleURvd246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1l
TmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1
bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisgICAgICAgICgt
W1dlYlZpZXcgX2xvYWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgorICAgICAgICAo
LVtXZWJWaWV3IGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZW5jb2RlV2l0
aENvZGVyOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGJhY2tGb3J3YXJkTGlzdF0pOgorICAgICAg
ICAoLVtXZWJWaWV3IHNldE1haW50YWluc0JhY2tGb3J3YXJkTGlzdDpdKToKKwogMjAxOC0xMC0x
NSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlbW92ZSB1bnVzZWQgV2ViVmlldy5fZ2xvYmFsSGlzdG9yeUl0ZW0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaAkocmV2aXNp
b24gMjM3MTQ4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9CYWNrRm9yd2Fy
ZExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTksOCArNTksOCBAQCBwdWJsaWM6IAogICAgIHZv
aWQgc2V0Q2FwYWNpdHkoaW50KTsKICAgICBib29sIGVuYWJsZWQoKTsKICAgICB2b2lkIHNldEVu
YWJsZWQoYm9vbCk7Ci0gICAgaW50IGJhY2tMaXN0Q291bnQoKSBvdmVycmlkZTsKLSAgICBpbnQg
Zm9yd2FyZExpc3RDb3VudCgpIG92ZXJyaWRlOworICAgIGludCBiYWNrTGlzdENvdW50KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgaW50IGZvcndhcmRMaXN0Q291bnQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBib29sIGNvbnRhaW5zSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSYpOwogCiAgICAgdm9p
ZCBjbG9zZSgpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9CYWNrRm9yd2FyZExpc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QubW0JKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xODksMTQgKzE4OSwxNCBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6c2V0RW5hYmxl
ZChib29sIGVuCiAgICAgfQogfQogCi1pbnQgQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdENvdW50
KCkKK2ludCBCYWNrRm9yd2FyZExpc3Q6OmJhY2tMaXN0Q291bnQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2N1cnJlbnQgPT0gTm9DdXJyZW50SXRlbUluZGV4ID8gMCA6IG1fY3VycmVudDsKIH0K
IAotaW50IEJhY2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RDb3VudCgpCitpbnQgQmFja0Zvcndh
cmRMaXN0Ojpmb3J3YXJkTGlzdENvdW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50
ID09IE5vQ3VycmVudEl0ZW1JbmRleCA/IDAgOiAoaW50KW1fZW50cmllcy5zaXplKCkgLSAobV9j
dXJyZW50ICsgMSk7CisgICAgcmV0dXJuIG1fY3VycmVudCA9PSBOb0N1cnJlbnRJdGVtSW5kZXgg
PyAwIDogc3RhdGljX2Nhc3Q8aW50PihtX2VudHJpZXMuc2l6ZSgpKSAtIChtX2N1cnJlbnQgKyAx
KTsKIH0KIAogSGlzdG9yeUl0ZW0qIEJhY2tGb3J3YXJkTGlzdDo6aXRlbUF0SW5kZXgoaW50IGlu
ZGV4KQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2Fy
ZExpc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9X
ZWJCYWNrRm9yd2FyZExpc3QubW0JKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDcsNyArMTA3LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAKIC0gKGlkKWluaXQKIHsKLSAg
ICByZXR1cm4gW3NlbGYgaW5pdFdpdGhCYWNrRm9yd2FyZExpc3Q6QmFja0ZvcndhcmRMaXN0Ojpj
cmVhdGUoMCldOworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEJhY2tGb3J3YXJkTGlzdDpCYWNr
Rm9yd2FyZExpc3Q6OmNyZWF0ZShudWxscHRyKV07CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjA0LDExICsxNjA0LDExIEBAIGJvb2wgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSgKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKLSAgICBCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkTGlzdCA9IHN0YXRp
Y19jYXN0PEJhY2tGb3J3YXJkTGlzdCo+KHBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpOwot
ICAgIGlmICghYmFja0ZvcndhcmRMaXN0LT5lbmFibGVkKCkpCisgICAgQmFja0ZvcndhcmRMaXN0
JiBiYWNrRm9yd2FyZExpc3QgPSBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QmPihwYWdlLT5i
YWNrRm9yd2FyZCgpLmNsaWVudCgpKTsKKyAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdC5lbmFibGVk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBpZiAoIWJhY2tGb3J3YXJkTGlz
dC0+Y2FwYWNpdHkoKSkKKyAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdC5jYXBhY2l0eSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQkocmV2aXNpb24g
MjM3MTQ4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTkxMCw3ICs5MTAsNyBAQCAtICh2b2lkKWtleURvd246KFdl
YkV2ZW50ICopZXZlbnQKICAgICBpbnQgaW5kZXgsIGNvdW50OwogICAgIEJPT0wgY2FsbFN1cGVy
ID0gWUVTOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKLSAgICBC
T09MIG1haW50YWluc0JhY2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxC
YWNrRm9yd2FyZExpc3QqPihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQo
KSktPmVuYWJsZWQoKSA/IFlFUyA6IE5POworICAgIEJPT0wgbWFpbnRhaW5zQmFja0ZvcndhcmRM
aXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCY+KGNvcmVGcmFt
ZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS5lbmFibGVkKCkgPyBZRVMgOiBOTzsK
IAogICAgIGNvdW50ID0gW2NoYXJhY3RlcnMgbGVuZ3RoXTsKICAgICBmb3IgKGluZGV4ID0gMDsg
aW5kZXggPCBjb3VudDsgKytpbmRleCkgewpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjM3MTQ4KQorKysgU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDM3LDcgKzE0
MzcsOCBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViRWRpdG9yQ2xpZW50PihzZWxmKSwKICAgICAgICAgU29ja2V0UHJv
dmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCi0g
ICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKQorICAgICAgICBX
ZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCisgICAgICAgIEJhY2tGb3J3
YXJkTGlzdDo6Y3JlYXRlKHNlbGYpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHBh
Z2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7
CkBAIC0xNDU0LDggKzE0NTUsNiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhG
cmFtZU5hCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xp
ZW50KHNlbGYpOwogI2VuZGlmCiAKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENs
aWVudCA9IEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKHNlbGYpOwotCiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5wYXltZW50Q29vcmRpbmF0b3JDbGllbnQgPSBu
ZXcgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50KCk7CiAjZW5kaWYKQEAgLTE3MDMsNyArMTcw
Miw4IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6KE4KICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHNlbGYpLAogICAgICAgICBTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKLSAg
ICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpCisgICAgICAgIFdl
YkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKKyAgICAgICAgbWFrZVVuaXF1
ZVJlZjxCYWNrRm9yd2FyZExpc3Q+KCksCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCkBAIC0xNzE0LDcgKzE3MTQsNiBAQCAtIChpZClpbml0U2ltcGxlSFRNTERv
Y3VtZW50V2l0aFN0eWxlOihOCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50ID0gbmV3IFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudCgpOwogI2VuZGlmCiAK
LSAgICBwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IEJhY2tGb3J3YXJkTGlz
dDo6Y3JlYXRlKHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9
IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwogICAgIHBh
Z2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQoc2VsZik7CkBAIC0yNjQxLDcgKzI2NDAsNyBAQCAtICh2b2lkKV9sb2FkQmFj
a0ZvcndhcmRMaXN0RnJvbU90aGVyVmllCiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gbmV3SXRl
bSA9IG90aGVyQmFja0ZvcndhcmQuaXRlbUF0SW5kZXgoaSktPmNvcHkoKTsKICAgICAgICAgaWYg
KGkgPT0gMCkgCiAgICAgICAgICAgICBuZXdJdGVtVG9Hb1RvID0gbmV3SXRlbS5wdHIoKTsKLSAg
ICAgICAgYmFja0ZvcndhcmQuY2xpZW50KCktPmFkZEl0ZW0oV1RGTW92ZShuZXdJdGVtKSk7Cisg
ICAgICAgIGJhY2tGb3J3YXJkLmNsaWVudCgpLmFkZEl0ZW0oV1RGTW92ZShuZXdJdGVtKSk7CiAg
ICAgfQogCiAgICAgQVNTRVJUKG5ld0l0ZW1Ub0dvVG8pOwpAQCAtNTg3Niw3ICs1ODc1LDcgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKgogCiAgICAgICAgIExPRyhF
bmNvZGluZywgIkZyYW1lTmFtZSA9ICVALCBHcm91cE5hbWUgPSAlQCwgdXNlQmFja0ZvcndhcmRM
aXN0ID0gJWRcbiIsIGZyYW1lTmFtZSwgZ3JvdXBOYW1lLCAoaW50KXVzZUJhY2tGb3J3YXJkTGlz
dCk7CiAgICAgICAgIFtyZXN1bHQgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpm
cmFtZU5hbWUgZ3JvdXBOYW1lOmdyb3VwTmFtZV07Ci0gICAgICAgIHN0YXRpY19jYXN0PEJhY2tG
b3J3YXJkTGlzdCo+KFtyZXN1bHQgcGFnZV0tPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5zZXRF
bmFibGVkKHVzZUJhY2tGb3J3YXJkTGlzdCk7CisgICAgICAgIHN0YXRpY19jYXN0PEJhY2tGb3J3
YXJkTGlzdCY+KFtyZXN1bHQgcGFnZV0tPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLnNldEVuYWJs
ZWQodXNlQmFja0ZvcndhcmRMaXN0KTsKICAgICAgICAgcmVzdWx0LT5fcHJpdmF0ZS0+YWxsb3dz
VW5kbyA9IGFsbG93c1VuZG87CiAgICAgICAgIGlmIChwcmVmZXJlbmNlcykKICAgICAgICAgICAg
IFtyZXN1bHQgc2V0UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNdOwpAQCAtNTkwNCw3ICs1OTAzLDcg
QEAgLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKillbmNvZAogICAgIF9zdWJ2aWV3
cyA9IG9yaWdpbmFsU3Vidmlld3M7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKLSAgICBCT09MIHVzZUJhY2tGb3J3YXJkTGlzdCA9IF9wcml2YXRlLT5wYWdlICYmIHN0
YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCo+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgp
LmNsaWVudCgpKS0+ZW5hYmxlZCgpOworICAgIEJPT0wgdXNlQmFja0ZvcndhcmRMaXN0ID0gX3By
aXZhdGUtPnBhZ2UgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Jj4oX3ByaXZhdGUtPnBh
Z2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLmVuYWJsZWQoKTsKICAgICBpZiAoW2VuY29kZXIg
YWxsb3dzS2V5ZWRDb2RpbmddKSB7CiAgICAgICAgIFtlbmNvZGVyIGVuY29kZU9iamVjdDpbW3Nl
bGYgbWFpbkZyYW1lXSBuYW1lXSBmb3JLZXk6QCJGcmFtZU5hbWUiXTsKICAgICAgICAgW2VuY29k
ZXIgZW5jb2RlT2JqZWN0OltzZWxmIGdyb3VwTmFtZV0gZm9yS2V5OkAiR3JvdXBOYW1lIl07CkBA
IC02Mzg2LDE3ICs2Mzg1LDE3IEBAIC0gKFdlYkJhY2tGb3J3YXJkTGlzdCAqKWJhY2tGb3J3YXJk
TGlzdAogewogICAgIGlmICghX3ByaXZhdGUtPnBhZ2UpCiAgICAgICAgIHJldHVybiBuaWw7Ci0g
ICAgQmFja0ZvcndhcmRMaXN0KiBsaXN0ID0gc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4o
X3ByaXZhdGUtPnBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpOwotICAgIGlmICghbGlzdC0+
ZW5hYmxlZCgpKQorICAgIEJhY2tGb3J3YXJkTGlzdCYgbGlzdCA9IHN0YXRpY19jYXN0PEJhY2tG
b3J3YXJkTGlzdCY+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKTsKKyAg
ICBpZiAoIWxpc3QuZW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBr
aXQobGlzdCk7CisgICAgcmV0dXJuIGtpdCgmbGlzdCk7CiB9CiAKIC0gKHZvaWQpc2V0TWFpbnRh
aW5zQmFja0ZvcndhcmRMaXN0OihCT09MKWZsYWcKIHsKICAgICBpZiAoIV9wcml2YXRlLT5wYWdl
KQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oX3By
aXZhdGUtPnBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5zZXRFbmFibGVkKGZsYWcpOwor
ICAgIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCY+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9y
d2FyZCgpLmNsaWVudCgpKS5zZXRFbmFibGVkKGZsYWcpOwogfQogCiAtIChCT09MKWdvQmFjawo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352408</attachid>
            <date>2018-10-15 17:11:23 -0700</date>
            <delta_ts>2018-10-15 17:11:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190610-20181015171122.patch</filename>
            <type>text/plain</type>
            <size>33072</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE4LTEwLTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXpl
IEJhY2tGb3J3YXJkQ2xpZW50LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6Lgor
CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KToKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3
YXJkQ2xpZW50Lmg6CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Y2xpZW50IGNvbnN0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNs
aWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRW1wdHlGcmFtZU5ldHdvcmtpbmdDb250
ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZpbGxXaXRoRW1wdHlDbGllbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRp
b246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9u
Lmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdlZCk6CisKIDIwMTgtMTAtMTUgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIFdl
YlZpZXcuX2dsb2JhbEhpc3RvcnlJdGVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3NCw5ICsxNzQsNyBAQCB2b2lkIHJlbW92ZVN1YnJlc291cmNl
VVJMQXR0cmlidXRlcyhSZWY8CiAKIHN0ZDo6dW5pcXVlX3B0cjxQYWdlPiBjcmVhdGVQYWdlRm9y
U2FuaXRpemluZ1dlYkNvbnRlbnQoKQogewotICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25m
aWd1cmF0aW9uKGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksIFNvY2tldFByb3ZpZGVyOjpjcmVh
dGUoKSwgTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgpLCBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6
Y3JlYXRlKCkpOwotCi0gICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24p
OworICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0
eUNsaWVudHMoKTsKICAgICAKICAgICBhdXRvIHBhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2U+
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKICAgICBwYWdlLT5zZXR0aW5ncygpLnNldE1l
ZGlhRW5hYmxlZChmYWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3
YXJkQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9y
d2FyZENsaWVudC5oCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0JhY2tGb3J3YXJkQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDggQEAgcHVi
bGljOiAKICAgICB2aXJ0dWFsIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0qKSA9IDA7CiAgICAg
ICAgIAogICAgIHZpcnR1YWwgSGlzdG9yeUl0ZW0qIGl0ZW1BdEluZGV4KGludCkgPSAwOwotICAg
IHZpcnR1YWwgaW50IGJhY2tMaXN0Q291bnQoKSA9IDA7Ci0gICAgdmlydHVhbCBpbnQgZm9yd2Fy
ZExpc3RDb3VudCgpID0gMDsKKyAgICB2aXJ0dWFsIGludCBiYWNrTGlzdENvdW50KCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgaW50IGZvcndhcmRMaXN0Q291bnQoKSBjb25zdCA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCShyZXZpc2lvbiAyMzcxNDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw3ICs0MSw4IEBAIHB1YmxpYzoKICAgICBCYWNrRm9yd2FyZENvbnRyb2xsZXIo
UGFnZSYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJik7CiAgICAgfkJhY2tGb3J3YXJkQ29udHJv
bGxlcigpOwogCi0gICAgQmFja0ZvcndhcmRDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xpZW50LmdldCgpOyB9CisgICAgQmFja0ZvcndhcmRDbGllbnQmIGNsaWVudCgpIHsgcmV0
dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgY29uc3QgQmFja0ZvcndhcmRDbGllbnQmIGNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGNhbkdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpIGNvbnN0OwogICAgIHZvaWQg
Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSk7CkBAIC02Niw3ICs2Nyw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgUmVmUHRyPEJhY2tGb3J3YXJkQ2xp
ZW50PiBtX2NsaWVudDsKKyAgICBSZWY8QmFja0ZvcndhcmRDbGllbnQ+IG1fY2xpZW50OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjM3MTQ4KQorKysgU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MDQsMTMgKzcwNCw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAg
ICBpZiAobV9vdmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJuIG1fb3ZlcmxheVBhZ2UuZ2V0KCk7
CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbigKLSAgICAgICAgY3Jl
YXRlRW1wdHlFZGl0b3JDbGllbnQoKSwKLSAgICAgICAgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgp
LAotICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCi0gICAgICAgIENhY2hlU3Rv
cmFnZVByb3ZpZGVyOjpjcmVhdGUoKQotICAgICk7Ci0gICAgZmlsbFdpdGhFbXB0eUNsaWVudHMo
cGFnZUNvbmZpZ3VyYXRpb24pOworICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoKTsKICAgICBtX292ZXJsYXlQYWdlID0gc3RkOjpt
YWtlX3VuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiAgICAgbV9vdmVy
bGF5UGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IobV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCkp
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2aXNpb24g
MjM3MTQ4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNo
ZVN0b3JhZ2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUg
IkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSW5Qcm9jZXNzSURCU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50Lmgi
CisjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRp
b24uaCIKQEAgLTU1LDYgKzU3LDcgQEAKICNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkRhdGEuaCIKKyNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtODIsOCArODUsOCBAQCBjbGFzcyBFbXB0eUJhY2tG
b3J3YXJkQ2xpZW50IGZpbmFsIDogcHViCiAgICAgdm9pZCBhZGRJdGVtKFJlZjxIaXN0b3J5SXRl
bT4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSopIGZpbmFsIHsg
fQogICAgIEhpc3RvcnlJdGVtKiBpdGVtQXRJbmRleChpbnQpIGZpbmFsIHsgcmV0dXJuIG51bGxw
dHI7IH0KLSAgICBpbnQgYmFja0xpc3RDb3VudCgpIGZpbmFsIHsgcmV0dXJuIDA7IH0KLSAgICBp
bnQgZm9yd2FyZExpc3RDb3VudCgpIGZpbmFsIHsgcmV0dXJuIDA7IH0KKyAgICBpbnQgYmFja0xp
c3RDb3VudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KKyAgICBpbnQgZm9yd2FyZExpc3RD
b3VudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICB2b2lkIGNsb3NlKCkgZmluYWwg
eyB9CiB9OwogCkBAIC00OTcsMTEgKzUwMCw2IEBAIFJlZjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0
PiBFbXB0eUZyYW1lTG8KICAgICByZXR1cm4gRW1wdHlGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoKTsKIH0KIAotUmVmPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZUVtcHR5RnJh
bWVOZXR3b3JraW5nQ29udGV4dCgpCi17Ci0gICAgcmV0dXJuIEVtcHR5RnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6Y3JlYXRlKCk7Ci19Ci0KIHZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OkVtcHR5VGV4
dENoZWNrZXJDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFRleHRDaGVja2luZ1JlcXVl
c3QmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKIHsKIH0KQEAgLTUzNCw4ICs1MzIsMTYgQEAg
UmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbQogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSk7CiB9CiAKLXZvaWQgZmlsbFdpdGhFbXB0
eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQorUGFnZUNvbmZp
Z3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKCkKIHsKKyAgICBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CisgICAgICAgIG1ha2VVbmlxdWVSZWY8
RW1wdHlFZGl0b3JDbGllbnQ+KCksCisgICAgICAgIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwK
KyAgICAgICAgTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgpLAorICAgICAgICBDYWNoZVN0b3Jh
Z2VQcm92aWRlcjo6Y3JlYXRlKCksCisgICAgICAgIGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9y
d2FyZENsaWVudCkKKyAgICB9OworCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5Q2hy
b21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJv
bWVDbGllbnQgPSAmZHVtbXlDaHJvbWVDbGllbnQuZ2V0KCk7CiAKQEAgLTU2Myw3ICs1NjksNiBA
QCB2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0CiAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiBkdW1teVByb2dyZXNzVHJh
Y2tlckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQg
PSAmZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGllbnQuZ2V0KCk7CiAKLSAgICBwYWdlQ29uZmlndXJh
dGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2FyZENs
aWVudCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KCk7CiAKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSA9IEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpAQCAtNTcyLDExICs1NzcsOCBAQCB2b2lkIGZp
bGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
c3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRl
ciA9IGFkb3B0UmVmKCpuZXcgRW1wdHlVc2VyQ29udGVudFByb3ZpZGVyKTsKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gYWRvcHRSZWYoKm5ldyBFbXB0eVZpc2l0ZWRM
aW5rU3RvcmUpOwotfQotCi1VbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiBjcmVhdGVFbXB0eUVkaXRv
ckNsaWVudCgpCi17Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8RW1wdHlFZGl0b3JDbGllbnQ+
KCk7CisgICAgCisgICAgcmV0dXJuIHBhZ2VDb25maWd1cmF0aW9uOwogfQogCiBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgZW1wdHlEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxMSAr
MjAzLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQwogICAgIFJl
ZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZp
bGVuYW1lcyAqLykgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogfTsKIAotV0VCQ09SRV9FWFBP
UlQgdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlQ29uZmlndXJhdGlvbiYpOwotV0VCQ09S
RV9FWFBPUlQgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4gY3JlYXRlRW1wdHlFZGl0b3JDbGllbnQo
KTsKIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBlbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KCk7Ci0KLWNsYXNzIEVtcHR5RnJhbWVOZXR3b3JraW5nQ29udGV4dDsKLVdFQkNPUkVfRVhQT1JU
IFJlZjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVFbXB0eUZyYW1lTmV0d29ya2luZ0Nv
bnRleHQoKTsKK1dFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0
aW9uV2l0aEVtcHR5Q2xpZW50cygpOwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlz
aW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIxNSw3ICsyMTUsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFn
ZUNvbmZpCiAjZW5kaWYKICAgICAsIG1fc2V0dGluZ3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkK
ICAgICAsIG1fcHJvZ3Jlc3Moc3RkOjptYWtlX3VuaXF1ZTxQcm9ncmVzc1RyYWNrZXI+KCpwYWdl
Q29uZmlndXJhdGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQpKQotICAgICwgbV9iYWNrRm9yd2Fy
ZENvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9yd2FyZENvbnRyb2xsZXI+KCp0aGlz
LCAqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCkpKQorICAgICwg
bV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9yd2FyZENvbnRy
b2xsZXI+KCp0aGlzLCBXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmJhY2tGb3J3YXJkQ2xpZW50
KSkpCiAgICAgLCBtX21haW5GcmFtZShGcmFtZTo6Y3JlYXRlKHRoaXMsIG51bGxwdHIsIHBhZ2VD
b25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCiAgICAgLCBtX2VkaXRvckNs
aWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmVkaXRvckNsaWVudCkpCiAgICAgLCBtX3Bs
dWdJbkNsaWVudChwYWdlQ29uZmlndXJhdGlvbi5wbHVnSW5DbGllbnQpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAkocmV2aXNpb24gMjM3MTQ4KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDE0ICs0OCwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRv
ckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQ
cm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVm
PFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJv
dmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBj
YWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJk
Q2xpZW50KQogICAgIDogZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAs
IHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQogICAgICwgbGliV2ViUlRD
UHJvdmlkZXIoV1RGTW92ZShsaWJXZWJSVENQcm92aWRlcikpCisgICAgLCBiYWNrRm9yd2FyZENs
aWVudChXVEZNb3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogewogfQogCiBQYWdlQ29uZmlndXJh
dGlvbjo6flBhZ2VDb25maWd1cmF0aW9uKCkgPSBkZWZhdWx0OworUGFnZUNvbmZpZ3VyYXRpb246
OlBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpID0gZGVmYXVsdDsKIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjM3
MTQ4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NSw4ICs2NSw5IEBAIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogY2xhc3Mg
UGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1
cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRp
b24oVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwg
UmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZp
Z3VyYXRpb24oKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsK
IAogICAgIEFsdGVybmF0aXZlVGV4dENsaWVudCogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50IHsgbnVs
bHB0ciB9OwogICAgIENocm9tZUNsaWVudCogY2hyb21lQ2xpZW50IHsgbnVsbHB0ciB9OwpAQCAt
OTMsNyArOTQsNyBAQCBwdWJsaWM6CiAKICAgICBQbHVnSW5DbGllbnQqIHBsdWdJbkNsaWVudCB7
IG51bGxwdHIgfTsKICAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQqIHByb2dyZXNzVHJhY2tlckNs
aWVudCB7IG51bGxwdHIgfTsKLSAgICBSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+IGJhY2tGb3J3
YXJkQ2xpZW50OworICAgIFJlZjxCYWNrRm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRDbGllbnQ7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50PiB2YWxpZGF0aW9u
TWVzc2FnZUNsaWVudDsKICAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lIHsgbnVsbHB0ciB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudD4gZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MywxMyAr
NDUzLDcgQEAgRW5jb2RlZERhdGFTdGF0dXMgU1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKAogICAgICAg
ICByZXR1cm4gRW5jb2RlZERhdGFTdGF0dXM6OkNvbXBsZXRlOwogCiAgICAgaWYgKGFsbERhdGFS
ZWNlaXZlZCkgewotICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbigK
LSAgICAgICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAgICAgICAgICBTb2Nr
ZXRQcm92aWRlcjo6Y3JlYXRlKCksCi0gICAgICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3Jl
YXRlKCksCi0gICAgICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCkKLSAgICAg
ICAgKTsKLSAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24pOwor
ICAgICAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1w
dHlDbGllbnRzKCk7CiAgICAgICAgIG1fY2hyb21lQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdJbWFnZUNocm9tZUNsaWVudD4odGhpcyk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50LmdldCgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjM3MTU2KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyNiBAQAorMjAxOC0xMC0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIE1vZGVybml6ZSBCYWNrRm9yd2FyZENsaWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxs
U2VydmljZVdvcmtlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3
YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJv
eHk6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0Zv
cndhcmRMaXN0UHJveHk6OmJhY2tMaXN0Q291bnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Zm9yd2FyZExpc3RDb3VudCBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRMaXN0
Q291bnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9y
d2FyZExpc3RQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Om1fY3B1TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpy
ZXN0b3JlU2Vzc2lvbkludGVybmFsKToKKwogMjAxOC0xMC0xNSAgVGltb3RoeSBIYXRjaGVyICA8
dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHByZWZlcnMtY29s
b3Itc2NoZW1lIG1lZGlhIHF1ZXJ5CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZUJhY2tGb3J3YXJkTGlzdC5jcHAJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZUJh
Y2tGb3J3YXJkTGlzdDo6Y2xlYQogICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPmNvcmVQYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkqPihwYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+Y2xlYXIo
KTsKKyAgICBzdGF0aWNfY2FzdDxXZWJCYWNrRm9yd2FyZExpc3RQcm94eSY+KHBhZ2UtPmJhY2tG
b3J3YXJkKCkuY2xpZW50KCkpLmNsZWFyKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAkocmV2aXNpb24gMjM3MTQ4
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksMTQgKzEzOSw3IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3QKIHsKICAgICBMT0coU2VydmljZVdv
cmtlciwgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtl
ciBmb3Igd29ya2VyICVzIiwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dnaW5nU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmln
dXJhdGlvbiB7Ci0gICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAgICAgIFdl
YlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKLSAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJv
dmlkZXI6OmNyZWF0ZSgpLAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0
b3JhZ2VQcm92aWRlcigpCi0gICAgfTsKLQotICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VD
b25maWd1cmF0aW9uKTsKKyAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gV2ViRGF0YWJhc2VQcm92
aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHkuY3BwCShyZXZpc2lvbiAyMzcxNDgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDgg
KzgyLDggQEAgdm9pZCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6cmVtb3ZlSXRlbQogICAgIFdl
YkNvcmU6OlBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2VzKGl0ZW0uZ2V0KCkpOwog
fQogCi1XZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHkoV2Vi
UGFnZSogcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQorV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6
OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UoJnBh
Z2UpCiB7CiAgICAgV2ViQ29yZTo6bm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkID0gV0syTm90aWZ5
SGlzdG9yeUl0ZW1DaGFuZ2VkOwogfQpAQCAtMTI1LDcgKzEyNSw3IEBAIEhpc3RvcnlJdGVtKiBX
ZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6aXQKICAgICByZXR1cm4gaWRUb0hpc3RvcnlJdGVtTWFw
KCkuZ2V0KCppdGVtSUQpOwogfQogCi1pbnQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmJhY2tM
aXN0Q291bnQoKQoraW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdW50KCkg
Y29uc3QKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMzcsNyAr
MTM3LDcgQEAgaW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdQogICAgIHJl
dHVybiBiYWNrTGlzdENvdW50OwogfQogCi1pbnQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmZv
cndhcmRMaXN0Q291bnQoKQoraW50IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3YXJkTGlz
dENvdW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIDA7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkJhY2tGb3J3YXJkTGlzdFByb3h5LmgJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5X2gKLSNkZWZpbmUgV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHlfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJDb3Jl
L0JhY2tGb3J3YXJkQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTM5LDcg
KzM4LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0UHJveHkg
OiBwdWJsaWMgV2ViQ29yZTo6QmFja0ZvcndhcmRDbGllbnQgewogcHVibGljOiAKLSAgICBzdGF0
aWMgUmVmPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShwYWdlKSk7IH0KKyAg
ICBzdGF0aWMgUmVmPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5PiBjcmVhdGUoV2ViUGFnZSYgcGFn
ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShwYWdlKSk7
IH0KIAogICAgIHN0YXRpYyBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbUZvcklEKGNvbnN0IFdl
YkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsKICAgICBzdGF0aWMgdm9pZCByZW1v
dmVJdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsKQEAgLTUz
LDE1ICs1MiwxNSBAQCBwdWJsaWM6IAogICAgIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0ZToKLSAg
ICBXZWJCYWNrRm9yd2FyZExpc3RQcm94eShXZWJQYWdlKik7CisgICAgV2ViQmFja0ZvcndhcmRM
aXN0UHJveHkoV2ViUGFnZSYpOwogCiAgICAgdm9pZCBhZGRJdGVtKFJlZjxXZWJDb3JlOjpIaXN0
b3J5SXRlbT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGdvVG9JdGVtKFdlYkNvcmU6Okhpc3Rv
cnlJdGVtKikgb3ZlcnJpZGU7CiAgICAgICAgIAogICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBp
dGVtQXRJbmRleChpbnQpIG92ZXJyaWRlOwotICAgIGludCBiYWNrTGlzdENvdW50KCkgb3ZlcnJp
ZGU7Ci0gICAgaW50IGZvcndhcmRMaXN0Q291bnQoKSBvdmVycmlkZTsKKyAgICBpbnQgYmFja0xp
c3RDb3VudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGludCBmb3J3YXJkTGlzdENvdW50KCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsb3NlKCkgb3ZlcnJpZGU7CiAKQEAgLTY5LDUgKzY4
LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
V2ViQmFja0ZvcndhcmRMaXN0UHJveHlfaApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDgs
NyArNDA4LDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZwogICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNsaWVudD4odGhpcyksCiAgICAgICAgIFdlYlNv
Y2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJLaXQ6Okxp
YldlYlJUQ1Byb3ZpZGVyPigpLAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNo
ZVN0b3JhZ2VQcm92aWRlcigpCisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hl
U3RvcmFnZVByb3ZpZGVyKCksCisgICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVh
dGUoKnRoaXMpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBu
ZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAg
LTQxNyw3ICs0MTgsNiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFn
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xp
ZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CiAjZW5kaWYKLSAgICBwYWdlQ29uZmlndXJh
dGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUo
dGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYklu
c3BlY3RvckNsaWVudCh0aGlzKTsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0
aXZlVGV4dENsaWVudCh0aGlzKTsKQEAgLTI1MjcsNyArMjUyNyw3IEBAIHZvaWQgV2ViUGFnZTo6
cmVzdG9yZVNlc3Npb25JbnRlcm5hbChjb24KICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW1TdGF0
ZSA6IGl0ZW1TdGF0ZXMpIHsKICAgICAgICAgYXV0byBoaXN0b3J5SXRlbSA9IHRvSGlzdG9yeUl0
ZW0oaXRlbVN0YXRlKTsKICAgICAgICAgaGlzdG9yeUl0ZW0tPnNldFdhc1Jlc3RvcmVkRnJvbVNl
c3Npb24ocmVzdG9yZWRCeUFQSVJlcXVlc3QgPT0gV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3Q6Olll
cyk7Ci0gICAgICAgIHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Kj4oY29yZVBh
Z2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmFkZEl0ZW1Gcm9tVUlQcm9jZXNzKGl0ZW1T
dGF0ZS5pZGVudGlmaWVyLCBXVEZNb3ZlKGhpc3RvcnlJdGVtKSwgbV9wYWdlSUQsIG92ZXJ3cml0
ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Jj4oY29yZVBh
Z2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSkuYWRkSXRlbUZyb21VSVByb2Nlc3MoaXRlbVN0
YXRlLmlkZW50aWZpZXIsIFdURk1vdmUoaGlzdG9yeUl0ZW0pLCBtX3BhZ2VJRCwgb3ZlcndyaXRl
KTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIEJhY2tGb3J3YXJkQ2xp
ZW50LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDYxMAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogSGlz
dG9yeS9CYWNrRm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBIaXN0b3J5L0JhY2tGb3J3YXJkTGlz
dC5tbToKKyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RDb3VudCBjb25zdCk6Cisg
ICAgICAgIChCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRMaXN0Q291bnQgY29uc3QpOgorICAgICAg
ICAoQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdENvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKEJh
Y2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RDb3VudCk6IERlbGV0ZWQuCisgICAgICAgICogSGlz
dG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dlYkJhY2tGb3J3YXJkTGlz
dCBpbml0XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdlIGNvbnN0KToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVW
aWV3IGtleURvd246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91
cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhT
dHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
X2xvYWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgorICAgICAgICAoLVtXZWJWaWV3
IGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZW5jb2RlV2l0aENvZGVyOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IGJhY2tGb3J3YXJkTGlzdF0pOgorICAgICAgICAoLVtXZWJW
aWV3IHNldE1haW50YWluc0JhY2tGb3J3YXJkTGlzdDpdKToKKwogMjAxOC0xMC0xNSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1
bnVzZWQgV2ViVmlldy5fZ2xvYmFsSGlzdG9yeUl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaAkocmV2aXNpb24gMjM3MTQ4
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtNTksOCArNTksOCBAQCBwdWJsaWM6IAogICAgIHZvaWQgc2V0Q2Fw
YWNpdHkoaW50KTsKICAgICBib29sIGVuYWJsZWQoKTsKICAgICB2b2lkIHNldEVuYWJsZWQoYm9v
bCk7Ci0gICAgaW50IGJhY2tMaXN0Q291bnQoKSBvdmVycmlkZTsKLSAgICBpbnQgZm9yd2FyZExp
c3RDb3VudCgpIG92ZXJyaWRlOworICAgIGludCBiYWNrTGlzdENvdW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgaW50IGZvcndhcmRMaXN0Q291bnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29s
IGNvbnRhaW5zSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSYpOwogCiAgICAgdm9pZCBjbG9zZSgp
IG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9CYWNrRm9y
d2FyZExpc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9CYWNrRm9yd2FyZExpc3QubW0JKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODksMTQgKzE4OSwxNCBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6c2V0RW5hYmxlZChib29sIGVu
CiAgICAgfQogfQogCi1pbnQgQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdENvdW50KCkKK2ludCBC
YWNrRm9yd2FyZExpc3Q6OmJhY2tMaXN0Q291bnQoKSBjb25zdAogewogICAgIHJldHVybiBtX2N1
cnJlbnQgPT0gTm9DdXJyZW50SXRlbUluZGV4ID8gMCA6IG1fY3VycmVudDsKIH0KIAotaW50IEJh
Y2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RDb3VudCgpCitpbnQgQmFja0ZvcndhcmRMaXN0Ojpm
b3J3YXJkTGlzdENvdW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50ID09IE5vQ3Vy
cmVudEl0ZW1JbmRleCA/IDAgOiAoaW50KW1fZW50cmllcy5zaXplKCkgLSAobV9jdXJyZW50ICsg
MSk7CisgICAgcmV0dXJuIG1fY3VycmVudCA9PSBOb0N1cnJlbnRJdGVtSW5kZXggPyAwIDogc3Rh
dGljX2Nhc3Q8aW50PihtX2VudHJpZXMuc2l6ZSgpKSAtIChtX2N1cnJlbnQgKyAxKTsKIH0KIAog
SGlzdG9yeUl0ZW0qIEJhY2tGb3J3YXJkTGlzdDo6aXRlbUF0SW5kZXgoaW50IGluZGV4KQpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJCYWNrRm9y
d2FyZExpc3QubW0JKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyAr
MTA3LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAKIC0gKGlkKWluaXQKIHsKLSAgICByZXR1cm4g
W3NlbGYgaW5pdFdpdGhCYWNrRm9yd2FyZExpc3Q6QmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoMCld
OworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEJhY2tGb3J3YXJkTGlzdDpCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShudWxscHRyKV07CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpJbmRleDogU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjA0LDExICsxNjA0LDExIEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhbkNhY2hlUGFnZSgKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAKLSAgICBCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkTGlzdCA9IHN0YXRpY19jYXN0PEJh
Y2tGb3J3YXJkTGlzdCo+KHBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpOwotICAgIGlmICgh
YmFja0ZvcndhcmRMaXN0LT5lbmFibGVkKCkpCisgICAgQmFja0ZvcndhcmRMaXN0JiBiYWNrRm9y
d2FyZExpc3QgPSBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QmPihwYWdlLT5iYWNrRm9yd2Fy
ZCgpLmNsaWVudCgpKTsKKyAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdC5lbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdC0+Y2FwYWNp
dHkoKSkKKyAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdC5jYXBhY2l0eSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQkocmV2aXNpb24gMjM3MTQ4KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0JKHdvcmtp
bmcgY29weSkKQEAgLTkxMCw3ICs5MTAsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICop
ZXZlbnQKICAgICBpbnQgaW5kZXgsIGNvdW50OwogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwog
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKLSAgICBCT09MIG1haW50
YWluc0JhY2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2Fy
ZExpc3QqPihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJs
ZWQoKSA/IFlFUyA6IE5POworICAgIEJPT0wgbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0ID0gY29y
ZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCY+KGNvcmVGcmFtZS0+cGFnZSgp
LT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS5lbmFibGVkKCkgPyBZRVMgOiBOTzsKIAogICAgIGNv
dW50ID0gW2NoYXJhY3RlcnMgbGVuZ3RoXTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBj
b3VudDsgKytpbmRleCkgewpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkocmV2aXNpb24gMjM3MTQ4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDM3LDcgKzE0MzcsOCBAQCAt
ICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViRWRpdG9yQ2xpZW50PihzZWxmKSwKICAgICAgICAgU29ja2V0UHJvdmlkZXI6OmNy
ZWF0ZSgpLAogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCi0gICAgICAgIFdl
YkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKQorICAgICAgICBXZWJDb3JlOjpD
YWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCisgICAgICAgIEJhY2tGb3J3YXJkTGlzdDo6
Y3JlYXRlKHNlbGYpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNDU0
LDggKzE0NTUsNiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYp
OwogI2VuZGlmCiAKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IEJh
Y2tGb3J3YXJkTGlzdDo6Y3JlYXRlKHNlbGYpOwotCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5wYXltZW50Q29vcmRpbmF0b3JDbGllbnQgPSBuZXcgV2ViUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50KCk7CiAjZW5kaWYKQEAgLTE3MDMsNyArMTcwMiw4IEBAIC0g
KGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6KE4KICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHNlbGYpLAogICAgICAgICBTb2NrZXRQcm92aWRlcjo6Y3Jl
YXRlKCksCiAgICAgICAgIExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKLSAgICAgICAgV2Vi
Q29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpCisgICAgICAgIFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxCYWNr
Rm9yd2FyZExpc3Q+KCksCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGll
bnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCkBAIC0xNzE0LDcgKzE3MTQsNiBAQCAtIChpZClpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0
aFN0eWxlOihOCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGF5bWVudENvb3JkaW5hdG9yQ2xpZW50
ID0gbmV3IFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudCgpOwogI2VuZGlmCiAKLSAgICBwYWdl
Q29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCA9IEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRl
KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQoc2VsZik7CkBAIC0yNjQxLDcgKzI2NDAsNyBAQCAtICh2b2lkKV9sb2FkQmFja0ZvcndhcmRM
aXN0RnJvbU90aGVyVmllCiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gbmV3SXRlbSA9IG90aGVy
QmFja0ZvcndhcmQuaXRlbUF0SW5kZXgoaSktPmNvcHkoKTsKICAgICAgICAgaWYgKGkgPT0gMCkg
CiAgICAgICAgICAgICBuZXdJdGVtVG9Hb1RvID0gbmV3SXRlbS5wdHIoKTsKLSAgICAgICAgYmFj
a0ZvcndhcmQuY2xpZW50KCktPmFkZEl0ZW0oV1RGTW92ZShuZXdJdGVtKSk7CisgICAgICAgIGJh
Y2tGb3J3YXJkLmNsaWVudCgpLmFkZEl0ZW0oV1RGTW92ZShuZXdJdGVtKSk7CiAgICAgfQogCiAg
ICAgQVNTRVJUKG5ld0l0ZW1Ub0dvVG8pOwpAQCAtNTg3Niw3ICs1ODc1LDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKgogCiAgICAgICAgIExPRyhFbmNvZGluZywg
IkZyYW1lTmFtZSA9ICVALCBHcm91cE5hbWUgPSAlQCwgdXNlQmFja0ZvcndhcmRMaXN0ID0gJWRc
biIsIGZyYW1lTmFtZSwgZ3JvdXBOYW1lLCAoaW50KXVzZUJhY2tGb3J3YXJkTGlzdCk7CiAgICAg
ICAgIFtyZXN1bHQgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpmcmFtZU5hbWUg
Z3JvdXBOYW1lOmdyb3VwTmFtZV07Ci0gICAgICAgIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCo+KFtyZXN1bHQgcGFnZV0tPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5zZXRFbmFibGVkKHVz
ZUJhY2tGb3J3YXJkTGlzdCk7CisgICAgICAgIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCY+
KFtyZXN1bHQgcGFnZV0tPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLnNldEVuYWJsZWQodXNlQmFj
a0ZvcndhcmRMaXN0KTsKICAgICAgICAgcmVzdWx0LT5fcHJpdmF0ZS0+YWxsb3dzVW5kbyA9IGFs
bG93c1VuZG87CiAgICAgICAgIGlmIChwcmVmZXJlbmNlcykKICAgICAgICAgICAgIFtyZXN1bHQg
c2V0UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNdOwpAQCAtNTkwNCw3ICs1OTAzLDcgQEAgLSAodm9p
ZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKillbmNvZAogICAgIF9zdWJ2aWV3cyA9IG9yaWdp
bmFsU3Vidmlld3M7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKLSAg
ICBCT09MIHVzZUJhY2tGb3J3YXJkTGlzdCA9IF9wcml2YXRlLT5wYWdlICYmIHN0YXRpY19jYXN0
PEJhY2tGb3J3YXJkTGlzdCo+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgp
KS0+ZW5hYmxlZCgpOworICAgIEJPT0wgdXNlQmFja0ZvcndhcmRMaXN0ID0gX3ByaXZhdGUtPnBh
Z2UgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Jj4oX3ByaXZhdGUtPnBhZ2UtPmJhY2tG
b3J3YXJkKCkuY2xpZW50KCkpLmVuYWJsZWQoKTsKICAgICBpZiAoW2VuY29kZXIgYWxsb3dzS2V5
ZWRDb2RpbmddKSB7CiAgICAgICAgIFtlbmNvZGVyIGVuY29kZU9iamVjdDpbW3NlbGYgbWFpbkZy
YW1lXSBuYW1lXSBmb3JLZXk6QCJGcmFtZU5hbWUiXTsKICAgICAgICAgW2VuY29kZXIgZW5jb2Rl
T2JqZWN0OltzZWxmIGdyb3VwTmFtZV0gZm9yS2V5OkAiR3JvdXBOYW1lIl07CkBAIC02Mzg2LDE3
ICs2Mzg1LDE3IEBAIC0gKFdlYkJhY2tGb3J3YXJkTGlzdCAqKWJhY2tGb3J3YXJkTGlzdAogewog
ICAgIGlmICghX3ByaXZhdGUtPnBhZ2UpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgQmFja0Zv
cndhcmRMaXN0KiBsaXN0ID0gc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oX3ByaXZhdGUt
PnBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpOwotICAgIGlmICghbGlzdC0+ZW5hYmxlZCgp
KQorICAgIEJhY2tGb3J3YXJkTGlzdCYgbGlzdCA9IHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCY+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKTsKKyAgICBpZiAoIWxp
c3QuZW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBraXQobGlzdCk7
CisgICAgcmV0dXJuIGtpdCgmbGlzdCk7CiB9CiAKIC0gKHZvaWQpc2V0TWFpbnRhaW5zQmFja0Zv
cndhcmRMaXN0OihCT09MKWZsYWcKIHsKICAgICBpZiAoIV9wcml2YXRlLT5wYWdlKQogICAgICAg
ICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oX3ByaXZhdGUtPnBh
Z2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5zZXRFbmFibGVkKGZsYWcpOworICAgIHN0YXRp
Y19jYXN0PEJhY2tGb3J3YXJkTGlzdCY+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmNs
aWVudCgpKS5zZXRFbmFibGVkKGZsYWcpOwogfQogCiAtIChCT09MKWdvQmFjawpJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMjM3MTU2KQorKysgU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTgtMTAtMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBNb2Rlcm5pemUgQmFja0ZvcndhcmRDbGllbnQuaAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjEwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBCYWNrRm9yd2FyZExpc3QuY3BwOgorICAgICAg
ICAoQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdENvdW50IGNvbnN0KToKKyAgICAgICAgKEJhY2tG
b3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RDb3VudCBjb25zdCk6CisgICAgICAgIChCYWNrRm9yd2Fy
ZExpc3Q6OmJhY2tMaXN0Q291bnQpOiBEZWxldGVkLgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0
Ojpmb3J3YXJkTGlzdENvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBCYWNrRm9yd2FyZExpc3Qu
aDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJh
bWUpOgorICAgICAgICAoV2ViVmlldzo6YmFja0ZvcndhcmRMaXN0KToKKwogMjAxOC0xMC0xNSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
bW92ZSB1bnVzZWQgV2ViVmlldy5fZ2xvYmFsSGlzdG9yeUl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcAkocmV2aXNpb24gMjM3MTQ4KQorKysg
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTk2LDEyICsxOTYsMTIgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OnNldEVuYWJsZWQo
Ym9vbCBlbgogICAgIH0KIH0KIAotaW50IEJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RDb3VudCgp
CitpbnQgQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdENvdW50KCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9jdXJyZW50ID09IE5vQ3VycmVudEl0ZW1JbmRleCA/IDAgOiBtX2N1cnJlbnQ7CiB9CiAK
LWludCBCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRMaXN0Q291bnQoKQoraW50IEJhY2tGb3J3YXJk
TGlzdDo6Zm9yd2FyZExpc3RDb3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY3VycmVudCA9
PSBOb0N1cnJlbnRJdGVtSW5kZXggPyAwIDogKGludCltX2VudHJpZXMuc2l6ZSgpIC0gKG1fY3Vy
cmVudCArIDEpOwogfQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRM
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRM
aXN0LmgJKHJldmlzaW9uIDIzNzE0OCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tG
b3J3YXJkTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIHB1YmxpYzogCiAg
ICAgdm9pZCBzZXRDYXBhY2l0eShpbnQpOwogICAgIGJvb2wgZW5hYmxlZCgpOwogICAgIHZvaWQg
c2V0RW5hYmxlZChib29sKTsKLSAgICBpbnQgYmFja0xpc3RDb3VudCgpIG92ZXJyaWRlOwotICAg
IGludCBmb3J3YXJkTGlzdENvdW50KCkgb3ZlcnJpZGU7CisgICAgaW50IGJhY2tMaXN0Q291bnQo
KSBjb25zdCBmaW5hbDsKKyAgICBpbnQgZm9yd2FyZExpc3RDb3VudCgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgY29udGFpbnNJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKICAgICB2b2lk
IGNsb3NlKCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAko
cmV2aXNpb24gMjM3MTQ4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxMDksOSArMzEwOSw5IEBAIEhSRVNVTFQgV2ViVmlldzo6aW5p
dFdpdGhGcmFtZShSRUNUIGZyYW0KICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGll
bnQ+KHRoaXMpLAogICAgICAgICBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1h
a2VVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+KCksCi0gICAgICAgIFdlYkNvcmU6OkNhY2hl
U3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKQorICAgICAgICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQ
cm92aWRlcjo6Y3JlYXRlKCksCisgICAgICAgIEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKCkKICAg
ICApOwotICAgIGNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQgPSBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZSgpOwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCh0aGlzKTsKICAgICBjb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0g
bmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOwogICAgIGNvbmZpZ3VyYXRpb24uZHJhZ0Ns
aWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOwpAQCAtMzM5NCw3ICszMzk0LDcgQEAgSFJF
U1VMVCBXZWJWaWV3OjpiYWNrRm9yd2FyZExpc3QoX0NPTV9PdQogICAgIGlmICghbV91c2VCYWNr
Rm9yd2FyZExpc3QpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAgCi0gICAgKmxpc3QgPSBXZWJC
YWNrRm9yd2FyZExpc3Q6OmNyZWF0ZUluc3RhbmNlKHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCo+KG1fcGFnZS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSkpOworICAgICpsaXN0ID0gV2ViQmFj
a0ZvcndhcmRMaXN0OjpjcmVhdGVJbnN0YW5jZShtYWtlUmVmKCZzdGF0aWNfY2FzdDxCYWNrRm9y
d2FyZExpc3QmPihtX3BhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpKSk7CiAKICAgICByZXR1
cm4gU19PSzsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>