<?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>38895</bug_id>
          
          <creation_ts>2010-05-11 02:58:35 -0700</creation_ts>
          <short_desc>[DRT/Chromium] Apply recent changes of test_shell to DRT</short_desc>
          <delta_ts>2010-05-11 18:53:55 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38023</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hamaji</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223842</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-11 02:58:35 -0700</bug_when>
    <thetext>[DRT/Chromium] Apply recent changes of test_shell to DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223845</commentid>
    <comment_count>1</comment_count>
      <attachid>55683</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-11 03:08:06 -0700</bug_when>
    <thetext>Created attachment 55683
[DRT/Chromium] Apply recent changes of test_shell to DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223860</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 04:12:50 -0700</bug_when>
    <thetext>Attachment 55683 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2196126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223875</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-11 05:32:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 55683 [details] did not build on chromium:
&gt; Build output: http://webkit-commit-queue.appspot.com/results/2196126

This failure is ignorable.  Chromium EWS doesn&apos;t run &quot;gclient sync&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223944</commentid>
    <comment_count>4</comment_count>
      <attachid>55683</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-05-11 08:58:37 -0700</bug_when>
    <thetext>Comment on attachment 55683
[DRT/Chromium] Apply recent changes of test_shell to DRT

Thanks for doing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224324</commentid>
    <comment_count>5</comment_count>
      <attachid>55683</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-11 18:53:45 -0700</bug_when>
    <thetext>Comment on attachment 55683
[DRT/Chromium] Apply recent changes of test_shell to DRT

Clearing flags on attachment: 55683

Committed r59193: &lt;http://trac.webkit.org/changeset/59193&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224325</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-11 18:53:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55683</attachid>
            <date>2010-05-11 03:08:06 -0700</date>
            <delta_ts>2010-05-11 18:53:45 -0700</delta_ts>
            <desc>[DRT/Chromium] Apply recent changes of test_shell to DRT</desc>
            <filename>bug-38895-20100511190803.patch</filename>
            <type>text/plain</type>
            <size>52948</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDQ3NDU3MmVhZTBiMGE1ODk4OTllYTI1YzNkZTcyMGU3ODg4NDg0M2Yu
LjIzMjI0ZDBiNTExMWVjMWFhMzA3ZWE3NmE2YmM5MjI1NGM3YjYzZWEgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTExICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
RFJUL0Nocm9taXVtXSBBcHBseSByZWNlbnQgY2hhbmdlcyBvZiB0ZXN0X3NoZWxsIHRvIERSVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4OTUKKwor
ICAgICAgICAqIERFUFM6IFVwZGF0ZSBDaHJvbWl1bSByZXZpc2lvbiB0byB1c2UgdGhlIHJlY2Vu
dCB3ZWJraXRfc3VwcG9ydCBjaGFuZ2UuCisgICAgICAgICogV2ViS2l0Lmd5cDogQWRkIEphdmFT
Y3JpcHRDb3JlL3d0ZiB0byAnaW5jbHVkZScgc2VjdGlvbi4KKyAgICAgICAgKiBzcmMvV2ViR3Jh
cGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAgIFJlbW92ZSBFTkFCTEUoM0RfQ0FOVkFTKSB0
byBwcm92aWRlIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgICAgV2ViR3JhcGhp
Y3NDb250ZXh0M0Q6OmNyZWF0ZURlZmF1bHQoKS4KKwogMjAxMC0wNS0xMCAgVG9ueSBDaGFuZyAg
PHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0RFUFMgYi9XZWJLaXQvY2hyb21pdW0vREVQUwpp
bmRleCBiZGYyZjBkYWZiMGNlNDI1YzI0MjU5Y2NiY2IyODlkMmIyZTVjMzgyLi45ZTM0ZmU0NWEx
YjUzMzk1MmIwNmJhNzNkNzg0YzhlNzZlYjhmMWVkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vREVQUworKysgYi9XZWJLaXQvY2hyb21pdW0vREVQUwpAQCAtMzIsNyArMzIsNyBAQAogCiB2
YXJzID0gewogICAnY2hyb21pdW1fc3ZuJzogJ2h0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90
cnVuay9zcmMnLAotICAnY2hyb21pdW1fcmV2JzogJzQ2ODA1JywKKyAgJ2Nocm9taXVtX3Jldic6
ICc0Njg5OScsCiAKICAgJ3B0aHJlYWRzLXdpbjMyX3Jldic6ICcyNjcxNicsCiB9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCmluZGV4IDAwMjEyMmY3Y2Q5Mzk4MDgyNzY3YmMwNWFjMGQ5MzhhYTEyMDdiMDUuLjBjODZm
OWE1YWUyMDA1OGQxNTExYTE4MjA1YTUwZjYxY2YyOTlhYzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC01
NzYsNiArNTc2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKICAg
ICAgICAgICAgICAgICAgICAgICAgICcuJywKICAgICAgICAgICAgICAgICAgICAgICAgICcuLi8u
Li9KYXZhU2NyaXB0Q29yZScsCisgICAgICAgICAgICAgICAgICAgICAgICAnLi4vLi4vSmF2YVNj
cmlwdENvcmUvd3RmJywgIyB3dGYvdGV4dC8qLmggcmVmZXJzIGhlYWRlcnMgaW4gd3RmLyB3aXRo
b3V0IHd0Zi8uCiAgICAgICAgICAgICAgICAgICAgICAgICAnPChERVBUSCknLAogICAgICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAnZGVmaW5lcyc6IFsKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggYmMyMzcwMzBhOWNk
NzEyZTljNTM3MDM4ZmYzN2UzMTFkZWY0OGE2OC4uY2U2ZjU1ZDBjY2EzNDM2ZDI2OGJlNWFhYmM0
ZTA0Y2RlYTcwYTFkYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5jcHAKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLQogI2lu
Y2x1ZGUgIldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuaCIKIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC00Nyw1ICs0NSwzIEBAIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJHcmFwaGlj
c0NvbnRleHQzRDo6Y3JlYXRlRGVmYXVsdCgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAot
Ci0jZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBjYWI5MmI4MzYwOGRjMDdhYmE3
NDY1YmVlOGQ1MWFjNTQ3MDJjMzhlLi5hNGFjYWNmMzM3OGYzMzI3YmNjYjY1MGFjZWY4ZTlhYzA4
NmRhNjk2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTAtMDUtMTEgIEtlbnQgVGFtdXJhICA8
dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtEUlQvQ2hyb21pdW1dIEFwcGx5IHJlY2VudCBjaGFuZ2VzIG9mIHRlc3Rf
c2hlbGwgdG8gRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODg5NQorCisgICAgICAgIFBvcnQgdGhlIGNoYW5nZXMgdG8gdGVzdF9zaGVsbCBkdXJp
bmcgKHI0MDQ5MiwgcjQ2ODEwXSBvZiBDaHJvbWl1bS4KKyAgICAgICAgSGlnaGxpZ2h0czoKKyAg
ICAgICAgLSBJbnRyb2R1Y2UgTm90aWZpY2F0aW9uUHJlc2VudGVyCisgICAgICAgIC0gRml4IHBh
cmFtZXRlciBtaXNtYXRjaCBvZiBXZWJWaWV3Q2xpZW50OjpzdGFydERyYWdnaW5nKCkKKworICAg
ICAgICBUaGlzIGNoYW5nZSBmaXhlcyBkb3plbnMgb2YgdW5leHBlY3RlZCBiZWhhdmlvcnMuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAg
IEFkZCBOb3RpZmljYXRpb25QcmVzZW50ZXIue2NwcCxofQorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKGFwcGx5S2V5TW9kaWZpZXIp
OgorICAgICAgICAoRXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKToKKyAgICAgICAgKEV2ZW50U2Vu
ZGVyOjpyZXNldCk6CisgICAgICAgIChFdmVudFNlbmRlcjo6d2Vidmlldyk6CisgICAgICAgIChF
dmVudFNlbmRlcjo6ZG9EcmFnRHJvcCk6CisgICAgICAgIChFdmVudFNlbmRlcjo6a2V5RG93bik6
CisgICAgICAgIChFdmVudFNlbmRlcjo6YWRkVG91Y2hQb2ludCk6CisgICAgICAgIChFdmVudFNl
bmRlcjo6Y2xlYXJUb3VjaFBvaW50cyk6CisgICAgICAgIChFdmVudFNlbmRlcjo6cmVsZWFzZVRv
dWNoUG9pbnQpOgorICAgICAgICAoRXZlbnRTZW5kZXI6OnNldFRvdWNoTW9kaWZpZXIpOgorICAg
ICAgICAoRXZlbnRTZW5kZXI6OnVwZGF0ZVRvdWNoUG9pbnQpOgorICAgICAgICAoRXZlbnRTZW5k
ZXI6OmNhbmNlbFRvdWNoUG9pbnQpOgorICAgICAgICAoRXZlbnRTZW5kZXI6OnNlbmRDdXJyZW50
VG91Y2hFdmVudCk6CisgICAgICAgIChFdmVudFNlbmRlcjo6dG91Y2hFbmQpOgorICAgICAgICAo
RXZlbnRTZW5kZXI6OnRvdWNoTW92ZSk6CisgICAgICAgIChFdmVudFNlbmRlcjo6dG91Y2hTdGFy
dCk6CisgICAgICAgIChFdmVudFNlbmRlcjo6dG91Y2hDYW5jZWwpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpyZXNldCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dl
Ykluc3BlY3Rvcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWQpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNj
cm9sbGJhclBvbGljeSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2lsbFNl
bmRSZXF1ZXN0Q2xlYXJIZWFkZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldyk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5jcHA6IEFkZGVkLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAg
ICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpydW5GaWxlVGVz
dCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxs
OjpldmVudFNlbmRlcik6CisgICAgICAgIChUZXN0U2hlbGw6Om5vdGlmaWNhdGlvblByZXNlbnRl
cik6CisgICAgICAgIChUZXN0U2hlbGw6OnNob3dEZXZUb29scyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6
OmNyZWF0ZVZpZXcpOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmNyZWF0ZVBvcHVwTWVudSk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdDo6c3RhcnREcmFnZ2luZyk6CisgICAgICAgIChXZWJWaWV3SG9z
dDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVB
cHBsaWNhdGlvbkNhY2hlSG9zdCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6d2lsbFNlbmRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYlZpZXdIb3N0Ojp1cGRhdGVBZGRyZXNzQmFyKToKKyAgICAgICAg
KFdlYlZpZXdIb3N0Ojp1cGRhdGVVUkwpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdDo6YWRkQ2xlYXJIZWFkZXIp
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OmNsZWFySGVhZGVycyk6CisKIDIwMTAtMDUtMTAgIFRv
bnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50
IFRhbXVyYS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmd5cGkgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5n
eXBpCmluZGV4IDY1NzAzOWIwNjMwZWZiMjgxNWEwZTg1YzM3YWFmMzZhZThkNjk2ZjAuLjY5M2Yw
MmUwYjkyZjMyMGM5MGE2OWI1MzAyM2I5MzI0MmVhN2NjMzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQpAQCAtMTYsNiArMTYsOCBAQAogICAg
ICAgICAgICAgJ2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgnLAogICAgICAgICAgICAg
J2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vTW9j
a1NwZWxsQ2hlY2suaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2Vu
dGVyLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5jcHAn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL1BsYWluVGV4dENvbnRyb2xsZXIuY3BwJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9QbGFpblRleHRDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCmluZGV4IGM0OGFhZjRj
MWUwMWYxMWQyNDkyNjI0NTZhZmVjZWNhYmY5OWQ5Y2YuLjM4MTExMmViYTljNTM2YzNlOWFkMjA2
MjIxMTIwNTBiMTQ3YmRhNjIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJw
dWJsaWMvV2ViRHJhZ09wZXJhdGlvbi5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJQb2ludC5oIgog
I2luY2x1ZGUgInB1YmxpYy9XZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJwdWJsaWMvV2ViVG91Y2hQ
b2ludC5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJWaWV3LmgiCiAjaW5jbHVkZSAid2Via2l0L3N1
cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTY1LDcg
KzY2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIGJhc2U7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAotVGVzdFNoZWxsKiBFdmVudFNlbmRlcjo6dGVzdFNoZWxs
ID0gMDsKIFdlYlBvaW50IEV2ZW50U2VuZGVyOjpsYXN0TW91c2VQb3M7CiBXZWJNb3VzZUV2ZW50
OjpCdXR0b24gRXZlbnRTZW5kZXI6OnByZXNzZWRCdXR0b24gPSBXZWJNb3VzZUV2ZW50OjpCdXR0
b25Ob25lOwogV2ViTW91c2VFdmVudDo6QnV0dG9uIEV2ZW50U2VuZGVyOjpsYXN0QnV0dG9uVHlw
ZSA9IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbk5vbmU7CkBAIC05NCw2ICs5NCw4IEBAIHN0YXRpYyBX
ZWJEcmFnT3BlcmF0aW9uIGN1cnJlbnREcmFnRWZmZWN0Owogc3RhdGljIFdlYkRyYWdPcGVyYXRp
b25zTWFzayBjdXJyZW50RHJhZ0VmZmVjdHNBbGxvd2VkOwogc3RhdGljIGJvb2wgcmVwbGF5aW5n
U2F2ZWRFdmVudHMgPSBmYWxzZTsKIHN0YXRpYyBEZXF1ZTxTYXZlZEV2ZW50PiBtb3VzZUV2ZW50
UXVldWU7CitzdGF0aWMgaW50IHRvdWNoTW9kaWZpZXJzOworc3RhdGljIFZlY3RvcjxXZWJUb3Vj
aFBvaW50PiB0b3VjaFBvaW50czsKIAogLy8gVGltZSBhbmQgcGxhY2Ugb2YgdGhlIGxhc3QgbW91
c2UgdXAgZXZlbnQuCiBzdGF0aWMgZG91YmxlIGxhc3RDbGlja1RpbWVTZWMgPSAwOwpAQCAtMTYx
LDcgKzE2Myw3IEBAIHN0YXRpYyBib29sIGFwcGx5S2V5TW9kaWZpZXIoY29uc3Qgc3RyaW5nJiBt
b2RpZmllck5hbWUsIFdlYklucHV0RXZlbnQqIGV2ZW50KQogICAgICAgICBldmVudC0+bW9kaWZp
ZXJzIHw9IFdlYklucHV0RXZlbnQ6OkFsdEtleTsKICNpZiAhT1MoTUFDX09TX1gpCiAgICAgICAg
IC8vIE9uIFdpbmRvd3MgYWxsIGtleXMgd2l0aCBBbHQgbW9kaWZpZXIgd2lsbCBiZSBtYXJrZWQg
YXMgc3lzdGVtIGtleS4KLSAgICAgICAgLy8gV2Uga2VlcCB0aGUgc2FtZSBiZWhhdmlvciBvbiBM
aW51eCwgc2VlOgorICAgICAgICAvLyBXZSBrZWVwIHRoZSBzYW1lIGJlaGF2aW9yIG9uIExpbnV4
IGFuZCBldmVyeXdoZXJlIG5vbi1NYWMsIHNlZToKICAgICAgICAgLy8gV2ViS2l0L2Nocm9taXVt
L3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCiAgICAgICAgIC8vIElmIHdlIHdhbnQg
dG8gY2hhbmdlIHRoaXMgYmVoYXZpb3Igb24gTGludXgsIHRoaXMgcGllY2Ugb2YgY29kZSBtdXN0
IGJlCiAgICAgICAgIC8vIGtlcHQgaW4gc3luYyB3aXRoIHRoZSByZWxhdGVkIGNvZGUgaW4gYWJv
dmUgZmlsZS4KQEAgLTI0NiwxMyArMjQ4LDggQEAgZW51bSBLZXlMb2NhdGlvbkNvZGUgewogCiBF
dmVudFNlbmRlcjo6RXZlbnRTZW5kZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICA6IG1fbWV0aG9k
RmFjdG9yeSh0aGlzKQorICAgICwgbV9zaGVsbChzaGVsbCkKIHsKLSAgICAvLyBTZXQgc3RhdGlj
IHRlc3RTaGVsbCB2YXJpYWJsZSBzaW5jZSB3ZSBjYW4ndCBkbyBpdCBpbiBhbiBpbml0aWFsaXpl
ciBsaXN0LgotICAgIC8vIFdlIGFsc28gbmVlZCB0byBiZSBjYXJlZnVsIG5vdCB0byBhc3NpZ24g
dGVzdFNoZWxsIHRvIG5ldyB3aW5kb3dzIHdoaWNoIGFyZQotICAgIC8vIHRlbXBvcmFyeS4KLSAg
ICBpZiAoIXRlc3RTaGVsbCkKLSAgICAgICAgdGVzdFNoZWxsID0gc2hlbGw7Ci0KICAgICAvLyBJ
bml0aWFsaXplIHRoZSBtYXAgdGhhdCBhc3NvY2lhdGVzIG1ldGhvZHMgb2YgdGhpcyBjbGFzcyB3
aXRoIHRoZSBuYW1lcwogICAgIC8vIHRoZXkgd2lsbCB1c2Ugd2hlbiBjYWxsZWQgYnkgSmF2YVNj
cmlwdC4gIFRoZSBhY3R1YWwgYmluZGluZyBvZiB0aG9zZQogICAgIC8vIG5hbWVzIHRvIHRoZWly
IG1ldGhvZHMgd2lsbCBiZSBkb25lIGJ5IGNhbGxpbmcgYmluZFRvSmF2YVNjcmlwdCgpIChkZWZp
bmVkCkBAIC0yNzQsNiArMjcxLDE2IEBAIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcihUZXN0U2hl
bGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInpvb21QYWdlT3V0IiwgJkV2ZW50U2VuZGVyOjp6
b29tUGFnZU91dCk7CiAgICAgYmluZE1ldGhvZCgic2NoZWR1bGVBc3luY2hyb25vdXNDbGljayIs
ICZFdmVudFNlbmRlcjo6c2NoZWR1bGVBc3luY2hyb25vdXNDbGljayk7CiAgICAgYmluZE1ldGhv
ZCgiYmVnaW5EcmFnV2l0aEZpbGVzIiwgJkV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMp
OworICAgIGJpbmRNZXRob2QoImFkZFRvdWNoUG9pbnQiLCAmRXZlbnRTZW5kZXI6OmFkZFRvdWNo
UG9pbnQpOworICAgIGJpbmRNZXRob2QoImNhbmNlbFRvdWNoUG9pbnQiLCAmRXZlbnRTZW5kZXI6
OmNhbmNlbFRvdWNoUG9pbnQpOworICAgIGJpbmRNZXRob2QoImNsZWFyVG91Y2hQb2ludHMiLCAm
RXZlbnRTZW5kZXI6OmNsZWFyVG91Y2hQb2ludHMpOworICAgIGJpbmRNZXRob2QoInJlbGVhc2VU
b3VjaFBvaW50IiwgJkV2ZW50U2VuZGVyOjpyZWxlYXNlVG91Y2hQb2ludCk7CisgICAgYmluZE1l
dGhvZCgidXBkYXRlVG91Y2hQb2ludCIsICZFdmVudFNlbmRlcjo6dXBkYXRlVG91Y2hQb2ludCk7
CisgICAgYmluZE1ldGhvZCgic2V0VG91Y2hNb2RpZmllciIsICZFdmVudFNlbmRlcjo6c2V0VG91
Y2hNb2RpZmllcik7CisgICAgYmluZE1ldGhvZCgidG91Y2hDYW5jZWwiLCAmRXZlbnRTZW5kZXI6
OnRvdWNoQ2FuY2VsKTsKKyAgICBiaW5kTWV0aG9kKCJ0b3VjaEVuZCIsICZFdmVudFNlbmRlcjo6
dG91Y2hFbmQpOworICAgIGJpbmRNZXRob2QoInRvdWNoTW92ZSIsICZFdmVudFNlbmRlcjo6dG91
Y2hNb3ZlKTsKKyAgICBiaW5kTWV0aG9kKCJ0b3VjaFN0YXJ0IiwgJkV2ZW50U2VuZGVyOjp0b3Vj
aFN0YXJ0KTsKIAogICAgIC8vIFdoZW4gc2V0IHRvIHRydWUgKHRoZSBkZWZhdWx0IHZhbHVlKSwg
d2UgYmF0Y2ggbW91c2UgbW92ZSBhbmQgbW91c2UgdXAKICAgICAvLyBldmVudHMgc28gd2UgY2Fu
IHNpbXVsYXRlIGRyYWcgJiBkcm9wLgpAQCAtMzE1LDE2ICszMjIsMTYgQEAgdm9pZCBFdmVudFNl
bmRlcjo6cmVzZXQoKQogICAgIGNsaWNrQ291bnQgPSAwOwogICAgIGxhc3RCdXR0b25UeXBlID0g
V2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsKICAgICB0aW1lT2Zmc2V0TXMgPSAwOworICAgIHRv
dWNoTW9kaWZpZXJzID0gMDsKKyAgICB0b3VjaFBvaW50cy5jbGVhcigpOwogfQogCiBXZWJWaWV3
KiBFdmVudFNlbmRlcjo6d2VidmlldygpCiB7Ci0gICAgcmV0dXJuIHRlc3RTaGVsbC0+d2ViVmll
dygpOworICAgIHJldHVybiBtX3NoZWxsLT53ZWJWaWV3KCk7CiB9CiAKLXZvaWQgRXZlbnRTZW5k
ZXI6OmRvRHJhZ0Ryb3AoY29uc3QgV2ViS2l0OjpXZWJQb2ludCYgZXZlbnRQb3MsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCit2b2lk
IEV2ZW50U2VuZGVyOjpkb0RyYWdEcm9wKGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCiB7CiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAg
ICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIHByZXNzZWRCdXR0b24s
IGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKQEAgLTYxMCwxMSArNjE3LDExIEBAIHZvaWQgRXZlbnRT
ZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKICAgICAvLyBXZSBqdXN0IHNpbXVsYXRlIHRoZSBzYW1lIGJlaGF2aW9yIGhl
cmUuCiAgICAgc3RyaW5nIGVkaXRDb21tYW5kOwogICAgIGlmIChnZXRFZGl0Q29tbWFuZChldmVu
dERvd24sICZlZGl0Q29tbWFuZCkpCi0gICAgICAgIHRlc3RTaGVsbC0+d2ViVmlld0hvc3QoKS0+
c2V0RWRpdENvbW1hbmQoZWRpdENvbW1hbmQsICIiKTsKKyAgICAgICAgbV9zaGVsbC0+d2ViVmll
d0hvc3QoKS0+c2V0RWRpdENvbW1hbmQoZWRpdENvbW1hbmQsICIiKTsKIAogICAgIHdlYnZpZXco
KS0+aGFuZGxlSW5wdXRFdmVudChldmVudERvd24pOwogCi0gICAgdGVzdFNoZWxsLT53ZWJWaWV3
SG9zdCgpLT5jbGVhckVkaXRDb21tYW5kKCk7CisgICAgbV9zaGVsbC0+d2ViVmlld0hvc3QoKS0+
Y2xlYXJFZGl0Q29tbWFuZCgpOwogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewogICAgICAgICBl
dmVudENoYXIudHlwZSA9IFdlYklucHV0RXZlbnQ6OkNoYXI7CkBAIC03ODcsNiArNzk0LDEyNCBA
QCB2b2lkIEV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2
b2lkIEV2ZW50U2VuZGVyOjphZGRUb3VjaFBvaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7CisK
KyAgICBXZWJUb3VjaFBvaW50IHRvdWNoUG9pbnQ7CisgICAgdG91Y2hQb2ludC5zdGF0ZSA9IFdl
YlRvdWNoUG9pbnQ6OlN0YXRlUHJlc3NlZDsKKyAgICB0b3VjaFBvaW50LnBvc2l0aW9uID0gV2Vi
UG9pbnQoYXJndW1lbnRzWzBdLnRvSW50MzIoKSwgYXJndW1lbnRzWzFdLnRvSW50MzIoKSk7Cisg
ICAgdG91Y2hQb2ludC5pZCA9IHRvdWNoUG9pbnRzLnNpemUoKTsKKyAgICB0b3VjaFBvaW50cy5h
cHBlbmQodG91Y2hQb2ludCk7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXI6OmNsZWFyVG91Y2hQb2lu
dHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJl
c3VsdC0+c2V0TnVsbCgpOworICAgIHRvdWNoUG9pbnRzLmNsZWFyKCk7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXI6OnJlbGVhc2VUb3VjaFBvaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7CisKKyAg
ICBjb25zdCB1bnNpZ25lZCBpbmRleCA9IGFyZ3VtZW50c1swXS50b0ludDMyKCk7CisgICAgQVNT
RVJUKGluZGV4IDwgdG91Y2hQb2ludHMuc2l6ZSgpKTsKKworICAgIFdlYlRvdWNoUG9pbnQqIHRv
dWNoUG9pbnQgPSAmdG91Y2hQb2ludHNbaW5kZXhdOworICAgIHRvdWNoUG9pbnQtPnN0YXRlID0g
V2ViVG91Y2hQb2ludDo6U3RhdGVSZWxlYXNlZDsKK30KKwordm9pZCBFdmVudFNlbmRlcjo6c2V0
VG91Y2hNb2RpZmllcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworCisgICAgaW50IG1hc2sgPSAw
OworICAgIGNvbnN0IHN0cmluZyBrZXlOYW1lID0gYXJndW1lbnRzWzBdLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGtleU5hbWUgPT0gInNoaWZ0IikKKyAgICAgICAgbWFzayA9IFdlYklucHV0RXZlbnQ6
OlNoaWZ0S2V5OworICAgIGVsc2UgaWYgKGtleU5hbWUgPT0gImFsdCIpCisgICAgICAgIG1hc2sg
PSBXZWJJbnB1dEV2ZW50OjpBbHRLZXk7CisgICAgZWxzZSBpZiAoa2V5TmFtZSA9PSAiY3RybCIp
CisgICAgICAgIG1hc2sgPSBXZWJJbnB1dEV2ZW50OjpDb250cm9sS2V5OworICAgIGVsc2UgaWYg
KGtleU5hbWUgPT0gIm1ldGEiKQorICAgICAgICBtYXNrID0gV2ViSW5wdXRFdmVudDo6TWV0YUtl
eTsKKworICAgIGlmIChhcmd1bWVudHNbMV0udG9Cb29sZWFuKCkpCisgICAgICAgIHRvdWNoTW9k
aWZpZXJzIHw9IG1hc2s7CisgICAgZWxzZQorICAgICAgICB0b3VjaE1vZGlmaWVycyAmPSB+bWFz
azsKK30KKwordm9pZCBFdmVudFNlbmRlcjo6dXBkYXRlVG91Y2hQb2ludChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+
c2V0TnVsbCgpOworCisgICAgY29uc3QgdW5zaWduZWQgaW5kZXggPSBhcmd1bWVudHNbMF0udG9J
bnQzMigpOworICAgIEFTU0VSVChpbmRleCA8IHRvdWNoUG9pbnRzLnNpemUoKSk7CisKKyAgICBX
ZWJQb2ludCBwb3NpdGlvbihhcmd1bWVudHNbMV0udG9JbnQzMigpLCBhcmd1bWVudHNbMl0udG9J
bnQzMigpKTsKKyAgICBXZWJUb3VjaFBvaW50KiB0b3VjaFBvaW50ID0gJnRvdWNoUG9pbnRzW2lu
ZGV4XTsKKyAgICB0b3VjaFBvaW50LT5zdGF0ZSA9IFdlYlRvdWNoUG9pbnQ6OlN0YXRlTW92ZWQ7
CisgICAgdG91Y2hQb2ludC0+cG9zaXRpb24gPSBwb3NpdGlvbjsKK30KKwordm9pZCBFdmVudFNl
bmRlcjo6Y2FuY2VsVG91Y2hQb2ludChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworCisgICAgY29u
c3QgdW5zaWduZWQgaW5kZXggPSBhcmd1bWVudHNbMF0udG9JbnQzMigpOworICAgIEFTU0VSVChp
bmRleCA8IHRvdWNoUG9pbnRzLnNpemUoKSk7CisKKyAgICBXZWJUb3VjaFBvaW50KiB0b3VjaFBv
aW50ID0gJnRvdWNoUG9pbnRzW2luZGV4XTsKKyAgICB0b3VjaFBvaW50LT5zdGF0ZSA9IFdlYlRv
dWNoUG9pbnQ6OlN0YXRlQ2FuY2VsbGVkOworfQorCit2b2lkIEV2ZW50U2VuZGVyOjpzZW5kQ3Vy
cmVudFRvdWNoRXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlKQoreworICAgIEFT
U0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV2ViVG91Y2hFdmVudDo6dG91Y2hQb2ludHNMZW5n
dGhDYXApID4gdG91Y2hQb2ludHMuc2l6ZSgpKTsKKyAgICBXZWJUb3VjaEV2ZW50IHRvdWNoRXZl
bnQ7CisgICAgdG91Y2hFdmVudC50eXBlID0gdHlwZTsKKyAgICB0b3VjaEV2ZW50Lm1vZGlmaWVy
cyA9IHRvdWNoTW9kaWZpZXJzOworICAgIHRvdWNoRXZlbnQudG91Y2hQb2ludHNMZW5ndGggPSB0
b3VjaFBvaW50cy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdWNoUG9p
bnRzLnNpemUoKTsgKytpKQorICAgICAgICB0b3VjaEV2ZW50LnRvdWNoUG9pbnRzW2ldID0gdG91
Y2hQb2ludHNbaV07CisgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KHRvdWNoRXZlbnQp
OworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdWNoUG9pbnRzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIFdlYlRvdWNoUG9pbnQqIHRvdWNoUG9pbnQgPSAmdG91Y2hQb2ludHNbaV07
CisgICAgICAgIGlmICh0b3VjaFBvaW50LT5zdGF0ZSA9PSBXZWJUb3VjaFBvaW50OjpTdGF0ZVJl
bGVhc2VkKSB7CisgICAgICAgICAgICB0b3VjaFBvaW50cy5yZW1vdmUoaSk7CisgICAgICAgICAg
ICAtLWk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdG91Y2hQb2ludC0+c3RhdGUgPSBX
ZWJUb3VjaFBvaW50OjpTdGF0ZVN0YXRpb25hcnk7CisgICAgfQorfQorCit2b2lkIEV2ZW50U2Vu
ZGVyOjp0b3VjaEVuZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7CisgICAgc2VuZEN1cnJlbnRUb3VjaEV2ZW50KFdl
YklucHV0RXZlbnQ6OlRvdWNoRW5kKTsKK30KKwordm9pZCBFdmVudFNlbmRlcjo6dG91Y2hNb3Zl
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1
bHQtPnNldE51bGwoKTsKKyAgICBzZW5kQ3VycmVudFRvdWNoRXZlbnQoV2ViSW5wdXRFdmVudDo6
VG91Y2hNb3ZlKTsKK30KKwordm9pZCBFdmVudFNlbmRlcjo6dG91Y2hTdGFydChjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXROdWxs
KCk7CisgICAgc2VuZEN1cnJlbnRUb3VjaEV2ZW50KFdlYklucHV0RXZlbnQ6OlRvdWNoU3RhcnQp
OworfQorCit2b2lkIEV2ZW50U2VuZGVyOjp0b3VjaENhbmNlbChjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7CisgICAg
c2VuZEN1cnJlbnRUb3VjaEV2ZW50KFdlYklucHV0RXZlbnQ6OlRvdWNoQ2FuY2VsKTsKK30KKwog
Ly8KIC8vIFVuaW1wbGVtZW50ZWQgc3R1YnMKIC8vCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuaAppbmRleCA3NTZiMDA4MDBlMjAwOTQ1MzVk
NzE3ZmFiM2I1MDBkNzM5Y2JhMzUyLi5hYzQ3NWEzYjQxODIxMGMyZTNjYzQ3ZDBkNzRkZmI4NzFm
ZGQ1YmUxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9F
dmVudFNlbmRlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2
ZW50U2VuZGVyLmgKQEAgLTYwLDkgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXQoKTsK
IAogICAgIC8vIFNpbXVsYXRlIGRyYWcmZHJvcCBzeXN0ZW0gY2FsbC4KLSAgICBzdGF0aWMgdm9p
ZCBkb0RyYWdEcm9wKGNvbnN0IFdlYktpdDo6V2ViUG9pbnQmLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJEcmFnRGF0YSYsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXQ6OldlYkRyYWdPcGVyYXRpb25zTWFzayk7CisgICAgdm9pZCBkb0RyYWdE
cm9wKGNvbnN0IFdlYktpdDo6V2ViRHJhZ0RhdGEmLCBXZWJLaXQ6OldlYkRyYWdPcGVyYXRpb25z
TWFzayk7CiAKICAgICAvLyBKUyBjYWxsYmFjayBtZXRob2RzLgogICAgIHZvaWQgbW91c2VEb3du
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKQEAgLTgwLDYgKzc4LDE3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGJlZ2luRHJhZ1dpdGhGaWxlcyhjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CiAgICAgQ3BwVmFyaWFudCBkcmFnTW9kZTsKIAorICAgIHZvaWQg
YWRkVG91Y2hQb2ludChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBjYW5jZWxUb3VjaFBvaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIGNsZWFyVG91Y2hQb2ludHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOworICAgIHZvaWQgcmVsZWFzZVRvdWNoUG9pbnQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0VG91Y2hNb2RpZmllcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCB0b3VjaENhbmNlbChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCB0b3VjaEVuZChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCB0b3VjaE1vdmUoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgdG91Y2hTdGFydChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCB1cGRhdGVUb3VjaFBv
aW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vIFVuaW1w
bGVtZW50ZWQgc3R1YnMKICAgICB2b2lkIGNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbmFibGVET01VSUV2ZW50TG9nZ2luZyhjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC0xMDAsMTcgKzEwOSwxNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gUmV0dXJucyB0aGUgdGVzdCBzaGVsbCdzIHdlYnZp
ZXcuCi0gICAgc3RhdGljIFdlYktpdDo6V2ViVmlldyogd2VidmlldygpOworICAgIFdlYktpdDo6
V2ViVmlldyogd2VidmlldygpOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGRyYWdNb2RlIGlz
IHRydWUuCiAgICAgYm9vbCBpc0RyYWdNb2RlKCkgeyByZXR1cm4gZHJhZ01vZGUuaXNCb29sKCkg
JiYgZHJhZ01vZGUudG9Cb29sZWFuKCk7IH0KIAogICAgIC8vIFNvbWV0aW1lcyB3ZSBxdWV1ZSB1
cCBtb3VzZSBtb3ZlIGFuZCBtb3VzZSB1cCBldmVudHMgZm9yIGRyYWcgZHJvcAogICAgIC8vIGhh
bmRsaW5nIHB1cnBvc2VzLiAgVGhlc2UgbWV0aG9kcyBkaXNwYXRjaCB0aGUgZXZlbnQuCi0gICAg
c3RhdGljIHZvaWQgZG9Nb3VzZU1vdmUoY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50Jik7Ci0g
ICAgc3RhdGljIHZvaWQgZG9Nb3VzZVVwKGNvbnN0IFdlYktpdDo6V2ViTW91c2VFdmVudCYpOwor
ICAgIHZvaWQgZG9Nb3VzZU1vdmUoY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50Jik7CisgICAg
dm9pZCBkb01vdXNlVXAoY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50Jik7CiAgICAgc3RhdGlj
IHZvaWQgZG9MZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKLSAgICBzdGF0aWMgdm9pZCBy
ZXBsYXlTYXZlZEV2ZW50cygpOworICAgIHZvaWQgcmVwbGF5U2F2ZWRFdmVudHMoKTsKIAogICAg
IC8vIEhlbHBlciB0byByZXR1cm4gdGhlIGJ1dHRvbiB0eXBlIGdpdmVuIGEgYnV0dG9uIGNvZGUK
ICAgICBzdGF0aWMgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b24gZ2V0QnV0dG9uVHlwZUZy
b21CdXR0b25OdW1iZXIoaW50KTsKQEAgLTEyNSwxMCArMTM0LDEzIEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpC
dXR0b24pOwogCisgICAgLy8gQ29tcG9zZSBhIHRvdWNoIGV2ZW50IGZyb20gdGhlIGN1cnJlbnQg
dG91Y2ggcG9pbnRzIGFuZCBzZW5kIGl0LgorICAgIHZvaWQgc2VuZEN1cnJlbnRUb3VjaEV2ZW50
KGNvbnN0IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VHlwZSk7CisKICAgICBTY29wZWRSdW5uYWJs
ZU1ldGhvZEZhY3Rvcnk8RXZlbnRTZW5kZXI+IG1fbWV0aG9kRmFjdG9yeTsKIAogICAgIC8vIE5v
bi1vd25pbmcgcG9pbnRlci4gIFRoZSBFdmVudFNlbmRlciBpcyBvd25lZCBieSB0aGUgVGVzdFNo
ZWxsLgotICAgIHN0YXRpYyBUZXN0U2hlbGwqIHRlc3RTaGVsbDsKKyAgICBUZXN0U2hlbGwqIG1f
c2hlbGw7CiAKICAgICAvLyBMb2NhdGlvbiBvZiBsYXN0IG1vdXNlTW92ZVRvIGV2ZW50LgogICAg
IHN0YXRpYyBXZWJLaXQ6OldlYlBvaW50IGxhc3RNb3VzZVBvczsKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAppbmRleCAxZGU4MjQ0ZDY3NWE4YWU4YWVjODk5ZDhiNTMyNTZiZTRiMzE3MTE2Li42YzYw
ZmU5NWMxZjI0ZGQ2NjBhZWNkZTBiMmM0ZjY2YTBjOWZjYzBkIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAicHVibGljL1dlYkZyYW1lLmgiCiAj
aW5jbHVkZSAicHVibGljL1dlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJL
aXQuaCIKKyNpbmNsdWRlICJwdWJsaWMvV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5j
bHVkZSAicHVibGljL1dlYlNjcmlwdFNvdXJjZS5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJTZWN1
cml0eVBvbGljeS5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJTZXR0aW5ncy5oIgpAQCAtNDgsMTEg
KzQ5LDEzIEBACiAjaW5jbHVkZSAicHVibGljL1dlYlVSTC5oIgogI2luY2x1ZGUgInB1YmxpYy9X
ZWJWaWV3LmgiCiAjaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIE9TKFdJTkRPV1MpCiAjaW5jbHVk
ZSA8d3RmL093bkFycmF5UHRyLmg+CiAjZW5kaWYKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtOTAs
MTAgKzkzLDEyIEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihU
ZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldENsb3NlUmVtYWluaW5nV2luZG93
c1doZW5Db21wbGV0ZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKTsKICAgICBiaW5kTWV0aG9kKCJvYmpDSWRlbnRpdHlJc0VxdWFs
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpvYmpDSWRlbnRpdHlJc0VxdWFsKTsKICAgICBiaW5k
TWV0aG9kKCJzZXRBbHdheXNBY2NlcHRDb29raWVzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRBbHdheXNBY2NlcHRDb29raWVzKTsKKyAgICBiaW5kTWV0aG9kKCJzaG93V2ViSW5zcGVjdG9y
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRXaW5kb3dJc0tleSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNL
ZXkpOwogICAgIGJpbmRNZXRob2QoInNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKTsKICAg
ICBiaW5kTWV0aG9kKCJzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRV
c2VyU3R5bGVTaGVldEVuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFVzZXJTdHls
ZVNoZWV0RW5hYmxlZCk7CisgICAgYmluZE1ldGhvZCgic2V0QXV0aG9yQW5kVXNlclN0eWxlc0Vu
YWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFi
bGVkKTsKICAgICBiaW5kTWV0aG9kKCJwYXRoVG9Mb2NhbFJlc291cmNlIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKTsKICAgICBiaW5kTWV0aG9kKCJhZGRGaWxl
VG9QYXN0ZWJvYXJkT25EcmFnIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphZGRGaWxlVG9QYXN0
ZWJvYXJkT25EcmFnKTsKICAgICBiaW5kTWV0aG9kKCJleGVjQ29tbWFuZCIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZXhlY0NvbW1hbmQpOwpAQCAtMTA5LDE4ICsxMTQsMjMgQEAgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAg
YmluZE1ldGhvZCgiZGlzYWJsZUltYWdlTG9hZGluZyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZGlzYWJsZUltYWdlTG9hZGluZyk7CiAgICAgYmluZE1ldGhvZCgic2V0SWNvbkRhdGFiYXNlRW5h
YmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAg
ICAgYmluZE1ldGhvZCgic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRTY3Jv
bGxiYXJQb2xpY3kiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeSk7
CiAgICAgYmluZE1ldGhvZCgid2FpdEZvclBvbGljeURlbGVnYXRlIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjp3YWl0Rm9yUG9saWN5RGVsZWdhdGUpOworICAgIGJpbmRNZXRob2QoInNldFdpbGxT
ZW5kUmVxdWVzdENsZWFySGVhZGVyIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2Vu
ZFJlcXVlc3RDbGVhckhlYWRlcik7CiAgICAgYmluZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0
UmV0dXJuc051bGxPblJlZGlyZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2Vu
ZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QpOwogICAgIGJpbmRNZXRob2QoInNldFdpbGxT
ZW5kUmVxdWVzdFJldHVybnNOdWxsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2Vu
ZFJlcXVlc3RSZXR1cm5zTnVsbCk7CiAgICAgYmluZE1ldGhvZCgiYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KTsKKyAgICBiaW5kTWV0aG9kKCJyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkpOwogICAgIGJpbmRNZXRob2QoImNsZWFyQWxsRGF0YWJhc2VzIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpjbGVhckFsbERhdGFiYXNlcyk7CiAgICAgYmluZE1ldGhvZCgic2V0RGF0YWJh
c2VRdW90YSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGF0YWJhc2VRdW90YSk7CiAgICAg
YmluZE1ldGhvZCgic2V0UE9TSVhMb2NhbGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBP
U0lYTG9jYWxlKTsKICAgICBiaW5kTWV0aG9kKCJjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQpOwogICAg
IGJpbmRNZXRob2QoImFkZFVzZXJTY3JpcHQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVz
ZXJTY3JpcHQpOworICAgIGJpbmRNZXRob2QoImFkZFVzZXJTdHlsZVNoZWV0IiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk7CiAgICAgYmluZE1ldGhvZCgicGFnZU51
bWJlckZvckVsZW1lbnRCeUlkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpwYWdlTnVtYmVyRm9y
RWxlbWVudEJ5SWQpOwogICAgIGJpbmRNZXRob2QoIm51bWJlck9mUGFnZXMiLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om51bWJlck9mUGFnZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBTZWxlY3Rp
b25SZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wU2VsZWN0aW9uUmVjdCk7CisgICAg
YmluZE1ldGhvZCgiZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbik7CiAKICAg
ICAvLyBUaGUgZm9sbG93aW5nIGFyZSBzdHVicy4KICAgICBiaW5kTWV0aG9kKCJkdW1wQXNXZWJB
cmNoaXZlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQXNXZWJBcmNoaXZlKTsKQEAgLTEz
NSw2ICsxNDUsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIo
VGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJhY2Nlc3NTdG9yZWRXZWJTY3JpcHRP
YmplY3QiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFjY2Vzc1N0b3JlZFdlYlNjcmlwdE9iamVj
dCk7CiAgICAgYmluZE1ldGhvZCgib2JqQ0NsYXNzTmFtZU9mIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpvYmpDQ2xhc3NOYW1lT2YpOwogICAgIGJpbmRNZXRob2QoImFkZERpc2FsbG93ZWRVUkwi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZERpc2FsbG93ZWRVUkwpOworICAgIGJpbmRNZXRo
b2QoImNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2Fs
bFNob3VsZENsb3NlT25XZWJWaWV3KTsKICAgICBiaW5kTWV0aG9kKCJzZXRDYWxsQ2xvc2VPbldl
YlZpZXdzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRDYWxsQ2xvc2VPbldlYlZpZXdzKTsK
ICAgICBiaW5kTWV0aG9kKCJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJz
ZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwpAQCAtNDQwLDExICs0NTEsMTEgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIGlmIChtX3NoZWxsKSB7CiAg
ICAgICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0Wm9vbUxldmVsKGZhbHNlLCAwKTsKICAgICAg
ICAgbV9zaGVsbC0+d2ViVmlldygpLT5zZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHModHJ1
ZSk7Ci0jaWYgZGVmaW5lZChPU19MSU5VWCkKKyNpZiAhT1MoREFSV0lOKSAmJiAhT1MoV0lORE9X
UykgLy8gQWN0dWFsbHksIFRPT0xLSVRfR1RLCiAgICAgICAgIC8vIChDb25zdGFudHMgY29waWVk
IGJlY2F1c2Ugd2UgY2FuJ3QgZGVwZW5kIG9uIHRoZSBoZWFkZXIgdGhhdCBkZWZpbmVkCiAgICAg
ICAgIC8vIHRoZW0gZnJvbSB0aGlzIGZpbGUuKQogICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCkt
PnNldFNlbGVjdGlvbkNvbG9ycygweGZmMWU5MGZmLCAweGZmMDAwMDAwLCAweGZmYzhjOGM4LCAw
eGZmMzIzMjMyKTsKLSNlbmRpZiAvLyBkZWZpbmVkKE9TX0xJTlVYKQorI2VuZGlmCiAgICAgICAg
IG1fc2hlbGwtPndlYlZpZXcoKS0+cmVtb3ZlQWxsVXNlckNvbnRlbnQoKTsKICAgICB9CiAgICAg
bV9kdW1wQXNUZXh0ID0gZmFsc2U7CkBAIC00NjgsNyArNDc5LDcgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIG1fd2ViSGlzdG9yeUl0ZW1Db3VudC5zZXQoMCk7CiAK
ICAgICB3ZWJraXRfc3VwcG9ydDo6U2V0QWNjZXB0QWxsQ29va2llcyhmYWxzZSk7Ci0gICAgV2Vi
U2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOworICAgIFdlYlNl
Y3VyaXR5UG9saWN5OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIAogICAgIC8vIFJl
c2V0IHRoZSBkZWZhdWx0IHF1b3RhIGZvciBlYWNoIG9yaWdpbiB0byA1TUIKICAgICB3ZWJraXRf
c3VwcG9ydDo6U2V0RGF0YWJhc2VRdW90YSg1ICogMTAyNCAqIDEwMjQpOwpAQCAtNTMyLDYgKzU0
MywxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBbHdheXNBY2NlcHRDb29raWVz
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwog
fQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBtX3NoZWxsLT5zaG93
RGV2VG9vbHMoKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAg
JiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQpAQCAtNTU1LDYgKzU3MiwxMyBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAgICAgIG1fc2hl
bGwtPndlYlZpZXcoKS0+c2V0dGluZ3MoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQo
YXJndW1lbnRzWzBdLnZhbHVlLmJvb2xWYWx1ZSk7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmV4ZWNDb21tYW5kKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5z
ZXROdWxsKCk7CkBAIC01OTksNiArNjIzLDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldFVzZURhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzCiAg
ICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dFNjcm9sbGJhclBvbGljeShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1
bHQpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudC4KKyAgICAvLyBDdXJyZW50bHkgb25seSBo
YXMgYSBub24tbnVsbCBpbXBsZW1lbnRhdGlvbiBvbiBRVC4KKyAgICByZXN1bHQtPnNldE51bGwo
KTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkK
IHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgp
KSB7CkBAIC02MTgsNiArNjQ5LDE2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRG
b3JQb2xpY3lEZWxlZ2F0ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpCiAgICAgcmVz
dWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdpbGxT
ZW5kUmVxdWVzdENsZWFySGVhZGVyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBD
cHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFy
Z3VtZW50c1swXS5pc1N0cmluZygpKSB7CisgICAgICAgIHN0cmluZyBoZWFkZXIgPSBhcmd1bWVu
dHNbMF0udG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFoZWFkZXIuZW1wdHkoKSkKKyAgICAgICAg
ICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPmFkZENsZWFySGVhZGVyKFN0cmluZzo6ZnJvbVVU
RjgoaGVhZGVyLmNfc3RyKCkpKTsKKyAgICB9CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxs
T25SZWRpcmVjdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogewogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0u
aXNCb29sKCkpCkBAIC04MDAsNiArODQxLDIxIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEljb25EYXRhYmFzZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyCiAg
ICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXQobV9zaGVsbC0+d2ViVmlldygpLT5kaXNwYXRj
aEJlZm9yZVVubG9hZEV2ZW50KCkpOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpn
cmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgIT0gMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpIHsKKyAgICAgICAgcmVzdWx0LT5z
ZXQoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fc2hlbGwtPm5vdGlmaWNh
dGlvblByZXNlbnRlcigpLT5ncmFudFBlcm1pc3Npb24oV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1
bWVudHNbMF0udG9TdHJpbmcoKSkpOworICAgIHJlc3VsdC0+c2V0KHRydWUpOworfQorCiAvLwog
Ly8gVW5pbXBsZW1lbnRlZCBzdHVicwogLy8KQEAgLTEwNTgsNiArMTExNCwyNSBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBD
cHBBcmd1bWVudExpc3QmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJndW1lbnRzWzNdLnRvQm9vbGVhbigpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQt
PnNldE51bGwoKTsKKworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDQgfHwgIWFyZ3VtZW50
c1swXS5pc1N0cmluZygpIHx8ICFhcmd1bWVudHNbMV0uaXNTdHJpbmcoKQorICAgICAgICB8fCAh
YXJndW1lbnRzWzJdLmlzU3RyaW5nKCkgfHwgIWFyZ3VtZW50c1szXS5pc0Jvb2woKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV2ViS2l0OjpXZWJVUkwgdXJsKEdVUkwoYXJndW1lbnRzWzBdLnRv
U3RyaW5nKCkpKTsKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFdlYlNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgK
KyAgICAgICAgdXJsLAorICAgICAgICBXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1sxXS50
b1N0cmluZygpKSwKKyAgICAgICAgV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMl0udG9T
dHJpbmcoKSksCisgICAgICAgIGFyZ3VtZW50c1szXS50b0Jvb2xlYW4oKSk7Cit9CisKIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsRGF0YWJhc2VzKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXRO
dWxsKCk7CkBAIC0xMTgzLDcgKzEyNTgsMTUgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWUKIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51
bGwoKTsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5pc1N0
cmluZygpIHx8ICFhcmd1bWVudHNbMV0uaXNCb29sKCkpCisgICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgPCAyIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzQm9v
bCgpKQogICAgICAgICByZXR1cm47CiAgICAgbV9zaGVsbC0+d2ViVmlldygpLT5hZGRVc2VyU2Ny
aXB0KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpLCBhcmd1bWVu
dHNbMV0udG9Cb29sZWFuKCkpOwogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRV
c2VyU3R5bGVTaGVldChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGlmIChhcmd1bWVudHMu
c2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybjsK
KyAgICBtX3NoZWxsLT53ZWJWaWV3KCktPmFkZFVzZXJTdHlsZVNoZWV0KFdlYlN0cmluZzo6ZnJv
bVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGNhOGIwMTQwNGU4Y2ZkNGRlYTBlMTc3YzQwM2FjN2VlN2YwMDdlZDIuLmU3YTQ4ZTIwM2E3
ODU5ODIzMGZmOWY2ZTYxNjRlZTA3OTcxYTUwMTMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAt
MTI3LDYgKzEyNyw5IEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSBjb29raWUgcG9saWN5
IGZyb20gdGhlIGRlZmF1bHQgdG8gYWxsb3cgYWxsIGNvb2tpZXMuCiAgICAgdm9pZCBzZXRBbHdh
eXNBY2NlcHRDb29raWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAor
ICAgIC8vIFNob3dzIERldlRvb2xzIHdpbmRvdy4KKyAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3Io
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAgLy8gR2l2ZXMgZm9j
dXMgdG8gdGhlIHdpbmRvdy4KICAgICB2b2lkIHNldFdpbmRvd0lzS2V5KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAtMTM5LDExICsxNDIsMTYgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgLy8gUGFzc2VzIHRoaXMgcHJl
ZmVyZW5jZSB0aHJvdWdoIHRvIFdlYlNldHRpbmdzLgorICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNl
clN0eWxlc0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAg
ICAgLy8gUHV0cyBXZWJraXQgaW4gImRhc2hib2FyZCBjb21wYXRpYmlsaXR5IG1vZGUiLCB3aGlj
aCBpcyB1c2VkIGluIG9ic2N1cmUKICAgICAvLyBNYWMtb25seSBjaXJjdW1zdGFuY2VzLiBJdCdz
IG5vdCByZWFsbHkgbmVjZXNzYXJ5LCBhbmQgd2lsbCBtb3N0IGxpa2VseQogICAgIC8vIG5ldmVy
IGJlIHVzZWQgYnkgQ2hyb21lLCBidXQgc29tZSBsYXlvdXQgdGVzdHMgZGVwZW5kIG9uIGl0cyBw
cmVzZW5jZS4KICAgICB2b2lkIHNldFVzZURhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIHZvaWQgc2V0U2Nyb2xsYmFy
UG9saWN5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vIENh
dXNlcyBuYXZpZ2F0aW9uIGFjdGlvbnMganVzdCBwcmludG91dCB0aGUgaW50ZW5kZWQgbmF2aWdh
dGlvbiBpbnN0ZWFkCiAgICAgLy8gb2YgdGFraW5nIHlvdSB0byB0aGUgcGFnZS4gVGhpcyBpcyB1
c2VkIGZvciBjYXNlcyBsaWtlIG1haWx0bywgd2hlcmUgeW91CiAgICAgLy8gZG9uJ3QgYWN0dWFs
bHkgd2FudCB0byBvcGVuIHRoZSBtYWlsIHByb2dyYW0uCkBAIC0xNTIsNiArMTYwLDkgQEAgcHVi
bGljOgogICAgIC8vIERlbGF5cyBjb21wbGV0aW9uIG9mIHRoZSB0ZXN0IHVudGlsIHRoZSBwb2xp
Y3kgZGVsZWdhdGUgcnVucy4KICAgICB2b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZShjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBDYXVzZXMgV2lsbFNlbmRS
ZXF1ZXN0IHRvIGNsZWFyIGNlcnRhaW4gaGVhZGVycy4KKyAgICB2b2lkIHNldFdpbGxTZW5kUmVx
dWVzdENsZWFySGVhZGVyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwog
ICAgIC8vIENhdXNlcyBXaWxsU2VuZFJlcXVlc3QgdG8gYmxvY2sgcmVkaXJlY3RzLgogICAgIHZv
aWQgc2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAtMTk1LDYgKzIwNiw5IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZHVtcFNlbGVjdGlvblJlY3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogCisgICAgLy8gR3JhbnRzIHBlcm1pc3Npb24gZm9yIGRlc2t0b3Agbm90aWZpY2F0
aW9ucyB0byBhbiBvcmlnaW4KKyAgICB2b2lkIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1p
c3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAgLy8gVGhl
IGZvbGxvd2luZyBhcmUgb25seSBzdHVicy4gIFRPRE8ocGFtZyk6IEltcGxlbWVudCBhbnkgb2Yg
dGhlc2UgdGhhdAogICAgIC8vIGFyZSBuZWVkZWQgdG8gcGFzcyB0aGUgbGF5b3V0IHRlc3RzLgog
ICAgIHZvaWQgZHVtcEFzV2ViQXJjaGl2ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CkBAIC0yMTAsNiArMjI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWNjZXNzU3RvcmVk
V2ViU2NyaXB0T2JqZWN0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAg
ICB2b2lkIG9iakNDbGFzc05hbWVPZihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBhZGREaXNhbGxvd2VkVVJMKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKKyAgICB2b2lkIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRDYWxsQ2xvc2VPbldlYlZp
ZXdzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogCkBAIC0yMjgsOCArMjQzLDkgQEAgcHVibGljOgogICAgIC8vIHRoYXQgY2FzZSAoYXMgdGhl
IE1hYyBkb2VzKS4KICAgICB2b2lkIGZhbGxiYWNrTWV0aG9kKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gY2FsbCBT
ZWN1cml0eU9yaWdpbjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKS4KKyAgICAvLyBB
bGxvd3MgbGF5b3V0IHRlc3RzIHRvIG1hbmFnZSBvcmlnaW5zJyB3aGl0ZWxpc3RpbmcuCiAgICAg
dm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBDbGVhcnMg
YWxsIGRhdGFiYXNlcy4KICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKQEAgLTI1OSw4ICsyNzUsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gRm9yY2VzIHRoZSBzZWxlY3Rpb24gY29sb3JzIGZvciB0ZXN0aW5nIHVuZGVyIExpbnV4Lgog
ICAgIHZvaWQgZm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogCi0gICAgLy8gQWRkcyBhIHVzZXIgc2NyaXB0IHRvIGJlIGluamVjdGVk
IGludG8gbmV3IGRvY3VtZW50cy4KKyAgICAvLyBBZGRzIGEgdXNlciBzY3JpcHQgb3IgdXNlciBz
dHlsZSBzaGVldCB0byBiZSBpbmplY3RlZCBpbnRvIG5ldyBkb2N1bWVudHMuCiAgICAgdm9pZCBh
ZGRVc2VyU2NyaXB0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIGFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKIAogcHVibGljOgogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgbm90IGV4cG9z
ZWQgdG8gSmF2YVNjcmlwdC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2
OTAzYmUzNmIyOGJkMTU3NjhkN2Q0OGY4ZmU2MjQ3NDVjMWVjMjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Ob3RpZmljYXRpb25QcmVzZW50
ZXIuY3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvblByZXNlbnRlci5oIgorCisjaW5jbHVkZSAiZ29vZ2xldXJsL3NyYy9ndXJsLmgi
CisjaW5jbHVkZSAicHVibGljL1dlYk5vdGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgInB1YmxpYy9X
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJwdWJsaWMvV2Vi
U2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJwdWJsaWMvV2ViU3RyaW5nLmgiCisjaW5jbHVk
ZSAicHVibGljL1dlYlVSTC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCit2b2lkIE5v
dGlmaWNhdGlvblByZXNlbnRlcjo6Z3JhbnRQZXJtaXNzaW9uKGNvbnN0IFdlYlN0cmluZyYgb3Jp
Z2luKQoreworICAgIC8vIE1ha2Ugc3VyZSBpdCdzIGluIHRoZSBmb3JtIG9mIGFuIG9yaWdpbi4K
KyAgICBHVVJMIHVybChvcmlnaW4pOworICAgIG1fYWxsb3dlZE9yaWdpbnMuYWRkKFN0cmluZyh1
cmwuR2V0T3JpZ2luKCkuc3BlYygpLmNfc3RyKCkpKTsKK30KKworLy8gVGhlIG91dHB1dCBmcm9t
IGFsbCB0aGVzZSBtZXRob2RzIG1hdGNoZXMgd2hhdCBEdW1wUmVuZGVyVHJlZSBwcm9kdWNlcy4K
K2Jvb2wgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpzaG93KGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYg
bm90aWZpY2F0aW9uKQoreworICAgIGlmICghbm90aWZpY2F0aW9uLnJlcGxhY2VJZCgpLmlzRW1w
dHkoKSkgeworICAgICAgICBTdHJpbmcgcmVwbGFjZUlkKG5vdGlmaWNhdGlvbi5yZXBsYWNlSWQo
KS5kYXRhKCksIG5vdGlmaWNhdGlvbi5yZXBsYWNlSWQoKS5sZW5ndGgoKSk7CisgICAgICAgIGlm
IChtX3JlcGxhY2VtZW50cy5maW5kKHJlcGxhY2VJZCkgIT0gbV9yZXBsYWNlbWVudHMuZW5kKCkp
CisgICAgICAgICAgICBwcmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJT04gJXNcbiIsCisgICAg
ICAgICAgICAgICAgICAgbV9yZXBsYWNlbWVudHMuZmluZChyZXBsYWNlSWQpLT5zZWNvbmQudXRm
OCgpLmRhdGEoKSk7CisKKyAgICAgICAgV2ViU3RyaW5nIGlkZW50aWZpZXIgPSBub3RpZmljYXRp
b24uaXNIVE1MKCkgPworICAgICAgICAgICAgbm90aWZpY2F0aW9uLnVybCgpLnNwZWMoKS51dGYx
NigpIDogbm90aWZpY2F0aW9uLnRpdGxlKCk7CisgICAgICAgIG1fcmVwbGFjZW1lbnRzLnNldChy
ZXBsYWNlSWQsIFN0cmluZyhpZGVudGlmaWVyLmRhdGEoKSwgaWRlbnRpZmllci5sZW5ndGgoKSkp
OworICAgIH0KKworICAgIGlmIChub3RpZmljYXRpb24uaXNIVE1MKCkpIHsKKyAgICAgICAgcHJp
bnRmKCJERVNLVE9QIE5PVElGSUNBVElPTjogY29udGVudHMgYXQgJXNcbiIsCisgICAgICAgICAg
ICAgICBub3RpZmljYXRpb24udXJsKCkuc3BlYygpLmRhdGEoKSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTjolcyBpY29uICVzLCB0aXRsZSAlcywg
dGV4dCAlc1xuIiwKKyAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5kaXIoKSA9PSAicnRsIiA/
ICIoUlRMKSIgOiAiIiwKKyAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5pY29uVVJMKCkuaXNF
bXB0eSgpID8gIiIgOgorICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLmljb25VUkwoKS5zcGVj
KCkuZGF0YSgpLAorICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLnRpdGxlKCkuaXNFbXB0eSgp
ID8gIiIgOgorICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLnRpdGxlKCkudXRmOCgpLmRhdGEo
KSwKKyAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5ib2R5KCkuaXNFbXB0eSgpID8gIiIgOgor
ICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLmJvZHkoKS51dGY4KCkuZGF0YSgpKTsKKyAgICB9
CisKKyAgICBXZWJOb3RpZmljYXRpb24gZXZlbnRUYXJnZXQobm90aWZpY2F0aW9uKTsKKyAgICBl
dmVudFRhcmdldC5kaXNwYXRjaERpc3BsYXlFdmVudCgpOworICAgIHJldHVybiB0cnVlOworfQor
Cit2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6Y2FuY2VsKGNvbnN0IFdlYk5vdGlmaWNhdGlv
biYgbm90aWZpY2F0aW9uKQoreworICAgIFdlYlN0cmluZyBpZGVudGlmaWVyOworICAgIGlmIChu
b3RpZmljYXRpb24uaXNIVE1MKCkpCisgICAgICAgIGlkZW50aWZpZXIgPSBub3RpZmljYXRpb24u
dXJsKCkuc3BlYygpLnV0ZjE2KCk7CisgICAgZWxzZQorICAgICAgICBpZGVudGlmaWVyID0gbm90
aWZpY2F0aW9uLnRpdGxlKCk7CisKKyAgICBwcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OIENM
T1NFRDogJXNcbiIsIGlkZW50aWZpZXIudXRmOCgpLmRhdGEoKSk7CisgICAgV2ViTm90aWZpY2F0
aW9uIGV2ZW50VGFyZ2V0KG5vdGlmaWNhdGlvbik7CisgICAgZXZlbnRUYXJnZXQuZGlzcGF0Y2hD
bG9zZUV2ZW50KGZhbHNlKTsKK30KKwordm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXI6Om9iamVj
dERlc3Ryb3llZChjb25zdCBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQor
eworICAgIC8vIE5vdGhpbmcgdG8gZG8uICBOb3Qgc3RvcmluZyB0aGUgb2JqZWN0cy4KK30KKwor
V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRl
cjo6Y2hlY2tQZXJtaXNzaW9uKGNvbnN0IFdlYlVSTCYgdXJsKQoreworICAgIC8vIENoZWNrIHdp
dGggdGhlIGxheW91dCB0ZXN0IGNvbnRyb2xsZXIKKyAgICBTdHJpbmcgb3JpZ2luID0gU3RyaW5n
KHN0YXRpY19jYXN0PEdVUkw+KHVybCkuR2V0T3JpZ2luKCkuc3BlYygpLmNfc3RyKCkpOworICAg
IGJvb2wgYWxsb3dlZCA9IG1fYWxsb3dlZE9yaWdpbnMuZmluZChvcmlnaW4pICE9IG1fYWxsb3dl
ZE9yaWdpbnMuZW5kKCk7CisgICAgcmV0dXJuIGFsbG93ZWQgPyBXZWJOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkCisgICAgICAgIDogV2ViTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uRGVuaWVkOworfQorCit2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6
cmVxdWVzdFBlcm1pc3Npb24oCisgICAgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwK
KyAgICBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2sqIGNhbGxiYWNrKQoreworICAg
IHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBSRVFVRVNURUQ6ICVzXG4i
LAorICAgICAgICAgICBvcmlnaW4udG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBjYWxs
YmFjay0+cGVybWlzc2lvblJlcXVlc3RDb21wbGV0ZSgpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmggYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMzA4NjJmNmUyMzMzNDI0NTM1MjQ1NzA1YzhhM2E5ZGZhM2UxYWMxCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90
aWZpY2F0aW9uUHJlc2VudGVyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTm90aWZpY2F0aW9u
UHJlc2VudGVyX2gKKyNkZWZpbmUgTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKKworI2luY2x1ZGUg
InB1YmxpYy9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitjbGFzcyBUZXN0U2hl
bGw7CisKKy8vIEEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRl
ciBmb3IgRFJULgorY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyIDogcHVibGljIFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIoVGVzdFNoZWxsKiBzaGVsbCkgOiBtX3NoZWxsKHNoZWxsKSB7fQorCisg
ICAgLy8gQ2FsbGVkIGJ5IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciB0byBzaW11bGF0ZSBhIHVz
ZXIgZ3JhbnRpbmcgcGVybWlzc2lvbi4KKyAgICB2b2lkIGdyYW50UGVybWlzc2lvbihjb25zdCBX
ZWJLaXQ6OldlYlN0cmluZyYgb3JpZ2luKTsKKworICAgIC8vIFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uUHJlc2VudGVyIGludGVyZmFjZQorICAgIHZpcnR1YWwgYm9vbCBzaG93KGNvbnN0IFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uJik7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbChjb25zdCBXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbiYpOworICAgIHZpcnR1YWwgdm9pZCBvYmplY3REZXN0cm95ZWQo
Y29uc3QgV2ViS2l0OjpXZWJOb3RpZmljYXRpb24mKTsKKyAgICB2aXJ0dWFsIFBlcm1pc3Npb24g
Y2hlY2tQZXJtaXNzaW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMJik7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayopOworCisgICAgdm9pZCByZXNl
dCgpIHsgbV9hbGxvd2VkT3JpZ2lucy5jbGVhcigpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gTm9u
LW93bmVkIHBvaW50ZXIuIFRoZSBOb3RpZmljYXRpb25QcmVzZW50ZXIgaXMgb3duZWQgYnkgdGhl
IHRlc3Qgc2hlbGwuCisgICAgVGVzdFNoZWxsKiBtX3NoZWxsOworCisgICAgLy8gU2V0IG9mIGFs
bG93ZWQgb3JpZ2lucy4KKyAgICBIYXNoU2V0PFdlYkNvcmU6OlN0cmluZz4gbV9hbGxvd2VkT3Jp
Z2luczsKKworICAgIC8vIE1hcCBvZiBhY3RpdmUgcmVwbGFjZW1lbnQgSURzIHRvIHRoZSB0aXRs
ZXMgb2YgdGhvc2Ugbm90aWZpY2F0aW9ucworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3RyaW5nLCBX
ZWJDb3JlOjpTdHJpbmc+IG1fcmVwbGFjZW1lbnRzOworfTsKKworI2VuZGlmIC8vIE5vdGlmaWNh
dGlvblByZXNlbnRlcl9oCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmNwcAppbmRleCBlNDIyOWZlZTZiMGQ2ZTI4NzAyMDdmZTQ5ZDliYWEzYzk0
M2JjNDFhLi44YmQwN2RiOGZmYTg2Nzk1ZGFhYTQwNzI3OWIwMDFjYjc5YTk5YmRlIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAg
LTg1LDYgKzg1LDcgQEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogICAgIG1fZXZlbnRTZW5kZXIu
c2V0KG5ldyBFdmVudFNlbmRlcih0aGlzKSk7CiAgICAgbV9wbGFpblRleHRDb250cm9sbGVyLnNl
dChuZXcgUGxhaW5UZXh0Q29udHJvbGxlcigpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXIu
c2V0KG5ldyBUZXh0SW5wdXRDb250cm9sbGVyKHRoaXMpKTsKKyAgICBtX25vdGlmaWNhdGlvblBy
ZXNlbnRlci5zZXQobmV3IE5vdGlmaWNhdGlvblByZXNlbnRlcih0aGlzKSk7CiAKICAgICBtX3dl
YlZpZXdIb3N0ID0gY3JlYXRlV2ViVmlldygpOwogICAgIG1fd2ViVmlldyA9IG1fd2ViVmlld0hv
c3QtPndlYlZpZXcoKTsKQEAgLTE3NSw2ICsxNzYsNyBAQCB2b2lkIFRlc3RTaGVsbDo6cmVzZXRX
ZWJTZXR0aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogCiB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRl
c3QoY29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zKQogeworICAgIEFTU0VSVChwYXJhbXMudGVzdFVy
bC5pc1ZhbGlkKCkpOwogICAgIG1fdGVzdElzUHJlcGFyaW5nID0gdHJ1ZTsKICAgICBtX3BhcmFt
cyA9IHBhcmFtczsKICAgICBzdHJpbmcgdGVzdFVybCA9IG1fcGFyYW1zLnRlc3RVcmwuc3BlYygp
OwpAQCAtMjEyLDYgKzIxNCw3IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFRlc3RDb250cm9sbGVy
KCkKICAgICBtX2xheW91dFRlc3RDb250cm9sbGVyLT5yZXNldCgpOwogICAgIG1fZXZlbnRTZW5k
ZXItPnJlc2V0KCk7CiAgICAgbV93ZWJWaWV3SG9zdC0+cmVzZXQoKTsKKyAgICBtX25vdGlmaWNh
dGlvblByZXNlbnRlci0+cmVzZXQoKTsKIH0KIAogdm9pZCBUZXN0U2hlbGw6OmxvYWRVUkwoY29u
c3QgV2ViVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5oCmluZGV4IGM2YTViMmVlOTc3OWYzZWI1ODNhNGVjYTBhNDViNmMxMWE1MWE2
M2MuLjI4M2NiZDQ2MDZlNDM1NzdhNTI5Y2RiNzJiNjc4OGZmMjk2YTZmYjQgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJF
dmVudFNlbmRlci5oIgogI2luY2x1ZGUgIkxheW91dFRlc3RDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAiUGxhaW5UZXh0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3
SG9zdC5oIgpAQCAtNDMsNiArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdl
YkZyYW1lOworY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOwogY2xhc3MgV2ViUHJlZmVy
ZW5jZXM7CiBjbGFzcyBXZWJWaWV3OwogY2xhc3MgV2ViVVJMOwpAQCAtNzQsNyArNzYsOSBAQCBw
dWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgaG9zdCBmb3IgdGhlIG1haW4gV2ViVmlldy4KICAg
ICBXZWJWaWV3SG9zdCogd2ViVmlld0hvc3QoKSBjb25zdCB7IHJldHVybiBtX3dlYlZpZXdIb3N0
OyB9CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGxheW91dFRlc3RDb250cm9sbGVyKCkgY29u
c3QgeyByZXR1cm4gbV9sYXlvdXRUZXN0Q29udHJvbGxlci5nZXQoKTsgfQorICAgIEV2ZW50U2Vu
ZGVyKiBldmVudFNlbmRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRTZW5kZXIuZ2V0KCk7IH0K
ICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmdldCgpOyB9CisgICAgTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVy
biBtX25vdGlmaWNhdGlvblByZXNlbnRlci5nZXQoKTsgfQogCiAgICAgdm9pZCBiaW5kSlNPYmpl
Y3RzVG9XaW5kb3coV2ViS2l0OjpXZWJGcmFtZSopOwogICAgIHZvaWQgcnVuRmlsZVRlc3QoY29u
c3QgVGVzdFBhcmFtcyYpOwpAQCAtMTE1LDYgKzExOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
b3NlUmVtYWluaW5nV2luZG93cygpOwogICAgIGludCB3aW5kb3dDb3VudCgpOwogICAgIHN0YXRp
YyB2b2lkIHJlc2l6ZVdpbmRvd0ZvclRlc3QoV2ViVmlld0hvc3QqLCBjb25zdCBXZWJLaXQ6Oldl
YlVSTCYpOworICAgIHZvaWQgc2hvd0RldlRvb2xzKCkge30gLy8gRklYTUU6IGltZXBsZW1lbnQg
dGhpcy4KIAogICAgIHN0YXRpYyBjb25zdCBpbnQgdmlydHVhbFdpbmRvd0JvcmRlciA9IDM7CiAK
QEAgLTEzNSw2ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxMYXlvdXRUZXN0Q29udHJv
bGxlcio+IG1fbGF5b3V0VGVzdENvbnRyb2xsZXI7CiAgICAgT3duUHRyPFBsYWluVGV4dENvbnRy
b2xsZXIqPiBtX3BsYWluVGV4dENvbnRyb2xsZXI7CiAgICAgT3duUHRyPFRleHRJbnB1dENvbnRy
b2xsZXIqPiBtX3RleHRJbnB1dENvbnRyb2xsZXI7CisgICAgT3duUHRyPE5vdGlmaWNhdGlvblBy
ZXNlbnRlcio+IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogICAgIFRlc3RQYXJhbXMgbV9wYXJh
bXM7CiAKICAgICAvLyBMaXN0IG9mIGFsbCB3aW5kb3dzIGluIHRoaXMgcHJvY2Vzcy4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApp
bmRleCA0NjNlNGY1MjA4M2ZmZWQ5ZGUwYzVlMTk1ZTgyN2E3YWRhNzcwOGIxLi40NzYxYjFhMmE0
NzE4OTZjZDVhZDJjYmUwMTIzYTQ0OGQ3ZjdlZmY3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC01MiwxMCArNTIsMTIg
QEAKICNpbmNsdWRlICJwdWJsaWMvV2ViVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgInB1YmxpYy9X
ZWJVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJWaWV3LmgiCisjaW5jbHVkZSAi
cHVibGljL1dlYldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAic2tpYS9leHQvcGxhdGZvcm1f
Y2FudmFzLmgiCiAjaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2Ugc2tpYTsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CkBAIC0yNTAsMTQgKzI1MiwxOSBAQCBzdGF0aWMgc3RyaW5nIHRleHRBZmZpbml0
eURlc2NyaXB0aW9uKFdlYlRleHRBZmZpbml0eSBhZmZpbml0eSkKIAogLy8gV2ViVmlld0NsaWVu
dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLVdlYlZpZXcqIFdlYlZpZXdIb3N0OjpjcmVhdGVWaWV3KFdlYkZyYW1lKikKK1dl
YlZpZXcqIFdlYlZpZXdIb3N0OjpjcmVhdGVWaWV3KFdlYkZyYW1lKiBjcmVhdG9yKQoreworICAg
IHJldHVybiBjcmVhdGVWaWV3KGNyZWF0b3IsIFdlYldpbmRvd0ZlYXR1cmVzKCkpOworfQorCitX
ZWJWaWV3KiBXZWJWaWV3SG9zdDo6Y3JlYXRlVmlldyhXZWJGcmFtZSosIGNvbnN0IFdlYldpbmRv
d0ZlYXR1cmVzJikKIHsKICAgICBpZiAoIWxheW91dFRlc3RDb250cm9sbGVyKCktPmNhbk9wZW5X
aW5kb3dzKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX3NoZWxsLT5jcmVhdGVX
ZWJWaWV3KCktPndlYlZpZXcoKTsKIH0KIAotV2ViV2lkZ2V0KiBXZWJWaWV3SG9zdDo6Y3JlYXRl
UG9wdXBNZW51KGJvb2wpCitXZWJXaWRnZXQqIFdlYlZpZXdIb3N0OjpjcmVhdGVQb3B1cE1lbnUo
V2ViUG9wdXBUeXBlKQogewogICAgIHJldHVybiAwOwogfQpAQCAtNDgxLDcgKzQ4OCw3IEBAIHZv
aWQgV2ViVmlld0hvc3Q6OnNldFN0YXR1c1RleHQoY29uc3QgV2ViU3RyaW5nJiB0ZXh0KQogICAg
IHByaW50ZigiVUkgREVMRUdBVEUgU1RBVFVTIENBTExCQUNLOiBzZXRTdGF0dXNUZXh0OiVzXG4i
LCB0ZXh0LnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIFdlYlZpZXdIb3N0OjpzdGFydERyYWdn
aW5nKGNvbnN0IFdlYlBvaW50JiBtb3VzZUNvb3JkcywgY29uc3QgV2ViRHJhZ0RhdGEmIGRhdGEs
IFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrKQordm9pZCBXZWJWaWV3SG9zdDo6c3RhcnREcmFn
Z2luZyhjb25zdCBXZWJEcmFnRGF0YSYgZGF0YSwgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2ss
IGNvbnN0IFdlYkltYWdlJiwgY29uc3QgV2ViUG9pbnQmKQogewogICAgIFdlYkRyYWdEYXRhIG11
dGFibGVEcmFnRGF0YSA9IGRhdGE7CiAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCktPnNo
b3VsZEFkZEZpbGVUb1Bhc3RlYm9hcmQoKSkgewpAQCAtNDkxLDcgKzQ5OCw3IEBAIHZvaWQgV2Vi
Vmlld0hvc3Q6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViUG9pbnQmIG1vdXNlQ29vcmRzLCBjb25z
dCBXZWJEcmFnRGF0YSYKIAogICAgIC8vIFdoZW4gcnVubmluZyBhIHRlc3QsIHdlIG5lZWQgdG8g
ZmFrZSBhIGRyYWcgZHJvcCBvcGVyYXRpb24gb3RoZXJ3aXNlCiAgICAgLy8gV2luZG93cyB3YWl0
cyBmb3IgcmVhbCBtb3VzZSBldmVudHMgdG8ga25vdyB3aGVuIHRoZSBkcmFnIGlzIG92ZXIuCi0g
ICAgRXZlbnRTZW5kZXI6OmRvRHJhZ0Ryb3AobW91c2VDb29yZHMsIG11dGFibGVEcmFnRGF0YSwg
bWFzayk7CisgICAgbV9zaGVsbC0+ZXZlbnRTZW5kZXIoKS0+ZG9EcmFnRHJvcChtdXRhYmxlRHJh
Z0RhdGEsIG1hc2spOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpuYXZpZ2F0ZUJhY2tGb3J3YXJk
U29vbihpbnQgb2Zmc2V0KQpAQCAtNTE1LDYgKzUyMiwxMSBAQCB2b2lkIFdlYlZpZXdIb3N0Ojpm
b2N1c0FjY2Vzc2liaWxpdHlPYmplY3QoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2Jq
ZWN0KQogICAgIG1fc2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNldEZvY3VzZWRF
bGVtZW50KG9iamVjdCk7CiB9CiAKK1dlYk5vdGlmaWNhdGlvblByZXNlbnRlciogV2ViVmlld0hv
c3Q6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpCit7CisgICAgcmV0dXJuIG1fc2hlbGwtPm5vdGlm
aWNhdGlvblByZXNlbnRlcigpOworfQorCiAvLyBXZWJXaWRnZXRDbGllbnQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogdm9pZCBX
ZWJWaWV3SG9zdDo6ZGlkSW52YWxpZGF0ZVJlY3QoY29uc3QgV2ViUmVjdCYgcmVjdCkKQEAgLTYy
OSw2ICs2NDEsMTEgQEAgV2ViTWVkaWFQbGF5ZXIqIFdlYlZpZXdIb3N0OjpjcmVhdGVNZWRpYVBs
YXllcihXZWJGcmFtZSogZnJhbWUsIFdlYk1lZGlhUGxheWVyQ2wKICAgICByZXR1cm4gd2Via2l0
X3N1cHBvcnQ6OkNyZWF0ZU1lZGlhUGxheWVyKGZyYW1lLCBjbGllbnQpOwogfQogCitXZWJBcHBs
aWNhdGlvbkNhY2hlSG9zdCogV2ViVmlld0hvc3Q6OmNyZWF0ZUFwcGxpY2F0aW9uQ2FjaGVIb3N0
KFdlYkZyYW1lKiBmcmFtZSwgV2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQqIGNsaWVudCkK
K3sKKyAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkNyZWF0ZUFwcGxpY2F0aW9uQ2FjaGVIb3N0
KGZyYW1lLCBjbGllbnQpOworfQorCiBib29sIFdlYlZpZXdIb3N0OjphbGxvd1BsdWdpbnMoV2Vi
RnJhbWUqIGZyYW1lLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncykKIHsKICAgICByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzOwpAQCAtOTA2LDYgKzkyMywxMCBAQCB2b2lkIFdlYlZpZXdIb3N0Ojp3
aWxsU2VuZFJlcXVlc3QoV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJVUkxSZXF1
ZXN0JgogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgSGFzaFNldDxTdHJpbmc+Ojpjb25z
dF9pdGVyYXRvciBlbmQgPSBtX2NsZWFySGVhZGVycy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8
U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaGVhZGVyID0gbV9jbGVhckhlYWRlcnMuYmVnaW4oKTsg
aGVhZGVyICE9IGVuZDsgKytoZWFkZXIpCisgICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQSGVhZGVy
RmllbGQoV2ViU3RyaW5nKGhlYWRlci0+Y2hhcmFjdGVycygpLCBoZWFkZXItPmxlbmd0aCgpKSk7
CisKICAgICAvLyBTZXQgdGhlIG5ldyBzdWJzdGl0dXRlZCBVUkwuCiAgICAgcmVxdWVzdC5zZXRV
Ukwod2Via2l0X3N1cHBvcnQ6OlJld3JpdGVMYXlvdXRUZXN0c1VSTChyZXF1ZXN0LnVybCgpLnNw
ZWMoKSkpOwogfQpAQCAtMTExNSw3ICsxMTM2LDcgQEAgdm9pZCBXZWJWaWV3SG9zdDo6dXBkYXRl
QWRkcmVzc0JhcihXZWJWaWV3KiB3ZWJWaWV3KQogICAgIGlmICghZGF0YVNvdXJjZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2V0QWRkcmVzc0JhclVSTChkYXRhU291cmNlLT5yZXF1ZXN0KCku
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7CisgICAgc2V0QWRkcmVzc0JhclVSTChkYXRhU291cmNl
LT5yZXF1ZXN0KCkudXJsKCkpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0Ojpsb2NhdGlvbkNoYW5n
ZURvbmUoV2ViRnJhbWUqIGZyYW1lKQpAQCAtMTE2OCw2ICsxMTg5LDcgQEAgdm9pZCBXZWJWaWV3
SG9zdDo6dXBkYXRlVVJMKFdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgZW50cnktPnNldENvbnRl
bnRTdGF0ZShoaXN0b3J5SXRlbSk7CiAKICAgICBuYXZpZ2F0aW9uQ29udHJvbGxlcigpLT5kaWRO
YXZpZ2F0ZVRvRW50cnkoZW50cnkucmVsZWFzZSgpKTsKKyAgICB1cGRhdGVBZGRyZXNzQmFyKGZy
YW1lLT52aWV3KCkpOwogICAgIG1fbGFzdFBhZ2VJZFVwZGF0ZWQgPSBtYXgobV9sYXN0UGFnZUlk
VXBkYXRlZCwgbV9wYWdlSWQpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCA5MmYxNjVhYzVmMDdkNTgxNzQzNzNhY2My
MzY3ZDEzZTY5Y2Y3MGIxLi41MjI3YjI4MDhlNzlkNGNkYjk5NDU1YWYxY2M5ZWRjNjg3YzQzZmRh
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmgKQEAgLTM3LDE1ICszNywxOCBAQAogI2luY2x1ZGUgInB1YmxpYy9XZWJGcmFtZUNsaWVu
dC5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogY2xhc3MgTGF5b3V0VGVzdENv
bnRyb2xsZXI7CiBjbGFzcyBUZXN0U2hlbGw7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdl
YkZyYW1lOwogY2xhc3MgV2ViVVJMOwotc3RydWN0IFdlYlVSTEVycm9yOwogc3RydWN0IFdlYlJl
Y3Q7CitzdHJ1Y3QgV2ViVVJMRXJyb3I7CitzdHJ1Y3QgV2ViV2luZG93RmVhdHVyZXM7CiB9CiBu
YW1lc3BhY2Ugc2tpYSB7CiBjbGFzcyBQbGF0Zm9ybUNhbnZhczsKQEAgLTc5LDEyICs4MiwxNiBA
QCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1Ymxp
YyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZvaWQgbG9hZFVSTEZvckZyYW1lKGNvbnN0
IFdlYktpdDo6V2ViVVJMJiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIGZyYW1lTmFtZSk7CiAg
ICAgVGVzdE5hdmlnYXRpb25Db250cm9sbGVyKiBuYXZpZ2F0aW9uQ29udHJvbGxlcigpIHsgcmV0
dXJuIG1fbmF2aWdhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KIAorICAgIHZvaWQgYWRkQ2xlYXJI
ZWFkZXIoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBoZWFkZXIpIHsgbV9jbGVhckhlYWRlcnMuYWRk
KGhlYWRlcik7IH0KKyAgICBjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlN0cmluZz4mIGNsZWFySGVh
ZGVycygpIGNvbnN0IHsgcmV0dXJuIG1fY2xlYXJIZWFkZXJzOyB9CisKICAgICAvLyBOYXZpZ2F0
aW9uSG9zdAogICAgIHZpcnR1YWwgYm9vbCBuYXZpZ2F0ZShjb25zdCBUZXN0TmF2aWdhdGlvbkVu
dHJ5JiwgYm9vbCByZWxvYWQpOwogCiAgICAgLy8gV2ViS2l0OjpXZWJWaWV3Q2xpZW50CiAgICAg
dmlydHVhbCBXZWJLaXQ6OldlYlZpZXcqIGNyZWF0ZVZpZXcoV2ViS2l0OjpXZWJGcmFtZSopOwot
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJXaWRnZXQqIGNyZWF0ZVBvcHVwTWVudShib29sIGFjdGl2
YXRhYmxlKTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViVmlldyogY3JlYXRlVmlldyhXZWJLaXQ6
OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJXaW5kb3dGZWF0dXJlcyYpOworICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJXaWRnZXQqIGNyZWF0ZVBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwVHlw
ZSk7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYldpZGdldCogY3JlYXRlUG9wdXBNZW51KGNvbnN0
IFdlYktpdDo6V2ViUG9wdXBNZW51SW5mbyYpOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdG9y
YWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90
YSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViS2l0
OjpXZWJDb25zb2xlTWVzc2FnZSYsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBzb3VyY2VOYW1l
LCB1bnNpZ25lZCBzb3VyY2VMaW5lKTsKQEAgLTExMiwxMSArMTE5LDEyIEBAIGNsYXNzIFdlYlZp
ZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2Vi
RnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCBib29sIHJ1bk1vZGFsQmVmb3JlVW5sb2FkRGlhbG9n
KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6
V2ViQ29udGV4dE1lbnVEYXRhJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c1RleHQoY29u
c3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnZ2luZyhj
b25zdCBXZWJLaXQ6OldlYlBvaW50JiwgY29uc3QgV2ViS2l0OjpXZWJEcmFnRGF0YSYsIFdlYktp
dDo6V2ViRHJhZ09wZXJhdGlvbnNNYXNrKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnZ2lu
Zyhjb25zdCBXZWJLaXQ6OldlYkRyYWdEYXRhJiwgV2ViS2l0OjpXZWJEcmFnT3BlcmF0aW9uc01h
c2ssIGNvbnN0IFdlYktpdDo6V2ViSW1hZ2UmLCBjb25zdCBXZWJLaXQ6OldlYlBvaW50Jik7CiAg
ICAgdmlydHVhbCB2b2lkIG5hdmlnYXRlQmFja0ZvcndhcmRTb29uKGludCBvZmZzZXQpOwogICAg
IHZpcnR1YWwgaW50IGhpc3RvcnlCYWNrTGlzdENvdW50KCk7CiAgICAgdmlydHVhbCBpbnQgaGlz
dG9yeUZvcndhcmRMaXN0Q291bnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBY2Nlc3NpYmls
aXR5T2JqZWN0KGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpOworICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpOwogCiAgICAgLy8gV2ViS2l0OjpXZWJXaWRnZXRDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgZGlkSW52YWxpZGF0ZVJlY3QoY29uc3QgV2ViS2l0OjpXZWJSZWN0Jik7CkBAIC0xMzcsNyAr
MTQ1LDggQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50
LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIFdlYktpdDo6V2Vi
UGx1Z2luKiBjcmVhdGVQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2Vi
UGx1Z2luUGFyYW1zJik7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYldvcmtlciogY3JlYXRlV29y
a2VyKFdlYktpdDo6V2ViRnJhbWUqLCBXZWJLaXQ6OldlYldvcmtlckNsaWVudCopOwogICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJNZWRpYVBsYXllciogY3JlYXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpX
ZWJGcmFtZSosIFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnQqKTsKLSAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dQbHVnaW5zKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5n
cyk7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBjcmVhdGVB
cHBsaWNhdGlvbkNhY2hlSG9zdChXZWJLaXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJBcHBsaWNh
dGlvbkNhY2hlSG9zdENsaWVudCopOworICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQbHVnaW5zKFdl
YktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAgICAgdmlydHVhbCBi
b29sIGFsbG93SW1hZ2VzKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5n
cyk7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRVUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViRnJhbWUq
LCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlcXVlc3QmLCBXZWJLaXQ6OldlYk5hdmlnYXRpb25Qb2xp
Y3kpOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJOYXZpZ2F0aW9uUG9saWN5IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb24oCkBAIC0yNDgsNiArMjU3LDkgQEAgcHJpdmF0ZToKICAgICAvLyB0cnVl
IGlmIHdlIHdhbnQgdG8gZW5hYmxlIHNlbGVjdGlvbiBvZiB0cmFpbGluZyB3aGl0ZXNwYWNlcwog
ICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogCisgICAgLy8gU2V0
IG9mIGhlYWRlcnMgdG8gY2xlYXIgaW4gd2lsbFNlbmRSZXF1ZXN0LgorICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6U3RyaW5nPiBtX2NsZWFySGVhZGVyczsKKwogICAgIC8vIHRydWUgaWYgd2Ugc2hvdWxk
IGJsb2NrIGFueSByZWRpcmVjdHMKICAgICBib29sIG1fYmxvY2tzUmVkaXJlY3RzOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>