<?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>108464</bug_id>
          
          <creation_ts>2013-01-31 05:12:54 -0800</creation_ts>
          <short_desc>[chromium] move ownership of TestRunner object to TestInterfaces</short_desc>
          <delta_ts>2013-02-01 08:03:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>91308</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>821413</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-01-31 05:12:54 -0800</bug_when>
    <thetext>[chromium] move ownership of TestRunner object to TestInterfaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821414</commentid>
    <comment_count>1</comment_count>
      <attachid>185755</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-31 05:14:19 -0800</bug_when>
    <thetext>Created attachment 185755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821420</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 05:21:11 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821653</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-31 10:42:37 -0800</bug_when>
    <thetext>Very nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821808</commentid>
    <comment_count>4</comment_count>
      <attachid>185834</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-31 12:07:56 -0800</bug_when>
    <thetext>Created attachment 185834
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821875</commentid>
    <comment_count>5</comment_count>
      <attachid>185834</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 13:01:52 -0800</bug_when>
    <thetext>Comment on attachment 185834
Patch for landing

Rejecting attachment 185834 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 185834, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
erTree/chromium/TestRunner/src/WebTestRunner.cpp
Hunk #1 FAILED at 28.
Hunk #2 FAILED at 222.
2 out of 2 hunks FAILED -- saving rejects to file Tools/DumpRenderTree/chromium/TestRunner/src/WebTestRunner.cpp.rej
patching file Tools/DumpRenderTree/chromium/TestShell.cpp
patching file Tools/DumpRenderTree/chromium/TestShell.h
Hunk #1 succeeded at 108 (offset 1 line).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16251534</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821888</commentid>
    <comment_count>6</comment_count>
      <attachid>185847</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-31 13:23:08 -0800</bug_when>
    <thetext>Created attachment 185847
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821913</commentid>
    <comment_count>7</comment_count>
      <attachid>185847</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 13:53:12 -0800</bug_when>
    <thetext>Comment on attachment 185847
Patch for landing

Rejecting attachment 185847 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 185847, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
erTree/chromium/TestRunner/src/WebTestRunner.cpp
Hunk #1 FAILED at 28.
Hunk #2 FAILED at 222.
2 out of 2 hunks FAILED -- saving rejects to file Tools/DumpRenderTree/chromium/TestRunner/src/WebTestRunner.cpp.rej
patching file Tools/DumpRenderTree/chromium/TestShell.cpp
patching file Tools/DumpRenderTree/chromium/TestShell.h
Hunk #1 succeeded at 108 (offset 1 line).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16296011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821950</commentid>
    <comment_count>8</comment_count>
      <attachid>185863</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-31 14:20:04 -0800</bug_when>
    <thetext>Created attachment 185863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822419</commentid>
    <comment_count>9</comment_count>
      <attachid>185964</attachid>
    <who name="">jochen</who>
    <bug_when>2013-02-01 00:20:51 -0800</bug_when>
    <thetext>Created attachment 185964
Patch for landing for realz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822566</commentid>
    <comment_count>10</comment_count>
      <attachid>185964</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 02:53:32 -0800</bug_when>
    <thetext>Comment on attachment 185964
Patch for landing for realz

Attachment 185964 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16297597

New failing tests:
http/tests/inspector/extensions-headers.html
inspector/extensions/extensions-audits-api.html
inspector/extensions/extensions-network.html
http/tests/inspector/injected-script-for-origin.html
inspector/extensions/extensions-audits-content-script.html
http/tests/inspector/extensions-network-redirect.html
inspector/extensions/extensions-audits.html
inspector/extensions/extensions-reload.html
inspector/extensions/extensions-console.html
inspector/extensions/extensions-sidebar.html
inspector/extensions/extensions-resources.html
inspector/extensions/extensions-eval-content-script.html
inspector/extensions/extensions-eval.html
http/tests/inspector/extensions-useragent.html
inspector/extensions/extensions-panel.html
inspector/extensions/extensions-api.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822690</commentid>
    <comment_count>11</comment_count>
      <attachid>186027</attachid>
    <who name="">jochen</who>
    <bug_when>2013-02-01 06:01:24 -0800</bug_when>
    <thetext>Created attachment 186027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822794</commentid>
    <comment_count>12</comment_count>
      <attachid>186027</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 08:03:41 -0800</bug_when>
    <thetext>Comment on attachment 186027
Patch

Clearing flags on attachment: 186027

Committed r141596: &lt;http://trac.webkit.org/changeset/141596&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822795</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 08:03:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185755</attachid>
            <date>2013-01-31 05:14:19 -0800</date>
            <delta_ts>2013-01-31 12:07:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108464-20130131141102.patch</filename>
            <type>text/plain</type>
            <size>56435</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzkyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTEyM2YyZTQzY2MyZWZlYzM2N2I0NGZhZGZhNTI5NTZj
OGM2NGYyYS4uYjE1OGFmYzRjODNlNWYyMzZkNjNmNmYzZjI0YWQ0ZDdlM2VjOWQ4NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEy
MSBAQAogMjAxMy0wMS0zMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
IAorICAgICAgICBbY2hyb21pdW1dIG1vdmUgb3duZXJzaGlwIG9mIFRlc3RSdW5uZXIgb2JqZWN0
IHRvIFRlc3RJbnRlcmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCZWZvcmUsIFRlc3RTaGVsbCBvd25lZCB0aGUgY2xhc3MuIFRoaXMgYWxzbyBy
ZW1vdmVzIHRoZSBsYXN0IGluY2x1ZGUKKyAgICAgICAgZnJvbSBEdW1wUmVuZGVyVHJlZSB0byBU
ZXN0UnVubmVyL3NyYy4KKworICAgICAgICBUaGlzIGFsc28gZGVsZXRlcyBUZXN0RGVsZWdhdGUg
YW5kIHVzZXMgV2ViVGVzdERlbGVnYXRlIGV2ZXJ5d2hlcmUKKyAgICAgICAgaW5zdGVhZC4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFj
ZXMuaDoKKyAgICAgICAgKFdlYlRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmg6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
c2V0RGVsZWdhdGUpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNw
cDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6bWFr
ZU1lbnVJdGVtU3RyaW5nc0Zvcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnNldERlbGVnYXRlKToKKyAgICAg
ICAgKEV2ZW50U2VuZGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpHYW1lcGFkQ29udHJvbGxlcjo6c2V0RGVsZWdhdGUpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKEdhbWVwYWRDb250cm9sbGVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJm
YWNlczo6VGVzdEludGVyZmFjZXMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdEludGVy
ZmFjZXM6On5UZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50
ZXJmYWNlczo6c2V0V2ViVmlldyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJm
YWNlczo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdEludGVyZmFj
ZXM6OmJpbmRUbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNlczo6cmVz
ZXRBbGwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpUZXN0SW50ZXJmYWNlczo6c2V0VGVzdElzUnVubmluZyk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpUZXN0SW50ZXJmYWNlczo6dGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXIpOgorICAgICAgICAoVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnRlc3RSdW5uZXIp
OgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJuYWwpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXREZWxlZ2F0
ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6
OnNldFRlc3RJc1J1bm5pbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1dlYlRlc3RSdW5uZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYlRlc3RS
dW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1
bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1w
RWRpdGluZ0NhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjpzaG91bGREdW1wQXNUZXh0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5u
ZXI6OnNldFNob3VsZER1bXBBc1RleHQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6
c2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RSdW5uZXI6OnNob3VsZER1bXBBc0F1ZGlvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6OmF1ZGlvRGF0YSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0UnVubmVyOjpzaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3Mp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFVzZXJH
ZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6c3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fkcyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wVGl0bGVDaGFuZ2VzKToKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDcmVhdGVWaWV3KToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmNhbk9wZW5XaW5kb3dzKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjp3ZWJQZXJtaXNzaW9ucyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU3RhdHVzQ2Fs
bGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1
bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpkZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBTZWxlY3Rpb25SZWN0
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnRlc3RSZXBhaW50KToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnN3ZWVwSG9yaXpvbnRhbGx5
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzUHJpbnRpbmcpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkU3RheU9uUGFnZUFm
dGVySGFuZGxpbmdCZWZvcmVVbmxvYWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2V0VGl0bGVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6Omh0dHBIZWFkZXJzVG9DbGVhcik6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRCbG9ja1JlZGlyZWN0cyk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjp3aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxs
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNldFRvcExvYWRpbmdG
cmFtZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjp0b3BMb2FkaW5n
RnJhbWUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVs
ZWdhdGVEb25lKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnBvbGlj
eURlbGVnYXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
Ojpwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2Up
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6aXNTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFRlc3RTaGVsbDo6Y3JlYXRlTWFpbldpbmRvdyk6CisgICAgICAgIChUZXN0
U2hlbGw6On5UZXN0U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpydW5GaWxlVGVzdCk6Cisg
ICAgICAgIChUZXN0U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoVGVzdFNo
ZWxsOjpkdW1wKToKKyAgICAgICAgKFRlc3RTaGVsbDo6YmluZEpTT2JqZWN0c1RvV2luZG93KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAg
KFRlc3RTaGVsbDo6dGVzdFJ1bm5lcik6CisgICAgICAgIChUZXN0U2hlbGwpOgorCisyMDEzLTAx
LTMxICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtj
aHJvbWl1bV0gbW92ZSBydW5Nb2RhbEJlZm9yZVVubG9hZERpYWxvZyB0byBUZXN0UnVubmVyIGxp
YnJhcnkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODQ0MgogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5n
eXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBlN2U3
YTI3MmMwMTRkM2ZmNjkxMWZkZmRjNDYyYTE1NDEwYzAzYmQxLi4xMzliOGVhZmQ5MDY2YTFkMTI4
MDFmN2E1OGYzMmMzZGQwM2MxZmEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmd5cGkKQEAgLTk2LDYgKzk2LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1dlYlRlc3RQbHVnaW4uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcCcsCiAgICAgICAgIF0sCiAgICAgICAgICd0
ZXN0X3BsdWdpbl9maWxlcyc6IFsKICAgICAgICAgICAgICdUZXN0TmV0c2NhcGVQbHVnSW4vUGx1
Z2luT2JqZWN0LmNwcCcsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFjZXMuaAppbmRl
eCA0ZWFjNDJjNmQwY2JmNjk5YTdlYzA4NzI4MzUyYjRjMDc1MjQ1NTcwLi45NWRlYTZkODNiZjJl
OTNlNjZkMTYzNGQzYzk3NzFhYjk1ZWQ4MGUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RJ
bnRlcmZhY2VzLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogICAgIFdlYkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpOwogICAgIFdlYkV2ZW50U2Vu
ZGVyKiBldmVudFNlbmRlcigpOwogICAgIFdlYlRlc3RSdW5uZXIqIHRlc3RSdW5uZXIoKTsKLSAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBUZXN0UnVubmVyIGlzIGNvbXBsZXRlLgotICAg
IHZvaWQgc2V0VGVzdFJ1bm5lcihXZWJUZXN0UnVubmVyKik7CiAKIHByaXZhdGU6CiAgICAgY2xh
c3MgSW50ZXJuYWw7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmgKaW5kZXggNGFlNjM0OTBm
ZGI3MjMzZDFlNDk3N2ZkMmExZTk4YjA4NDYyNWY2Yy4uYTk3YjkwN2JlOThiZTI0YjYxYmFmZTA4
OTE0YThiODM4NTU2N2VhYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaApAQCAtMzgs
NTcgKzM4LDY0IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFycmF5QnVmZmVyVmll
dzsKIGNsYXNzIFdlYlBlcm1pc3Npb25DbGllbnQ7CitjbGFzcyBXZWJGcmFtZTsKIH0KIAogbmFt
ZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCi0vLyBGSVhNRTogT25jZSB0aGUgVGVzdFJ1bm5lciBj
bGFzcyBpcyBjb21wbGV0ZSwgdGhpcyBjbGFzcyBzaG91bGQgdGFrZSBhCi0vLyBUZXN0UnVubmVy
KiBhcyBjdG9yIGFyZ3VtZW50LCBhbmQgbm90IGhhdmUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMu
CitjbGFzcyBUZXN0UnVubmVyOworCiBjbGFzcyBXZWJUZXN0UnVubmVyIHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGVzdElzUnVubmluZyhib29sKSB7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQXNUZXh0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkRHVtcEFzVGV4dChib29sKSB7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhi
b29sKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENoaWxkRnJhbWVTY3JvbGxQb3Np
dGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wQXNBdWRpbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCBjb25zdCBXZWJLaXQ6OldlYkFycmF5QnVmZmVyVmlldyogYXVkaW9EYXRhKCkgY29u
c3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
dWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFRpdGxlQ2hh
bmdlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1
bXBDcmVhdGVWaWV3KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIFdlYktpdDo6V2ViUGVybWlzc2lvbkNsaWVudCogd2ViUGVybWlzc2lvbnMoKSBjb25zdCB7
IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3Mo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wU2VsZWN0aW9uUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHRlc3RSZXBhaW50
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9u
dGFsbHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1ByaW50
aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3Rh
eU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oV2ViS2l0OjpXZWJUZXh0
RGlyZWN0aW9uKSB7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiog
aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRCbG9ja1JlZGlyZWN0cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRUb3BMb2FkaW5nRnJhbWUoV2ViS2l0OjpX
ZWJGcmFtZSosIGJvb2wpIHsgfQotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJGcmFtZSogdG9wTG9h
ZGluZ0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBwb2xpY3lE
ZWxlZ2F0ZURvbmUoKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdh
dGVJc1Blcm1pc3NpdmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2lmIFdF
QlRFU1RSVU5ORVJfSU1QTEVNRU5UQVRJT04KKyAgICBleHBsaWNpdCBXZWJUZXN0UnVubmVyKFRl
c3RSdW5uZXIqKTsKKyNlbmRpZgorCisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBFZGl0aW5n
Q2FsbGJhY2tzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBBc1RleHQoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkRHVtcEFzVGV4dChib29sKTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoYm9vbCk7CisgICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBDaGlsZEZyYW1lc0FzVGV4dCgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGREdW1wQXNBdWRpbygpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
V2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlvRGF0YSgpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCk7CisgICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wQ3JlYXRlVmlldygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBj
YW5PcGVuV2luZG93cygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNv
dXJjZVJlcXVlc3RDYWxsYmFja3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVt
cFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYktpdDo6
V2ViUGVybWlzc2lvbkNsaWVudCogd2ViUGVybWlzc2lvbnMoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBz
aG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCB0ZXN0UmVw
YWludCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzd2VlcEhvcml6b250YWxseSgpIGNvbnN0
OworICAgIHZpcnR1YWwgYm9vbCBpc1ByaW50aW5nKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihXZWJLaXQ6OldlYlRleHREaXJlY3Rp
b24pOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiBodHRwSGVhZGVy
c1RvQ2xlYXIoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmxvY2tSZWRpcmVjdHMo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVs
bCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRUb3BMb2FkaW5nRnJhbWUoV2ViS2l0OjpX
ZWJGcmFtZSosIGJvb2wpOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJGcmFtZSogdG9wTG9hZGlu
Z0ZyYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHBvbGljeURlbGVnYXRlRG9uZSgpOwor
ICAgIHZpcnR1YWwgYm9vbCBwb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIHNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIFRlc3RSdW5uZXIqIG1fcHJpdmF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyQ2hyb21pdW0uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5jcHAKaW5kZXggZDlkYmEzM2Fh
MzI0Mjk4ZGIwMGNiODc5MDUzZjAwMzQ2ODdlOTEzOS4uOTAzZDI5Y2MxYjBiNGJiNTlmNWIxYjY0
MTYxNzEwOTVmOTNiZmI4OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5jcHAKQEAgLTMxLDExICszMSwxMSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaCIK
IAotI2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlP
YmplY3QuaCIKICNpbmNsdWRlICJXZWJFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIK
ICNpbmNsdWRlICJXZWJOb2RlLmgiCisjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCiAjaW5j
bHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDU3RyaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaAppbmRl
eCBhOTcyOGM2MTViYjRmNTA1ZmUxZWNhNmEyZjY0Y2ZmYWU5NGExNTViLi45MTMwMDU4MDM4YWNk
NmIyN2Q1NGM5YWMzMzgyMWQyMTYxMTdhNDczIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9t
aXVtLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IFdlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAotY2xhc3MgVGVzdERlbGVn
YXRlOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKQEAgLTYxLDcgKzYxLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBub3RpZmljYXRpb25SZWNlaXZlZChjb25zdCBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3QmIHRhcmdldCwgY29uc3QgY2hhciogbm90aWZpY2F0aW9uTmFt
ZSk7CiAKLSAgICB2b2lkIHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9k
ZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9CisgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdh
dGUqIGRlbGVnYXRlKSB7IG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsgfQogICAgIHZvaWQgc2V0V2Vi
VmlldyhXZWJLaXQ6OldlYlZpZXcqIHdlYlZpZXcpIHsgbV93ZWJWaWV3ID0gd2ViVmlldzsgfQog
CiBwcml2YXRlOgpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp2ZWN0b3I8
Q3BwVmFyaWFudD4gbV9ub3RpZmljYXRpb25DYWxsYmFja3M7CiAKLSAgICBUZXN0RGVsZWdhdGUq
IG1fZGVsZWdhdGU7CisgICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOwogICAgIFdlYktp
dDo6V2ViVmlldyogbV93ZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwCmluZGV4
IGQ1NmExYTg0NjgzOWM1Yjk3YjAyNWExNDgxNzU0MTZkNzYxYjY2MDUuLjU2MGVhOGUyNDM5Y2I4
MTI1ZTkzNWIzZDAyZjZjMWI5YzEyZDZlM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKQEAg
LTQ1LDEwICs0NSwxMCBAQAogCiAjaW5jbHVkZSAiS2V5Q29kZU1hcHBpbmcuaCIKICNpbmNsdWRl
ICJNb2NrU3BlbGxDaGVjay5oIgotI2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHRNZW51RGF0YS5oIgogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRpb24uaCIKICNp
bmNsdWRlICJXZWJFdmVudFNlbmRlci5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5oIgog
I2luY2x1ZGUgIldlYlRvdWNoUG9pbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVk
ZSA8cHVibGljL1dlYkRyYWdEYXRhLmg+CkBAIC0xMjcsNyArMTI3LDcgQEAgaW5saW5lIGJvb2wg
b3V0c2lkZU11bHRpQ2xpY2tSYWRpdXMoY29uc3QgV2ViUG9pbnQmIGEsIGNvbnN0IFdlYlBvaW50
JiBiKQogLy8gZGVwZW5kZW50IChlLmcuLCBkcmFnZ2luZyBoYXMgYSB0aW1lb3V0IHZzIHNlbGVj
dGlvbikuCiB1aW50MzIgdGltZU9mZnNldE1zID0gMDsKIAotZG91YmxlIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMoVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKK2RvdWJsZSBnZXRDdXJyZW50RXZlbnRU
aW1lU2VjKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgcmV0dXJuIChkZWxlZ2F0
ZS0+Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgKyB0aW1lT2Zmc2V0TXMpIC8gMTAwMC4w
OwogfQpAQCAtODEyLDcgKzgxMiw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZl
bnRzKCkKIC8vICAgYWxzbyBtYWtlcyBzZW5zZS4gVGhpcyBmdW5jdGlvbiBpcyBkb2luZyBzdWNo
IGZvciBzb21lIGZsYWdzLgogLy8gLSBTb21lIHRlc3QgZXZlbiBjaGVja3MgYWN0dWFsIHN0cmlu
ZyBjb250ZW50LiBTbyBwcm92aWRpbmcgaXQgd291bGQgYmUgYWxzbyBoZWxwZnVsLgogLy8KLXN0
YXRpYyBWZWN0b3I8V2ViU3RyaW5nPiBtYWtlTWVudUl0ZW1TdHJpbmdzRm9yKFdlYkNvbnRleHRN
ZW51RGF0YSogY29udGV4dE1lbnUsIFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCitzdGF0aWMgVmVj
dG9yPFdlYlN0cmluZz4gbWFrZU1lbnVJdGVtU3RyaW5nc0ZvcihXZWJDb250ZXh0TWVudURhdGEq
IGNvbnRleHRNZW51LCBXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIC8vIFRoZXNl
IGNvbnN0YW50cyBhcmUgYmFzZWQgb24gU2FmYXJpJ3MgY29udGV4dCBtZW51IGJlY2F1c2UgdGVz
dHMgYXJlIG1hZGUgZm9yIGl0LgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub25FZGl0YWJsZU1l
bnVTdHJpbmdzW10gPSB7ICJCYWNrIiwgIlJlbG9hZCBQYWdlIiwgIk9wZW4gaW4gRGFzaGJhb3Jk
IiwgIjxzZXBhcmF0b3I+IiwgIlZpZXcgU291cmNlIiwgIlNhdmUgUGFnZSBBcyIsICJQcmludCBQ
YWdlIiwgIkluc3BlY3QgRWxlbWVudCIsIDAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oCmluZGV4IDNj
MjFlZjlmODQ4MDUyYWM3NjgxNTU1OGQ4NmJhOWE3MzkwODc2MzUuLjRiZjI4N2U2M2MwMTNkYzlk
MGEwNGM0MGZjMTRhYTI3NWM5NTI2ODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaApAQCAtNTAsMTMg
KzUwLDEzIEBAIGNsYXNzIFdlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAot
Y2xhc3MgVGVzdERlbGVnYXRlOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBFdmVu
dFNlbmRlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBFdmVudFNlbmRl
cigpOwogCi0gICAgdm9pZCBzZXREZWxlZ2F0ZShUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKSB7IG1f
ZGVsZWdhdGUgPSBkZWxlZ2F0ZTsgfQorICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVzdERlbGVn
YXRlKiBkZWxlZ2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KICAgICB2b2lkIHNldFdl
YlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmlldyA9IHdlYlZpZXc7IH0K
IAogICAgIC8vIFJlc2V0cyBzb21lIHN0YXRpYyB2YXJpYWJsZSBzdGF0ZS4KQEAgLTE2OSw3ICsx
NjksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViVGFza0xpc3QgbV90YXNrTGlzdDsKIAotICAgIFRl
c3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKKyAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7
CiAgICAgV2ViS2l0OjpXZWJWaWV3KiBtX3dlYlZpZXc7CiAKICAgICAvLyBMb2NhdGlvbiBvZiB0
aGUgdG91Y2ggcG9pbnQgdGhhdCBpbml0aWF0ZWQgYSBnZXN0dXJlLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2Ft
ZXBhZENvbnRyb2xsZXIuY3BwCmluZGV4IGU5YzI0NmFmMjVkZGNlODg4ZjZlZmVlYmY1ZjA2MDJj
ZDJlN2VkN2YuLjI2NTQ0MDBlZTQzYTMzNDRkM2I4NGY2YTI3ZWY1NzVhNzEwM2MzZWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVw
YWRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdhbWVwYWRDb250cm9sbGVyLmgiCi0jaW5jbHVk
ZSAiVGVzdERlbGVnYXRlLmgiCisjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBHYW1lcGFkQ29udHJv
bGxlcjo6YmluZFRvSmF2YXNjcmlwdChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYg
Y2xhc3MKICAgICBDcHBCb3VuZENsYXNzOjpiaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBjbGFzc25h
bWUpOwogfQogCi12b2lkIEdhbWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZShUZXN0RGVsZWdh
dGUqIGRlbGVnYXRlKQordm9pZCBHYW1lcGFkQ29udHJvbGxlcjo6c2V0RGVsZWdhdGUoV2ViVGVz
dERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9H
YW1lcGFkQ29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaAppbmRleCBkMzBkNTA2NzlhYmJlNmJmMmFlYTA3
YmZhMjY5M2NhOTEyYzEyYmIyLi41ZGNhYjZjZjQ2ZjEyMzZmZjUzNzcwMWNiMzNjOTA4ZDIwZDk4
NTZkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9HYW1lcGFkQ29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmgKQEAgLTQxLDE0ICs0MSwxNCBA
QCBjbGFzcyBXZWJGcmFtZTsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCi1jbGFzcyBU
ZXN0RGVsZWdhdGU7CitjbGFzcyBXZWJUZXN0RGVsZWdhdGU7CiAKIGNsYXNzIEdhbWVwYWRDb250
cm9sbGVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgogICAgIEdhbWVwYWRDb250
cm9sbGVyKCk7CiAKICAgICB2b2lkIGJpbmRUb0phdmFzY3JpcHQoV2ViS2l0OjpXZWJGcmFtZSos
IGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBjbGFzc25hbWUpOwotICAgIHZvaWQgc2V0RGVsZWdh
dGUoVGVzdERlbGVnYXRlKik7CisgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUq
KTsKICAgICB2b2lkIHJlc2V0KCk7CiAKIHByaXZhdGU6CkBAIC02NCw3ICs2NCw3IEBAIHByaXZh
dGU6CiAKICAgICBXZWJLaXQ6OldlYkdhbWVwYWRzIG1fZ2FtZXBhZHM7CiAKLSAgICBUZXN0RGVs
ZWdhdGUqIG1fZGVsZWdhdGU7CisgICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdERlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OWNkOWFlZjY1ZTUyZTFiNjVlMDljYTZkYmRjNmE0NjVlNWFkMmFlOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDYz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFRlc3REZWxlZ2F0ZV9oCi0jZGVmaW5lIFRlc3REZWxlZ2F0ZV9oCi0K
LSNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYlZlY3Rv
ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXN0cnVjdCBXZWJDb250ZXh0TWVudURhdGE7Ci1j
bGFzcyBXZWJHYW1lcGFkczsKLX0KLQotbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewotCi1jbGFz
cyBXZWJUYXNrOwotCi1jbGFzcyBUZXN0RGVsZWdhdGUgewotcHVibGljOgotICAgIHZpcnR1YWwg
dm9pZCBjbGVhckNvbnRleHRNZW51RGF0YSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJF
ZGl0Q29tbWFuZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdENvbW1hbmQoY29uc3Qg
c3RkOjpzdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgPSAwOwotICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEqIGxhc3RDb250ZXh0TWVudURhdGEoKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNvbnN0IFdlYktpdDo6
V2ViR2FtZXBhZHMmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHByaW50TWVzc2FnZShjb25zdCBz
dGQ6OnN0cmluZyYgbWVzc2FnZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJU
YXNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGFzayosIGxv
bmcgbG9uZyBtcykgPSAwOwotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJ
c29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJp
bmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykgPSAwOwotICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1
cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpID0gMDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3Ry
aW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBw
YXRoKSA9IDA7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVy
ZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdEludGVyZmFjZXMuY3BwCmluZGV4IDUwNDA3NjU0MWFjNTY5NDJiOGY4N2MxYjE0MDA5OGVh
Y2U1NjY0OTAuLjA3YzQ3NjZjMTViNWI5NmQ2MTBmYmE3NDI1ZTdhMjgzNDQ1OTNmODcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJ
bnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIu
aCIKICNpbmNsdWRlICJHYW1lcGFkQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlRlc3RSdW5uZXIu
aCIKICNpbmNsdWRlICJUZXh0SW5wdXRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8cHVibGljL1dl
YlN0cmluZy5oPgogCkBAIC00OSw2ICs1MCw3IEBAIFRlc3RJbnRlcmZhY2VzOjpUZXN0SW50ZXJm
YWNlcygpCiAgICAgbV9ldmVudFNlbmRlciA9IGFkb3B0UHRyKG5ldyBFdmVudFNlbmRlcigpKTsK
ICAgICBtX2dhbWVwYWRDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IEdhbWVwYWRDb250cm9sbGVy
KCkpOwogICAgIG1fdGV4dElucHV0Q29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBUZXh0SW5wdXRD
b250cm9sbGVyKCkpOworICAgIG1fdGVzdFJ1bm5lciA9IGFkb3B0UHRyKG5ldyBUZXN0UnVubmVy
KCkpOwogfQogCiBUZXN0SW50ZXJmYWNlczo6flRlc3RJbnRlcmZhY2VzKCkKQEAgLTU3LDExICs1
OSwxMyBAQCBUZXN0SW50ZXJmYWNlczo6flRlc3RJbnRlcmZhY2VzKCkKICAgICBtX2V2ZW50U2Vu
ZGVyLT5zZXRXZWJWaWV3KDApOwogICAgIC8vIG1fZ2FtZXBhZENvbnRyb2xsZXIgZG9lc24ndCBk
ZXBlbmQgb24gV2ViVmlldy4KICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXItPnNldFdlYlZpZXco
MCk7CisgICAgbV90ZXN0UnVubmVyLT5zZXRXZWJWaWV3KDApOwogCiAgICAgbV9hY2Nlc3NpYmls
aXR5Q29udHJvbGxlci0+c2V0RGVsZWdhdGUoMCk7CiAgICAgbV9ldmVudFNlbmRlci0+c2V0RGVs
ZWdhdGUoMCk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlci0+c2V0RGVsZWdhdGUoMCk7Ci0gICAg
Ly8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9uIFRlc3REZWxlZ2F0ZS4K
KyAgICAvLyBtX3RleHRJbnB1dENvbnRyb2xsZXIgZG9lc24ndCBkZXBlbmQgb24gV2ViVGVzdERl
bGVnYXRlLgorICAgIG1fdGVzdFJ1bm5lci0+c2V0RGVsZWdhdGUoMCk7CiB9CiAKIHZvaWQgVGVz
dEludGVyZmFjZXM6OnNldFdlYlZpZXcoV2ViVmlldyogd2ViVmlldykKQEAgLTcwLDE0ICs3NCwx
NiBAQCB2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCiAg
ICAgbV9ldmVudFNlbmRlci0+c2V0V2ViVmlldyh3ZWJWaWV3KTsKICAgICAvLyBtX2dhbWVwYWRD
b250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9uIFdlYlZpZXcuCiAgICAgbV90ZXh0SW5wdXRDb250
cm9sbGVyLT5zZXRXZWJWaWV3KHdlYlZpZXcpOworICAgIG1fdGVzdFJ1bm5lci0+c2V0V2ViVmll
dyh3ZWJWaWV3KTsKIH0KIAotdm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0RGVsZWdhdGUoVGVzdERl
bGVnYXRlKiBkZWxlZ2F0ZSkKK3ZvaWQgVGVzdEludGVyZmFjZXM6OnNldERlbGVnYXRlKFdlYlRl
c3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+
c2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogICAgIG1fZXZlbnRTZW5kZXItPnNldERlbGVnYXRlKGRl
bGVnYXRlKTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVyLT5zZXREZWxlZ2F0ZShkZWxlZ2F0ZSk7
Ci0gICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9uIFRlc3REZWxl
Z2F0ZS4KKyAgICAvLyBtX3RleHRJbnB1dENvbnRyb2xsZXIgZG9lc24ndCBkZXBlbmQgb24gV2Vi
VGVzdERlbGVnYXRlLgorICAgIG1fdGVzdFJ1bm5lci0+c2V0RGVsZWdhdGUoZGVsZWdhdGUpOwog
fQogCiB2b2lkIFRlc3RJbnRlcmZhY2VzOjpiaW5kVG8oV2ViRnJhbWUqIGZyYW1lKQpAQCAtODYs
NiArOTIsOCBAQCB2b2lkIFRlc3RJbnRlcmZhY2VzOjpiaW5kVG8oV2ViRnJhbWUqIGZyYW1lKQog
ICAgIG1fZXZlbnRTZW5kZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJv
bVVURjgoImV2ZW50U2VuZGVyIikpOwogICAgIG1fZ2FtZXBhZENvbnRyb2xsZXItPmJpbmRUb0ph
dmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoImdhbWVwYWRDb250cm9sbGVyIikp
OwogICAgIG1fdGV4dElucHV0Q29udHJvbGxlci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2Vi
U3RyaW5nOjpmcm9tVVRGOCgidGV4dElucHV0Q29udHJvbGxlciIpKTsKKyAgICBtX3Rlc3RSdW5u
ZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoInRlc3RSdW5u
ZXIiKSk7CisgICAgbV90ZXN0UnVubmVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJp
bmc6OmZyb21VVEY4KCJsYXlvdXRUZXN0Q29udHJvbGxlciIpKTsKIH0KIAogdm9pZCBUZXN0SW50
ZXJmYWNlczo6cmVzZXRBbGwoKQpAQCAtOTQsNiArMTAyLDEyIEBAIHZvaWQgVGVzdEludGVyZmFj
ZXM6OnJlc2V0QWxsKCkKICAgICBtX2V2ZW50U2VuZGVyLT5yZXNldCgpOwogICAgIG1fZ2FtZXBh
ZENvbnRyb2xsZXItPnJlc2V0KCk7CiAgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNu
J3QgaGF2ZSBhbnkgc3RhdGUgdG8gcmVzZXQuCisgICAgbV90ZXN0UnVubmVyLT5yZXNldCgpOwor
fQorCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKGJvb2wgcnVubmluZykK
K3sKKyAgICBtX3Rlc3RSdW5uZXItPnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7CiB9CiAKIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKiBUZXN0SW50ZXJmYWNlczo6YWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKQpAQCAtMTA2LDQgKzEyMCw5IEBAIEV2ZW50U2VuZGVyKiBUZXN0SW50ZXJmYWNlczo6
ZXZlbnRTZW5kZXIoKQogICAgIHJldHVybiBtX2V2ZW50U2VuZGVyLmdldCgpOwogfQogCitUZXN0
UnVubmVyKiBUZXN0SW50ZXJmYWNlczo6dGVzdFJ1bm5lcigpCit7CisgICAgcmV0dXJuIG1fdGVz
dFJ1bm5lci5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmgKaW5kZXggYTdk
YTQzMjgzNzE3NGQyZWVhMTY4NWFmZmUxMmFjYzkzMmJiNjA1Ny4uOTk2ZjNkNzg4MzZkNTAxNjNi
N2VkODA5NTUxMDcwMDY0ODg2MGFmNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oCkBAIC00
Myw4ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIGNsYXNzIEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOwogY2xhc3MgRXZlbnRTZW5kZXI7CiBjbGFzcyBHYW1lcGFkQ29udHJvbGxl
cjsKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFRlc3RSdW5uZXI7CiBjbGFzcyBUZXh0SW5w
dXRDb250cm9sbGVyOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBUZXN0SW50ZXJm
YWNlcyB7CiBwdWJsaWM6CkBAIC01MiwxOCArNTMsMjEgQEAgcHVibGljOgogICAgIH5UZXN0SW50
ZXJmYWNlcygpOwogCiAgICAgdm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyopOwotICAg
IHZvaWQgc2V0RGVsZWdhdGUoVGVzdERlbGVnYXRlKik7CisgICAgdm9pZCBzZXREZWxlZ2F0ZShX
ZWJUZXN0RGVsZWdhdGUqKTsKICAgICB2b2lkIGJpbmRUbyhXZWJLaXQ6OldlYkZyYW1lKik7CiAg
ICAgdm9pZCByZXNldEFsbCgpOworICAgIHZvaWQgc2V0VGVzdElzUnVubmluZyhib29sKTsKIAog
ICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpOwog
ICAgIEV2ZW50U2VuZGVyKiBldmVudFNlbmRlcigpOworICAgIFRlc3RSdW5uZXIqIHRlc3RSdW5u
ZXIoKTsKIAogcHJpdmF0ZToKICAgICBPd25QdHI8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI+IG1f
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgT3duUHRyPEV2ZW50U2VuZGVyPiBtX2V2ZW50
U2VuZGVyOwogICAgIE93blB0cjxHYW1lcGFkQ29udHJvbGxlcj4gbV9nYW1lcGFkQ29udHJvbGxl
cjsKICAgICBPd25QdHI8VGV4dElucHV0Q29udHJvbGxlcj4gbV90ZXh0SW5wdXRDb250cm9sbGVy
OworICAgIE93blB0cjxUZXN0UnVubmVyPiBtX3Rlc3RSdW5uZXI7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmgKaW5kZXggMjEzZmJmNGI5YWQxNWMxYWMxODRiYTNmNjMxZmFkZDYyOTY5ODAzMC4u
ODI4ZmI0YmIwZjc5MjE1ZGQ1OGY3ODk0YzE3YzY4YTQ1ZmIwMDRlYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuaApAQCAtMzcsMTEgKzM3LDE1IEBACiAjaW5jbHVkZSAiV2ViQXJyYXlCdWZmZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVGFz
ay5oIgotI2luY2x1ZGUgIldlYlRlc3RSdW5uZXIuaCIKKyNpbmNsdWRlICJXZWJUZXh0RGlyZWN0
aW9uLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgorI2luY2x1ZGUgPHNldD4KKyNpbmNs
dWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
eworY2xhc3MgV2ViQXJyYXlCdWZmZXJWaWV3OworY2xhc3MgV2ViUGVybWlzc2lvbkNsaWVudDsK
IGNsYXNzIFdlYlZpZXc7CiB9CiAKQEAgLTUwLDEyICs1NCwxMSBAQCBuYW1lc3BhY2UgV2ViVGVz
dFJ1bm5lciB7CiBjbGFzcyBXZWJQZXJtaXNzaW9uczsKIGNsYXNzIFdlYlRlc3REZWxlZ2F0ZTsK
IAotY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzLCBwdWJsaWMgV2ViVGVz
dFJ1bm5lciB7CitjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVi
bGljOgogICAgIFRlc3RSdW5uZXIoKTsKICAgICB2aXJ0dWFsIH5UZXN0UnVubmVyKCk7CiAKLSAg
ICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgbWV0aG9kIHRvIHRha2UgYSBUZXN0RGVsZWdhdGUqIGlu
c3RlYWQuCiAgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsKICAgICB2b2lk
IHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmlldyA9IHdlYlZp
ZXc7IH0KIApAQCAtNjMsNTAgKzY2LDQ5IEBAIHB1YmxpYzoKIAogICAgIFdlYlRhc2tMaXN0KiB0
YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKLSAgICAvLyBXZWJUZXN0UnVubmVy
IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXN0SXNSdW5uaW5nKGJvb2wp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQXNUZXh0KCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9vbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVyYXRlUGl4ZWxS
ZXN1bHRzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRG
cmFtZVNjcm9sbFBvc2l0aW9ucygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBz
aG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNv
bnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1
cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlBlcm1pc3Np
b25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3Qo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdGVzdFJlcGFpbnQoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHkoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24o
V2ViS2l0OjpXZWJUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IHN0
ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEJsb2NrUmVkaXJlY3RzKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1lKFdlYktpdDo6
V2ViRnJhbWUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJhbWUq
IHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwb2xp
Y3lEZWxlZ2F0ZURvbmUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdh
dGVFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBvbGljeURlbGVn
YXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBvbGlj
eURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCk7CisgICAgYm9vbCBz
aG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEFz
VGV4dCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2hvdWxkRHVtcEFzVGV4dChib29sKTsKKyAgICBi
b29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTaG91
bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sKTsKKyAgICBib29sIHNob3VsZER1bXBDaGlsZEZy
YW1lU2Nyb2xsUG9zaXRpb25zKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBBc0F1ZGlvKCkgY29uc3Q7Cisg
ICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlvRGF0YSgpIGNvbnN0Owor
ICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0OworICAgIHZvaWQg
c2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sKTsKKyAgICBib29sIHNob3VsZER1
bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7CisgICAgYm9vbCBzdG9w
UHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wVGl0bGVD
aGFuZ2VzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wQ3JlYXRlVmlldygpIGNvbnN0Owor
ICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBSZXNv
dXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJl
cXVlc3RDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3Bv
bnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50KiB3
ZWJQZXJtaXNzaW9ucygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNr
cygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0OworICAg
IGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxk
RHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICBib29sIHRlc3RSZXBhaW50KCkgY29uc3Q7
CisgICAgYm9vbCBzd2VlcEhvcml6b250YWxseSgpIGNvbnN0OworICAgIGJvb2wgaXNQcmludGlu
ZygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVV
bmxvYWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihXZWJLaXQ6Oldl
YlRleHREaXJlY3Rpb24pOworICAgIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaHR0cEhl
YWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRCbG9ja1JlZGlyZWN0cygpIGNv
bnN0OworICAgIGJvb2wgd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1lKFdlYktpdDo6V2ViRnJhbWUqLCBib29sKTsKKyAg
ICBXZWJLaXQ6OldlYkZyYW1lKiB0b3BMb2FkaW5nRnJhbWUoKSBjb25zdDsKKyAgICB2b2lkIHBv
bGljeURlbGVnYXRlRG9uZSgpOworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29u
c3Q7CisgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0OworICAgIGJv
b2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CisgICAgYm9vbCBzaG91
bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAgIGJvb2wgaXNTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpIGNvbnN0OwogCiAgICAgLy8gQSBzaW5nbGUgaXRlbSBpbiB0aGUgd29yayBxdWV1
ZS4KICAgICBjbGFzcyBXb3JrSXRlbSB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5j
cHAKaW5kZXggYTUzYTA5ZWY4NDVhMjEwNmI0OTU3OTM2MzdlOGM0ZTg5MGNhNGNhYy4uMDkzZDdh
NjJlMTRiMmZiYTgzMGM4YTI2NzE5N2UyOWI2NGQ4ZDNiMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRl
c3RJbnRlcmZhY2VzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCiAKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUu
aCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKQEAgLTQ3LDcgKzQ2
LDcgQEAgdXNpbmcgV2ViS2l0OjpXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7
CiAKLWNsYXNzIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCA6IHB1YmxpYyBUZXN0RGVsZWdh
dGUgeworY2xhc3MgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsIHsKIHB1YmxpYzoKICAgICBJ
bnRlcm5hbCgpOwogICAgIHZpcnR1YWwgfkludGVybmFsKCk7CkBAIC01OSwyMSArNTgsNyBAQCBw
dWJsaWM6CiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsg
fQogICAgIFdlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cigpIHsgcmV0dXJuICZtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOyB9CiAgICAgV2ViRXZlbnRT
ZW5kZXIqIGV2ZW50U2VuZGVyKCkgeyByZXR1cm4gJm1fZXZlbnRTZW5kZXI7IH0KLSAgICBXZWJU
ZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgeyByZXR1cm4gbV90ZXN0UnVubmVyOyB9Ci0gICAgdm9p
ZCBzZXRUZXN0UnVubmVyKFdlYlRlc3RSdW5uZXIqIHRlc3RSdW5uZXIpIHsgbV90ZXN0UnVubmVy
ID0gdGVzdFJ1bm5lcjsgfQotCi0gICAgLy8gVGVzdERlbGVnYXRlIGltcGxlbWVudGF0aW9uLgot
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRleHRNZW51RGF0YSgpOwotICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckVkaXRDb21tYW5kKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRDb21tYW5kKGNv
bnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOwotICAgIHZp
cnR1YWwgV2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1lbnVEYXRhKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRzJik7Ci0gICAg
dmlydHVhbCB2b2lkIHByaW50TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7Ci0g
ICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9z
dERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpOwotICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+
JiBhYnNvbHV0ZUZpbGVuYW1lcyk7Ci0gICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRp
bWVJbk1pbGxpc2Vjb25kKCk7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNv
bHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CisgICAg
V2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIHsgcmV0dXJuICZtX3Rlc3RSdW5uZXI7IH0KIAog
cHJpdmF0ZToKICAgICBUZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFjZXM7CkBAIC04MSw4ICs2Niw3
IEBAIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogICAgIFdlYkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgV2ViRXZlbnRTZW5k
ZXIgbV9ldmVudFNlbmRlcjsKLSAgICBXZWJUZXN0UnVubmVyKiBtX3Rlc3RSdW5uZXI7Ci0gICAg
V2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3RSdW5uZXIgbV90ZXN0UnVu
bmVyOwogfTsKIAogV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5hbCgpCkBAIC05
MCw4ICs3NCw3IEBAIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJuYWwoKQogICAg
ICwgbV93ZWJWaWV3KDApCiAgICAgLCBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyKG1faW50ZXJm
YWNlcy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpKQogICAgICwgbV9ldmVudFNlbmRlcihtX2lu
dGVyZmFjZXMuZXZlbnRTZW5kZXIoKSkKLSAgICAsIG1fdGVzdFJ1bm5lcigwKQotICAgICwgbV9k
ZWxlZ2F0ZSgwKQorICAgICwgbV90ZXN0UnVubmVyKG1faW50ZXJmYWNlcy50ZXN0UnVubmVyKCkp
CiB7CiB9CiAKQEAgLTEwMSwxMyArODQsNyBAQCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6
On5JbnRlcm5hbCgpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXREZWxl
Z2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewotICAgIGlmIChkZWxlZ2F0ZSkgewot
ICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAgICAgIG1faW50ZXJmYWNlcy5zZXRE
ZWxlZ2F0ZSh0aGlzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2RlbGVnYXRlID0gMDsKLSAg
ICAgICAgbV9pbnRlcmZhY2VzLnNldERlbGVnYXRlKDApOwotICAgIH0KKyAgICBtX2ludGVyZmFj
ZXMuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogfQogCiB2b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJ
bnRlcm5hbDo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMTE4LDYzICs5NSw3IEBA
IHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdl
YlZpZXcpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRUZXN0SXNSdW5u
aW5nKGJvb2wgcnVubmluZykKIHsKLSAgICBpZiAobV90ZXN0UnVubmVyKQotICAgICAgICBtX3Rl
c3RSdW5uZXItPnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7Ci19Ci0KLXZvaWQgV2ViVGVzdElu
dGVyZmFjZXM6OkludGVybmFsOjpjbGVhckNvbnRleHRNZW51RGF0YSgpCi17Ci0gICAgbV9kZWxl
Z2F0ZS0+Y2xlYXJDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNl
czo6SW50ZXJuYWw6OmNsZWFyRWRpdENvbW1hbmQoKQotewotICAgIG1fZGVsZWdhdGUtPmNsZWFy
RWRpdENvbW1hbmQoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnNl
dEVkaXRDb21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYg
dmFsdWUpCi17Ci0gICAgbV9kZWxlZ2F0ZS0+c2V0RWRpdENvbW1hbmQobmFtZSwgdmFsdWUpOwot
fQotCi1XZWJDb250ZXh0TWVudURhdGEqIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6bGFz
dENvbnRleHRNZW51RGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUtPmxhc3RD
b250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6
OnNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRzJiBwYWRzKQotewotICAgIG1fZGVsZWdh
dGUtPnNldEdhbWVwYWREYXRhKHBhZHMpOwotfQotCi12b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJ
bnRlcm5hbDo6cHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKQotewotICAg
IG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtZXNzYWdlKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50
ZXJmYWNlczo6SW50ZXJuYWw6OnBvc3RUYXNrKFdlYlRhc2sqIHRhc2spCi17Ci0gICAgbV9kZWxl
Z2F0ZS0+cG9zdFRhc2sodGFzayk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVy
bmFsOjpwb3N0RGVsYXllZFRhc2soV2ViVGFzayogdGFzaywgbG9uZyBsb25nIG1zKQotewotICAg
IG1fZGVsZWdhdGUtPnBvc3REZWxheWVkVGFzayh0YXNrLCBtcyk7Ci19Ci0KLVdlYlN0cmluZyBX
ZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNv
bnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykKLXsKLSAgICByZXR1
cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFt
ZXMpOwotfQotCi1sb25nIGxvbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRDdXJy
ZW50VGltZUluTWlsbGlzZWNvbmQoKQotewotICAgIHJldHVybiBtX2RlbGVnYXRlLT5nZXRDdXJy
ZW50VGltZUluTWlsbGlzZWNvbmQoKTsKLX0KLQotV2ViS2l0OjpXZWJTdHJpbmcgV2ViVGVzdElu
dGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25z
dCBzdGQ6OnN0cmluZyYgcGF0aCkKLXsKLSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1
dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7CisgICAgbV9pbnRlcmZhY2VzLnNldFRlc3RJ
c1J1bm5pbmcocnVubmluZyk7CiB9CiAKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJUZXN0SW50ZXJm
YWNlcygpCkBAIC0yMzIsOSArMTUzLDQgQEAgV2ViVGVzdFJ1bm5lciogV2ViVGVzdEludGVyZmFj
ZXM6OnRlc3RSdW5uZXIoKQogICAgIHJldHVybiBtX2ludGVybmFsLT50ZXN0UnVubmVyKCk7CiB9
CiAKLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OnNldFRlc3RSdW5uZXIoV2ViVGVzdFJ1bm5lciog
dGVzdFJ1bm5lcikKLXsKLSAgICBtX2ludGVybmFsLT5zZXRUZXN0UnVubmVyKHRlc3RSdW5uZXIp
OwotfQotCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RSdW5uZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNjVkNDY4
NjBiNDIyNWY0NDhjMzgwMTk1MWVhNWJmNDJmZmM4NWIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNw
cApAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJUZXN0
UnVubmVyLmgiCisKKyNpbmNsdWRlICJUZXN0UnVubmVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcihUZXN0UnVubmVyKiB0ZXN0UnVubmVyKQorICAgIDogbV9wcml2YXRlKHRlc3RS
dW5uZXIpCit7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVkaXRpbmdDYWxs
YmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBFZGl0aW5n
Q2FsbGJhY2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEFzVGV4dCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEFzVGV4dCgpOworfQor
Cit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZER1bXBBc1RleHQoYm9vbCB2YWx1ZSkKK3sK
KyAgICBtX3ByaXZhdGUtPnNldFNob3VsZER1bXBBc1RleHQodmFsdWUpOworfQorCitib29sIFdl
YlRlc3RSdW5uZXI6OnNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cygpOworfQorCit2b2lk
IFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJvb2wgdmFsdWUp
Cit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyh2YWx1ZSk7
Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENoaWxkRnJhbWVTY3JvbGxQb3Np
dGlvbnMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBDaGlsZEZy
YW1lU2Nyb2xsUG9zaXRpb25zKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVt
cENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91
bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91
bGREdW1wQXNBdWRpbygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVt
cEFzQXVkaW8oKTsKK30KKworY29uc3QgV2ViQXJyYXlCdWZmZXJWaWV3KiBXZWJUZXN0UnVubmVy
OjphdWRpb0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmF1ZGlvRGF0YSgp
OworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3Mo
KSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBGcmFtZUxvYWRDYWxs
YmFja3MoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVyOjpzZXRTaG91bGREdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91bGREdW1wRnJh
bWVMb2FkQ2FsbGJhY2tzKHZhbHVlKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCk7
Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDcmVhdGVWaWV3KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wQ3JlYXRlVmlldygpOworfQorCitib29sIFdl
YlRlc3RSdW5uZXI6OmNhbk9wZW5XaW5kb3dzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5jYW5PcGVuV2luZG93cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUt
PnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVu
bmVyOjpzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCk7Cit9
CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKCk7Cit9CisKK1dlYlBlcm1pc3Npb25DbGllbnQqIFdlYlRlc3RSdW5u
ZXI6OndlYlBlcm1pc3Npb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT53ZWJQ
ZXJtaXNzaW9ucygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBTdGF0dXND
YWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBTdGF0
dXNDYWxsYmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91
bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5l
cjo6c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpOworfQorCitib29sIFdlYlRlc3RSdW5u
ZXI6OmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
aXZhdGUtPmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVu
bmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+c2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVy
Ojp0ZXN0UmVwYWludCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dGVzdFJlcGFp
bnQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxseSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3dlZXBIb3Jpem9udGFsbHkoKTsKK30KKworYm9v
bCBXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5pc1ByaW50aW5nKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
aXZhdGUtPnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCk7Cit9CisK
K3ZvaWQgV2ViVGVzdFJ1bm5lcjo6c2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rp
b24gZGlyZWN0aW9uKQoreworICAgIG1fcHJpdmF0ZS0+c2V0VGl0bGVUZXh0RGlyZWN0aW9uKGRp
cmVjdGlvbik7Cit9CisKK2NvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogV2ViVGVzdFJ1bm5l
cjo6aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5o
dHRwSGVhZGVyc1RvQ2xlYXIoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91bGRCbG9j
a1JlZGlyZWN0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkQmxvY2tS
ZWRpcmVjdHMoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjp3aWxsU2VuZFJlcXVlc3RTaG91
bGRSZXR1cm5OdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT53aWxsU2VuZFJl
cXVlc3RTaG91bGRSZXR1cm5OdWxsKCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5lcjo6c2V0VG9w
TG9hZGluZ0ZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgYm9vbCBjbGVhcikKK3sKKyAgICBtX3ByaXZh
dGUtPnNldFRvcExvYWRpbmdGcmFtZShmcmFtZSwgY2xlYXIpOworfQorCitXZWJGcmFtZSogV2Vi
VGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT50b3BMb2FkaW5nRnJhbWUoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVyOjpwb2xpY3lE
ZWxlZ2F0ZURvbmUoKQoreworICAgIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVEb25lKCk7Cit9
CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcml2YXRlLT5wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKTsKK30KKworYm9v
bCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKTsKK30KKwor
Ym9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9u
ZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRJbnRlcmNlcHRQb3N0TWVz
c2FnZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pc1NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRhZjljMGU3OWI3MTFkMDc2NTllYzEwZmEz
ZmM4NzEzYzFjNTljMzkuLjc4YzRlNTdjMDViN2IyZDgwODJhZmYwOTgxY2M2YWQxZTdjYTk1MDQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtNDcs
NiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJX
ZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgorI2luY2x1ZGUgIldlYlRl
c3RSdW5uZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViVmlld0hvc3Qu
aCIKICNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKQEAgLTE2MSw5ICsxNjIs
NiBAQCB2b2lkIFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgbV90ZXN0SW50ZXJmYWNl
cyA9IGFkb3B0UHRyKG5ldyBXZWJUZXN0SW50ZXJmYWNlcygpKTsKICAgICBtX2RldlRvb2xzVGVz
dEludGVyZmFjZXMgPSBhZG9wdFB0cihuZXcgV2ViVGVzdEludGVyZmFjZXMoKSk7Ci0gICAgbV90
ZXN0UnVubmVyID0gYWRvcHRQdHIobmV3IFRlc3RSdW5uZXIoKSk7Ci0gICAgbV90ZXN0SW50ZXJm
YWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkpOwotICAgIG1fZGV2VG9vbHNU
ZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkpOwogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAg
bV9ub3RpZmljYXRpb25QcmVzZW50ZXIgPSBhZG9wdFB0cihuZXcgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyKHRoaXMpKTsKICNlbmRpZgpAQCAtMTg3LDggKzE4NSw2IEBAIHZvaWQgVGVzdFNoZWxsOjpj
cmVhdGVNYWluV2luZG93KCkKICAgICBtX3dlYlZpZXcgPSBtX3dlYlZpZXdIb3N0LT53ZWJWaWV3
KCk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0RGVsZWdhdGUobV93ZWJWaWV3SG9zdC5nZXQo
KSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0V2ViVmlldyhtX3dlYlZpZXcpOwotICAgIG1f
dGVzdFJ1bm5lci0+c2V0RGVsZWdhdGUobV93ZWJWaWV3SG9zdC5nZXQoKSk7Ci0gICAgbV90ZXN0
UnVubmVyLT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiAgICAgbV9kcnREZXZUb29sc0FnZW50LT5z
ZXRXZWJWaWV3KG1fd2ViVmlldyk7CiB9CiAKQEAgLTE5OCw4ICsxOTQsNiBAQCBUZXN0U2hlbGw6
On5UZXN0U2hlbGwoKQogICAgIG1fdGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7CiAgICAg
bV9kZXZUb29sc1Rlc3RJbnRlcmZhY2VzLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBtX2RldlRvb2xz
VGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7Ci0gICAgbV90ZXN0UnVubmVyLT5zZXREZWxl
Z2F0ZSgwKTsKLSAgICBtX3Rlc3RSdW5uZXItPnNldFdlYlZpZXcoMCk7CiAgICAgbV9kcnREZXZU
b29sc0FnZW50LT5zZXRXZWJWaWV3KDApOwogICAgIGlmIChtX3dlYlZpZXdIb3N0KQogICAgICAg
ICBtX3dlYlZpZXdIb3N0LT5zaHV0ZG93bigpOwpAQCAtMjY2LDExICsyNjAsMTEgQEAgdm9pZCBU
ZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmIHBhcmFtcywgYm9vbCBzaG91
bGREdW1wUGl4ZWxzKQogICAgIG1fcGFyYW1zID0gcGFyYW1zOwogICAgIHN0cmluZyB0ZXN0VXJs
ID0gbV9wYXJhbXMudGVzdFVybC5zcGVjKCk7CiAKLSAgICBtX3Rlc3RSdW5uZXItPnNldFNob3Vs
ZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKHNob3VsZER1bXBQaXhlbHMpOworICAgIG1fdGVzdEludGVy
ZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoc2hvdWxk
RHVtcFBpeGVscyk7CiAKICAgICBpZiAodGVzdFVybC5maW5kKCJsb2FkaW5nLyIpICE9IHN0cmlu
Zzo6bnBvcwogICAgICAgICB8fCB0ZXN0VXJsLmZpbmQoImxvYWRpbmdcXCIpICE9IHN0cmluZzo6
bnBvcykKLSAgICAgICAgbV90ZXN0UnVubmVyLT5zZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKHRydWUpOworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNldFNo
b3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3ModHJ1ZSk7CiAKICAgICBpZiAodGVzdFVybC5maW5k
KCJjb21wb3NpdGluZy8iKSAhPSBzdHJpbmc6Om5wb3MgfHwgdGVzdFVybC5maW5kKCJjb21wb3Np
dGluZ1xcIikgIT0gc3RyaW5nOjpucG9zKSB7CiAgICAgICAgIGlmICghbV9zb2Z0d2FyZUNvbXBv
c2l0aW5nRW5hYmxlZCkKQEAgLTI4Myw4ICsyNzcsOCBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmls
ZVRlc3QoY29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAK
ICAgICBpZiAodGVzdFVybC5maW5kKCIvZHVtcEFzVGV4dC8iKSAhPSBzdHJpbmc6Om5wb3MKICAg
ICAgICAgfHwgdGVzdFVybC5maW5kKCJcXGR1bXBBc1RleHRcXCIpICE9IHN0cmluZzo6bnBvcykg
ewotICAgICAgICBtX3Rlc3RSdW5uZXItPnNldFNob3VsZER1bXBBc1RleHQodHJ1ZSk7Ci0gICAg
ICAgIG1fdGVzdFJ1bm5lci0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoZmFsc2UpOwor
ICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNldFNob3VsZER1bXBBc1Rl
eHQodHJ1ZSk7CisgICAgICAgIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hv
dWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoZmFsc2UpOwogICAgIH0KIAogICAgIGlmICh0ZXN0VXJs
LmZpbmQoIi9pbnNwZWN0b3IvIikgIT0gc3RyaW5nOjpucG9zCkBAIC0zMjUsNyArMzE5LDYgQEAg
dm9pZCBUZXN0U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIoKQogICAgIHJlc2V0V2ViU2V0dGlu
Z3MoKndlYlZpZXcoKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+cmVzZXRBbGwoKTsKICAgICBt
X2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnJlc2V0QWxsKCk7Ci0gICAgbV90ZXN0UnVubmVyLT5y
ZXNldCgpOwogICAgIG1fd2ViVmlld0hvc3QtPnJlc2V0KCk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBtX25vdGlmaWNhdGlv
blByZXNlbnRlci0+cmVzZXQoKTsKQEAgLTU3OSwxNCArNTcyLDE0IEBAIHZvaWQgVGVzdFNoZWxs
OjpkdW1wKCkKICAgICBXZWJGcmFtZSogZnJhbWUgPSBtX3dlYlZpZXctPm1haW5GcmFtZSgpOwog
ICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICBib29sIHNob3VsZER1bXBBc1Rl
eHQgPSBtX3Rlc3RSdW5uZXItPnNob3VsZER1bXBBc1RleHQoKTsKLSAgICBib29sIHNob3VsZER1
bXBBc0F1ZGlvID0gbV90ZXN0UnVubmVyLT5zaG91bGREdW1wQXNBdWRpbygpOwotICAgIGJvb2wg
c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBtX3Rlc3RSdW5uZXItPnNob3VsZEdlbmVyYXRl
UGl4ZWxSZXN1bHRzKCk7Ci0gICAgYm9vbCBzaG91bGREdW1wQXNQcmludGVkID0gbV90ZXN0UnVu
bmVyLT5pc1ByaW50aW5nKCk7CisgICAgYm9vbCBzaG91bGREdW1wQXNUZXh0ID0gbV90ZXN0SW50
ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQXNUZXh0KCk7CisgICAgYm9vbCBzaG91
bGREdW1wQXNBdWRpbyA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVt
cEFzQXVkaW8oKTsKKyAgICBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzID0gbV90ZXN0
SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cygpOwor
ICAgIGJvb2wgc2hvdWxkRHVtcEFzUHJpbnRlZCA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5u
ZXIoKS0+aXNQcmludGluZygpOwogICAgIGJvb2wgZHVtcGVkQW55dGhpbmcgPSBmYWxzZTsKIAog
ICAgIGlmIChzaG91bGREdW1wQXNBdWRpbykgewotICAgICAgICBjb25zdCBXZWJLaXQ6OldlYkFy
cmF5QnVmZmVyVmlldyogd2ViQXJyYXlCdWZmZXJWaWV3ID0gbV90ZXN0UnVubmVyLT5hdWRpb0Rh
dGEoKTsKKyAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIHdlYkFycmF5
QnVmZmVyVmlldyA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+YXVkaW9EYXRhKCk7
CiAgICAgICAgIG1fcHJpbnRlci5oYW5kbGVBdWRpbyh3ZWJBcnJheUJ1ZmZlclZpZXctPmJhc2VB
ZGRyZXNzKCksIHdlYkFycmF5QnVmZmVyVmlldy0+Ynl0ZUxlbmd0aCgpKTsKICAgICAgICAgbV9w
cmludGVyLmhhbmRsZUF1ZGlvRm9vdGVyKCk7CiAgICAgICAgIG1fcHJpbnRlci5oYW5kbGVUZXN0
Rm9vdGVyKHRydWUpOwpAQCAtNjEwLDcgKzYwMyw3IEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkRHVtcEFzVGV4dCkg
ewotICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUgPSBtX3Rlc3RSdW5uZXItPnNob3VsZER1bXBD
aGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUgPSBtX3Rlc3RJ
bnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwog
ICAgICAgICAgICAgc3RyaW5nIGRhdGFVdGY4ID0gc2hvdWxkRHVtcEFzUHJpbnRlZCA/IGR1bXBG
cmFtZXNBc1ByaW50ZWRUZXh0KGZyYW1lLCByZWN1cnNpdmUpIDogZHVtcEZyYW1lc0FzVGV4dChm
cmFtZSwgcmVjdXJzaXZlKTsKICAgICAgICAgICAgIGlmIChmd3JpdGUoZGF0YVV0ZjguY19zdHIo
KSwgMSwgZGF0YVV0Zjguc2l6ZSgpLCBzdGRvdXQpICE9IGRhdGFVdGY4LnNpemUoKSkKICAgICAg
ICAgICAgICAgICBGQVRBTCgiU2hvcnQgd3JpdGUgdG8gc3Rkb3V0LCBkaXNrIGZ1bGw/XG4iKTsK
QEAgLTYyMSwxMCArNjE0LDEwIEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKICAgICAgICAgICAg
IGlmIChtX3BhcmFtcy5kZWJ1Z1JlbmRlclRyZWUpCiAgICAgICAgICAgICAgICAgcmVuZGVyVGV4
dEJlaGF2aW9yIHw9IFdlYkZyYW1lOjpSZW5kZXJBc1RleHREZWJ1ZzsKICAgICAgICAgICAgIHBy
aW50ZigiJXMiLCBmcmFtZS0+cmVuZGVyVHJlZUFzVGV4dChyZW5kZXJUZXh0QmVoYXZpb3IpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUgPSBtX3Rlc3RSdW5uZXIt
PnNob3VsZER1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAgICAgICBib29s
IHJlY3Vyc2l2ZSA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcENo
aWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMoKTsKICAgICAgICAgICAgIGR1bXBGcmFtZVNjcm9sbFBv
c2l0aW9uKGZyYW1lLCByZWN1cnNpdmUpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChtX3Rlc3RS
dW5uZXItPnNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSkKKyAgICAgICAgaWYgKG1fdGVzdElu
dGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpKQogICAg
ICAgICAgICAgcHJpbnRmKCIlcyIsIGR1bXBBbGxCYWNrRm9yd2FyZExpc3RzKCkuY19zdHIoKSk7
CiAgICAgfQogICAgIGlmIChkdW1wZWRBbnl0aGluZyAmJiBtX3BhcmFtcy5wcmludFNlcGFyYXRv
cnMpCkBAIC02MzYsMTggKzYyOSwxOCBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAgICAgICAg
IC8vIHN0ZG91dC4KICAgICAgICAgZHVtcGVkQW55dGhpbmcgPSB0cnVlOwogICAgICAgICBtX3dl
YlZpZXctPmxheW91dCgpOwotICAgICAgICBpZiAobV90ZXN0UnVubmVyLT50ZXN0UmVwYWludCgp
KSB7CisgICAgICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnRlc3RSZXBh
aW50KCkpIHsKICAgICAgICAgICAgIFdlYlNpemUgdmlld1NpemUgPSBtX3dlYlZpZXctPnNpemUo
KTsKICAgICAgICAgICAgIGludCB3aWR0aCA9IHZpZXdTaXplLndpZHRoOwogICAgICAgICAgICAg
aW50IGhlaWdodCA9IHZpZXdTaXplLmhlaWdodDsKLSAgICAgICAgICAgIGlmIChtX3Rlc3RSdW5u
ZXItPnN3ZWVwSG9yaXpvbnRhbGx5KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3Rlc3RJbnRlcmZh
Y2VzLT50ZXN0UnVubmVyKCktPnN3ZWVwSG9yaXpvbnRhbGx5KCkpIHsKICAgICAgICAgICAgICAg
ICBmb3IgKFdlYlJlY3QgY29sdW1uKDAsIDAsIDEsIGhlaWdodCk7IGNvbHVtbi54IDwgd2lkdGg7
IGNvbHVtbi54KyspCiAgICAgICAgICAgICAgICAgICAgIG1fd2ViVmlld0hvc3QtPnBhaW50UmVj
dChjb2x1bW4pOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBmb3IgKFdl
YlJlY3QgbGluZSgwLCAwLCB3aWR0aCwgMSk7IGxpbmUueSA8IGhlaWdodDsgbGluZS55KyspCiAg
ICAgICAgICAgICAgICAgICAgIG1fd2ViVmlld0hvc3QtPnBhaW50UmVjdChsaW5lKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChtX3Rlc3RSdW5uZXItPmlzUHJpbnRpbmcoKSkK
KyAgICAgICAgfSBlbHNlIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzUHJp
bnRpbmcoKSkKICAgICAgICAgICAgIG1fd2ViVmlld0hvc3QtPnBhaW50UGFnZXNXaXRoQm91bmRh
cmllcygpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3dlYlZpZXdIb3N0LT5wYWludElu
dmFsaWRhdGVkUmVnaW9uKCk7CkBAIC02NTUsNyArNjQ4LDcgQEAgdm9pZCBUZXN0U2hlbGw6OmR1
bXAoKQogICAgICAgICAvLyBTZWUgaWYgd2UgbmVlZCB0byBkcmF3IHRoZSBzZWxlY3Rpb24gYm91
bmRzIHJlY3QuIFNlbGVjdGlvbiBib3VuZHMKICAgICAgICAgLy8gcmVjdCBpcyB0aGUgcmVjdCBl
bmNsb3NpbmcgdGhlIChwb3NzaWJseSB0cmFuc2Zvcm1lZCkgc2VsZWN0aW9uLgogICAgICAgICAv
LyBUaGUgcmVjdCBzaG91bGQgYmUgZHJhd24gYWZ0ZXIgZXZlcnl0aGluZyBpcyBsYWlkIG91dCBh
bmQgcGFpbnRlZC4KLSAgICAgICAgaWYgKG1fdGVzdFJ1bm5lci0+c2hvdWxkRHVtcFNlbGVjdGlv
blJlY3QoKSkgeworICAgICAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5z
aG91bGREdW1wU2VsZWN0aW9uUmVjdCgpKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBh
IHNlbGVjdGlvbiByZWN0IC0gZHJhdyBhIHJlZCAxcHggYm9yZGVyIGVuY2xvc2luZyByZWN0CiAg
ICAgICAgICAgICBXZWJSZWN0IHdyID0gZnJhbWUtPnNlbGVjdGlvbkJvdW5kc1JlY3QoKTsKICAg
ICAgICAgICAgIGlmICghd3IuaXNFbXB0eSgpKSB7CkBAIC03NTIsOCArNzQ1LDYgQEAgdm9pZCBU
ZXN0U2hlbGw6OmJpbmRKU09iamVjdHNUb1dpbmRvdyhXZWJGcmFtZSogZnJhbWUpCiAgICAgICAg
IG1fZGV2VG9vbHNUZXN0SW50ZXJmYWNlcy0+YmluZFRvKGZyYW1lKTsKICAgICBlbHNlCiAgICAg
ICAgIG1fdGVzdEludGVyZmFjZXMtPmJpbmRUbyhmcmFtZSk7Ci0gICAgbV90ZXN0UnVubmVyLT5i
aW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJ0ZXN0UnVubmVyIikp
OwotICAgIG1fdGVzdFJ1bm5lci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2ViU3RyaW5nOjpm
cm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7CiB9CiAKIFdlYlZpZXdIb3N0KiBUZXN0
U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJsKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCAzODk4OWJkM2RjYjI1NGE1
ZmI2YTQwMTE5YzlhMTllYTYxZGMzODVmLi42ZjhiYjkxOWZjYmQwNmU2MjVmYzQ3MTIyOTUxMTJk
MGE3NGZkMmZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApA
QCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAj
aW5jbHVkZSAiVGVzdEV2ZW50UHJpbnRlci5oIgotI2luY2x1ZGUgIlRlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlRl
c3RJbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAiV2ViVmlld0hvc3QuaCIKQEAgLTg0LDcgKzgzLDcg
QEAgcHVibGljOgogICAgIFdlYktpdDo6V2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJu
IG1fd2ViVmlldzsgfQogICAgIC8vIFJldHVybnMgdGhlIGhvc3QgZm9yIHRoZSBtYWluIFdlYlZp
ZXcuCiAgICAgV2ViVmlld0hvc3QqIHdlYlZpZXdIb3N0KCkgY29uc3QgeyByZXR1cm4gbV93ZWJW
aWV3SG9zdC5nZXQoKTsgfQotICAgIFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXIqIHRlc3RS
dW5uZXIoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RSdW5uZXIuZ2V0KCk7IH0KKyAgICBXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0
SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpOyB9CiAgICAgV2ViVGVzdFJ1bm5lcjo6V2ViRXZlbnRT
ZW5kZXIqIGV2ZW50U2VuZGVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+ZXZl
bnRTZW5kZXIoKTsgfQogICAgIFdlYlRlc3RSdW5uZXI6OldlYkFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdEludGVy
ZmFjZXMtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCk7IH0KICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKQEAgLTEwOCw5ICsxMDcsNiBAQCBwdWJsaWM6CiAgICAgaW50IG5hdmlnYXRpb25FbnRy
eUNvdW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEZvY3VzKFdlYktpdDo6V2ViV2lkZ2V0Kiwg
Ym9vbCBlbmFibGUpOwotICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNr
cygpIGNvbnN0IHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJc1BlbmRpbmcp
ICYmIHRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpOyB9
Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgIHsgcmV0
dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJc1BlbmRpbmcpICYmIHRlc3RSdW5uZXIo
KS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOyB9Ci0gICAgYm9vbCBzaG91bGRE
dW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0ICB7IHJldHVybiAobV90ZXN0SXNQ
cmVwYXJpbmcgfHwgbV90ZXN0SXNQZW5kaW5nKSAmJiB0ZXN0UnVubmVyKCktPnNob3VsZER1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7IH0KIAogICAgIC8vIENhbGxlZCBieSB0aGUgRFJU
VGVzdFJ1bm5lciB0byBzaWduYWwgdGVzdCBjb21wbGV0aW9uLgogICAgIHZvaWQgdGVzdEZpbmlz
aGVkKCk7CkBAIC0yMDksNyArMjA1LDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8RFJURGV2VG9v
bHNDbGllbnQ+IG1fZHJ0RGV2VG9vbHNDbGllbnQ7CiAgICAgT3duUHRyPFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RJbnRlcmZhY2VzPiBtX3Rlc3RJbnRlcmZhY2VzOwogICAgIE93blB0cjxXZWJUZXN0
UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlcz4gbV9kZXZUb29sc1Rlc3RJbnRlcmZhY2VzOwotICAg
IE93blB0cjxXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyPiBtX3Rlc3RSdW5uZXI7CiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBP
d25QdHI8Tm90aWZpY2F0aW9uUHJlc2VudGVyPiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185834</attachid>
            <date>2013-01-31 12:07:56 -0800</date>
            <delta_ts>2013-01-31 13:23:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108464-20130131210439.patch</filename>
            <type>text/plain</type>
            <size>29184</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzkyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTEyM2YyZTQzY2MyZWZlYzM2N2I0NGZhZGZhNTI5NTZj
OGM2NGYyYS4uNTJiYTRiMjIzNWM3NDQzMzY4OWVkMjdlODZhZDdlZDhlOGUxMThmOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEy
MSBAQAogMjAxMy0wMS0zMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
IAorICAgICAgICBbY2hyb21pdW1dIG1vdmUgb3duZXJzaGlwIG9mIFRlc3RSdW5uZXIgb2JqZWN0
IHRvIFRlc3RJbnRlcmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgIEJlZm9yZSwgVGVzdFNoZWxsIG93bmVkIHRoZSBjbGFzcy4gVGhpcyBhbHNvIHJlbW92
ZXMgdGhlIGxhc3QgaW5jbHVkZQorICAgICAgICBmcm9tIER1bXBSZW5kZXJUcmVlIHRvIFRlc3RS
dW5uZXIvc3JjLgorCisgICAgICAgIFRoaXMgYWxzbyBkZWxldGVzIFRlc3REZWxlZ2F0ZSBhbmQg
dXNlcyBXZWJUZXN0RGVsZWdhdGUgZXZlcnl3aGVyZQorICAgICAgICBpbnN0ZWFkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5o
OgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVt
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRE
ZWxlZ2F0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjptYWtlTWVu
dUl0ZW1TdHJpbmdzRm9yKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9FdmVudFNlbmRlci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
RXZlbnRTZW5kZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Okdh
bWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXIpOgorICAgICAgICAoR2FtZXBhZENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNl
czo6flRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZh
Y2VzOjpzZXRXZWJWaWV3KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNlczo6
YmluZFRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpyZXNldEFs
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcik6CisgICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6dGVzdFJ1bm5lcik6Cisg
ICAgICAgIChXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWwpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnNldERlbGVnYXRlKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0
VGVzdElzUnVubmluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdFJ1bm5lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBFZGl0
aW5nQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNo
b3VsZER1bXBBc1RleHQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6
c2V0U2hvdWxkRHVtcEFzVGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVu
bmVyOjpzaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UnVubmVyOjpzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyk6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wQ2hpbGRGcmFtZVNjcm9s
bFBvc2l0aW9ucyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91
bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2hvdWxkRHVtcEFzQXVkaW8pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6YXVkaW9EYXRhKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RS
dW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wVXNlckdlc3R1
cmVJbkZyYW1lTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0
UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBUaXRsZUNoYW5nZXMpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENyZWF0ZVZpZXcpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6Y2FuT3BlbldpbmRvd3MpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBTdGF0dXNDYWxsYmFj
a3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0
UnVubmVyOjpzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RSdW5uZXI6OmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFNlbGVjdGlvblJlY3QpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6dGVzdFJlcGFpbnQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c3dlZXBIb3Jpem9udGFsbHkpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6aXNQcmludGluZyk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRTdGF5T25QYWdlQWZ0ZXJI
YW5kbGluZ0JlZm9yZVVubG9hZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVu
bmVyOjpzZXRUaXRsZVRleHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6aHR0cEhlYWRlcnNUb0NsZWFyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6OnNob3VsZEJsb2NrUmVkaXJlY3RzKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RSdW5uZXI6OndpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2V0VG9wTG9hZGluZ0ZyYW1l
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnRvcExvYWRpbmdGcmFt
ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0
ZURvbmUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVs
ZWdhdGVFbmFibGVkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RSdW5uZXI6OnBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hlbGw6OmluaXRpYWxpemUpOgor
ICAgICAgICAoVGVzdFNoZWxsOjpjcmVhdGVNYWluV2luZG93KToKKyAgICAgICAgKFRlc3RTaGVs
bDo6flRlc3RTaGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAgICAg
ICAgKFRlc3RTaGVsbDo6cmVzZXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChUZXN0U2hlbGw6
OmR1bXApOgorICAgICAgICAoVGVzdFNoZWxsOjpiaW5kSlNPYmplY3RzVG9XaW5kb3cpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVz
dFNoZWxsOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKFRlc3RTaGVsbCk6CisKKzIwMTMtMDEtMzEg
IEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9t
aXVtXSBtb3ZlIHJ1bk1vZGFsQmVmb3JlVW5sb2FkRGlhbG9nIHRvIFRlc3RSdW5uZXIgbGlicmFy
eQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDQy
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
cHVibGljL1dlYlRlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaAppbmRleCBjYmMxYjhlMTU3M2JiZTVhODky
YWU4M2YwMThkMGU4ZDI5MDhkZDg2Li5hOTdiOTA3YmU5OGJlMjRiNjFiYWZlMDg5MTRhOGI4Mzg1
NTY3ZWFhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCkBAIC0zOCw2ICszOCw3IEBA
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFycmF5QnVmZmVyVmlldzsKIGNsYXNzIFdl
YlBlcm1pc3Npb25DbGllbnQ7CitjbGFzcyBXZWJGcmFtZTsKIH0KIAogbmFtZXNwYWNlIFdlYlRl
c3RSdW5uZXIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckNocm9taXVtLmNwcAppbmRleCBkOWRiYTMzYWEzMjQyOThkYjAwY2I4NzkwNTNmMDAzNDY4
N2U5MTM5Li45MDNkMjljYzFiMGI0YmI1OWY1YjFiNjQxNjE3MTA5NWY5M2JmYjg5IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNw
cApAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIgogCi0jaW5jbHVkZSAiVGVzdERlbGVnYXRl
LmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUgIldlYkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKKyNp
bmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVk
ZSA8cHVibGljL1dlYkNTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1
bS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oCmluZGV4IGE5NzI4YzYxNWJiNGY1MDVmZTFlY2E2
YTJmNjRjZmZhZTk0YTE1NWIuLjkxMzAwNTgwMzhhY2Q2YjI3ZDU0YzlhYzMzODIxZDIxNjExN2E0
NzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNo
cm9taXVtLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgV2ViVmlldzsKIAogbmFtZXNwYWNlIFdl
YlRlc3RSdW5uZXIgewogCi1jbGFzcyBUZXN0RGVsZWdhdGU7CitjbGFzcyBXZWJUZXN0RGVsZWdh
dGU7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIDogcHVibGljIENwcEJvdW5kQ2xh
c3MgewogcHVibGljOgpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlm
aWNhdGlvblJlY2VpdmVkKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgdGFy
Z2V0LCBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lKTsKIAotICAgIHZvaWQgc2V0RGVsZWdh
dGUoVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KKyAg
ICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0
ZSA9IGRlbGVnYXRlOyB9CiAgICAgdm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2Vi
VmlldykgeyBtX3dlYlZpZXcgPSB3ZWJWaWV3OyB9CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3
IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnZlY3RvcjxDcHBWYXJpYW50PiBtX25vdGlmaWNhdGlv
bkNhbGxiYWNrczsKIAotICAgIFRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKKyAgICBXZWJUZXN0
RGVsZWdhdGUqIG1fZGVsZWdhdGU7CiAgICAgV2ViS2l0OjpXZWJWaWV3KiBtX3dlYlZpZXc7CiB9
OwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKaW5kZXggZDU2YTFhODQ2ODM5YzViOTdiMDI1YTE0
ODE3NTQxNmQ3NjFiNjYwNS4uNTYwZWE4ZTI0MzljYjgxMjVlOTM1YjNkMDJmNmMxYjljMTJkNmUz
YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcApAQCAtNDUsMTAgKzQ1LDEwIEBACiAKICNpbmNs
dWRlICJLZXlDb2RlTWFwcGluZy5oIgogI2luY2x1ZGUgIk1vY2tTcGVsbENoZWNrLmgiCi0jaW5j
bHVkZSAiVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVEYXRhLmgiCiAj
aW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5oIgogI2luY2x1ZGUgIldlYkV2ZW50U2VuZGVyLmgi
CisjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hQb2ludC5o
IgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViRHJhZ0RhdGEuaD4K
QEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVsdGlDbGlja1JhZGl1cyhj
b25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBkZXBlbmRlbnQgKGUuZy4s
IGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVpbnQzMiB0aW1lT2Zmc2V0
TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRl
bGVnYXRlKQorZG91YmxlIGdldEN1cnJlbnRFdmVudFRpbWVTZWMoV2ViVGVzdERlbGVnYXRlKiBk
ZWxlZ2F0ZSkKIHsKICAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRDdXJyZW50VGltZUluTWlsbGlz
ZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CkBAIC04MTIsNyArODEyLDcgQEAg
dm9pZCBFdmVudFNlbmRlcjo6cmVwbGF5U2F2ZWRFdmVudHMoKQogLy8gICBhbHNvIG1ha2VzIHNl
bnNlLiBUaGlzIGZ1bmN0aW9uIGlzIGRvaW5nIHN1Y2ggZm9yIHNvbWUgZmxhZ3MuCiAvLyAtIFNv
bWUgdGVzdCBldmVuIGNoZWNrcyBhY3R1YWwgc3RyaW5nIGNvbnRlbnQuIFNvIHByb3ZpZGluZyBp
dCB3b3VsZCBiZSBhbHNvIGhlbHBmdWwuCiAvLwotc3RhdGljIFZlY3RvcjxXZWJTdHJpbmc+IG1h
a2VNZW51SXRlbVN0cmluZ3NGb3IoV2ViQ29udGV4dE1lbnVEYXRhKiBjb250ZXh0TWVudSwgVGVz
dERlbGVnYXRlKiBkZWxlZ2F0ZSkKK3N0YXRpYyBWZWN0b3I8V2ViU3RyaW5nPiBtYWtlTWVudUl0
ZW1TdHJpbmdzRm9yKFdlYkNvbnRleHRNZW51RGF0YSogY29udGV4dE1lbnUsIFdlYlRlc3REZWxl
Z2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIGFyZSBiYXNlZCBvbiBT
YWZhcmkncyBjb250ZXh0IG1lbnUgYmVjYXVzZSB0ZXN0cyBhcmUgbWFkZSBmb3IgaXQuCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIG5vbkVkaXRhYmxlTWVudVN0cmluZ3NbXSA9IHsgIkJhY2siLCAi
UmVsb2FkIFBhZ2UiLCAiT3BlbiBpbiBEYXNoYmFvcmQiLCAiPHNlcGFyYXRvcj4iLCAiVmlldyBT
b3VyY2UiLCAiU2F2ZSBQYWdlIEFzIiwgIlByaW50IFBhZ2UiLCAiSW5zcGVjdCBFbGVtZW50Iiwg
MCB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvRXZlbnRTZW5kZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgKaW5kZXggM2MyMWVmOWY4NDgwNTJhYzc2ODE1NTU4ZDg2
YmE5YTczOTA4NzYzNS4uNGJmMjg3ZTYzYzAxM2RjOWQwYTA0YzQwZmMxNGFhMjc1Yzk1MjY4MSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
RXZlbnRTZW5kZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9FdmVudFNlbmRlci5oCkBAIC01MCwxMyArNTAsMTMgQEAgY2xhc3MgV2ViVmlldzsK
IAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCi1jbGFzcyBUZXN0RGVsZWdhdGU7CitjbGFz
cyBXZWJUZXN0RGVsZWdhdGU7CiAKIGNsYXNzIEV2ZW50U2VuZGVyIDogcHVibGljIENwcEJvdW5k
Q2xhc3MgewogcHVibGljOgogICAgIEV2ZW50U2VuZGVyKCk7CiAKLSAgICB2b2lkIHNldERlbGVn
YXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9Cisg
ICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKSB7IG1fZGVsZWdh
dGUgPSBkZWxlZ2F0ZTsgfQogICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6OldlYlZpZXcqIHdl
YlZpZXcpIHsgbV93ZWJWaWV3ID0gd2ViVmlldzsgfQogCiAgICAgLy8gUmVzZXRzIHNvbWUgc3Rh
dGljIHZhcmlhYmxlIHN0YXRlLgpAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAKICAgICBX
ZWJUYXNrTGlzdCBtX3Rhc2tMaXN0OwogCi0gICAgVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOwor
ICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKICAgICBXZWJLaXQ6OldlYlZpZXcqIG1f
d2ViVmlldzsKIAogICAgIC8vIExvY2F0aW9uIG9mIHRoZSB0b3VjaCBwb2ludCB0aGF0IGluaXRp
YXRlZCBhIGdlc3R1cmUuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAKaW5kZXgg
ZTljMjQ2YWYyNWRkY2U4ODhmNmVmZWViZjVmMDYwMmNkMmU3ZWQ3Zi4uMjY1NDQwMGVlNDNhMzM0
NGQzYjg0ZjZhMjdlZjU3NWE3MTAzYzNlYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9s
bGVyLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiR2FtZXBhZENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIKKyNpbmNs
dWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAt
NTYsNyArNTYsNyBAQCB2b2lkIEdhbWVwYWRDb250cm9sbGVyOjpiaW5kVG9KYXZhc2NyaXB0KFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBjbGFzcwogICAgIENwcEJvdW5kQ2xhc3M6
OmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIGNsYXNzbmFtZSk7CiB9CiAKLXZvaWQgR2FtZXBhZENv
bnRyb2xsZXI6OnNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCit2b2lkIEdhbWVw
YWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewog
ICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxl
ci5oCmluZGV4IGQzMGQ1MDY3OWFiYmU2YmYyYWVhMDdiZmEyNjkzY2E5MTJjMTJiYjIuLjVkY2Fi
NmNmNDZmMTIzNmZmNTM3NzAxY2IzM2M5MDhkMjBkOTg1NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBh
ZENvbnRyb2xsZXIuaApAQCAtNDEsMTQgKzQxLDE0IEBAIGNsYXNzIFdlYkZyYW1lOwogCiBuYW1l
c3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRl
c3REZWxlZ2F0ZTsKIAogY2xhc3MgR2FtZXBhZENvbnRyb2xsZXIgOiBwdWJsaWMgQ3BwQm91bmRD
bGFzcyB7CiBwdWJsaWM6CiAgICAgR2FtZXBhZENvbnRyb2xsZXIoKTsKIAogICAgIHZvaWQgYmlu
ZFRvSmF2YXNjcmlwdChXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcm
IGNsYXNzbmFtZSk7Ci0gICAgdm9pZCBzZXREZWxlZ2F0ZShUZXN0RGVsZWdhdGUqKTsKKyAgICB2
b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSopOwogICAgIHZvaWQgcmVzZXQoKTsKIAog
cHJpdmF0ZToKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYktpdDo6V2ViR2Ft
ZXBhZHMgbV9nYW1lcGFkczsKIAotICAgIFRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKKyAgICBX
ZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2Q5YWVmNjVlNTJlMWI2NWUwOWNhNmRi
ZGM2YTQ2NWU1YWQyYWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RE
ZWxlZ2F0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgVGVzdERlbGVn
YXRlX2gKLSNkZWZpbmUgVGVzdERlbGVnYXRlX2gKLQotI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJp
bmcuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YTsKLWNsYXNzIFdlYkdhbWVwYWRzOwotfQotCi1u
YW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7Ci0KLWNsYXNzIFdlYlRhc2s7Ci0KLWNsYXNzIFRlc3RE
ZWxlZ2F0ZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGV4dE1lbnVEYXRh
KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhckVkaXRDb21tYW5kKCkgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRFZGl0Q29tbWFuZChjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwgY29uc3Qg
c3RkOjpzdHJpbmcmIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYkNvbnRleHRN
ZW51RGF0YSogbGFzdENvbnRleHRNZW51RGF0YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0R2FtZXBhZERhdGEoY29uc3QgV2ViS2l0OjpXZWJHYW1lcGFkcyYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgcHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHBvc3REZWxheWVkVGFzayhXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSA9IDA7Ci0gICAgdmly
dHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBX
ZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9
IDA7Ci0gICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkg
PSAwOwotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdG
cm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKLX07Ci0KLX0KLQotI2Vu
ZGlmIC8vIFRlc3REZWxlZ2F0ZV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKaW5kZXgg
Y2E1ZmRjNzgyYjhiMjE3NGRkNmNkM2JjOGViYTczYmRiNTk2NGVjNS4uMDdjNDc2NmMxNWI1Yjk2
ZDYxMGZiYTc0MjVlN2EyODM0NDU5M2Y4NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNw
cApAQCAtNjQsNyArNjQsNyBAQCBUZXN0SW50ZXJmYWNlczo6flRlc3RJbnRlcmZhY2VzKCkKICAg
ICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBtX2V2ZW50
U2VuZGVyLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVyLT5zZXREZWxl
Z2F0ZSgwKTsKLSAgICAvLyBtX3RleHRJbnB1dENvbnRyb2xsZXIgZG9lc24ndCBkZXBlbmQgb24g
VGVzdERlbGVnYXRlLgorICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVu
ZCBvbiBXZWJUZXN0RGVsZWdhdGUuCiAgICAgbV90ZXN0UnVubmVyLT5zZXREZWxlZ2F0ZSgwKTsK
IH0KIApAQCAtNzcsMTIgKzc3LDEyIEBAIHZvaWQgVGVzdEludGVyZmFjZXM6OnNldFdlYlZpZXco
V2ViVmlldyogd2ViVmlldykKICAgICBtX3Rlc3RSdW5uZXItPnNldFdlYlZpZXcod2ViVmlldyk7
CiB9CiAKLXZvaWQgVGVzdEludGVyZmFjZXM6OnNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSogZGVs
ZWdhdGUpCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUq
IGRlbGVnYXRlKQogewogICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldERlbGVnYXRl
KGRlbGVnYXRlKTsKICAgICBtX2V2ZW50U2VuZGVyLT5zZXREZWxlZ2F0ZShkZWxlZ2F0ZSk7CiAg
ICAgbV9nYW1lcGFkQ29udHJvbGxlci0+c2V0RGVsZWdhdGUoZGVsZWdhdGUpOwotICAgIC8vIG1f
dGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBUZXN0RGVsZWdhdGUuCisgICAg
Ly8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9uIFdlYlRlc3REZWxlZ2F0
ZS4KICAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKGRlbGVnYXRlKTsKIH0KIApAQCAtMTA1
LDYgKzEwNSwxMSBAQCB2b2lkIFRlc3RJbnRlcmZhY2VzOjpyZXNldEFsbCgpCiAgICAgbV90ZXN0
UnVubmVyLT5yZXNldCgpOwogfQogCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5u
aW5nKGJvb2wgcnVubmluZykKK3sKKyAgICBtX3Rlc3RSdW5uZXItPnNldFRlc3RJc1J1bm5pbmco
cnVubmluZyk7Cit9CisKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBUZXN0SW50ZXJmYWNlczo6
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQogewogICAgIHJldHVybiBtX2FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmdldCgpOwpAQCAtMTE1LDcgKzEyMCw3IEBAIEV2ZW50U2VuZGVyKiBUZXN0SW50
ZXJmYWNlczo6ZXZlbnRTZW5kZXIoKQogICAgIHJldHVybiBtX2V2ZW50U2VuZGVyLmdldCgpOwog
fQogCi1UZXN0UnVubmVyKiBUZXN0SW50ZWZhY2VzOjp0ZXN0UnVubmVyKCkKK1Rlc3RSdW5uZXIq
IFRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKCkKIHsKICAgICByZXR1cm4gbV90ZXN0UnVubmVy
LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmgKaW5kZXggMWFjYTkwZDgwODVmNDE4
NDJkYmZhZjVjNjc4YzQxNjdmMjFhODcxZi4uOTk2ZjNkNzg4MzZkNTAxNjNiN2VkODA5NTUxMDcw
MDY0ODg2MGFmNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oCkBAIC00Myw5ICs0Myw5IEBA
IG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OwogY2xhc3MgRXZlbnRTZW5kZXI7CiBjbGFzcyBHYW1lcGFkQ29udHJvbGxlcjsKLWNsYXNzIFRl
c3REZWxlZ2F0ZTsKIGNsYXNzIFRlc3RSdW5uZXI7CiBjbGFzcyBUZXh0SW5wdXRDb250cm9sbGVy
OworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBUZXN0SW50ZXJmYWNlcyB7CiBwdWJs
aWM6CkBAIC01Myw5ICs1MywxMCBAQCBwdWJsaWM6CiAgICAgflRlc3RJbnRlcmZhY2VzKCk7CiAK
ICAgICB2b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3Kik7Ci0gICAgdm9pZCBzZXREZWxl
Z2F0ZShUZXN0RGVsZWdhdGUqKTsKKyAgICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0
ZSopOwogICAgIHZvaWQgYmluZFRvKFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2b2lkIHJlc2V0
QWxsKCk7CisgICAgdm9pZCBzZXRUZXN0SXNSdW5uaW5nKGJvb2wpOwogCiAgICAgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCk7CiAgICAgRXZlbnRTZW5k
ZXIqIGV2ZW50U2VuZGVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDA5ZjVkOTY3MWRm
MzYxNGRkOTk2MjcxNWUwMTVmYWEwMmQ2NTcyZTkuLjIxOTdiNGY0NjAyN2M5ODNiOTQ0ODJlNTVl
YTljZmJiNzFmNjY5YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNTMsMTEgKzE1Myw5
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6V29ya1F1ZXVlOjphZGRXb3JrKFdvcmtJdGVtKiB3b3JrKQog
CiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICA6IG1fdGVzdElzUnVubmluZyhmYWxzZSkK
LSAgICAsIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzKHRydWUpCiAgICAgLCBtX3dvcmtRdWV1ZSh0
aGlzKQogICAgICwgbV9kZWxlZ2F0ZSgwKQogICAgICwgbV93ZWJWaWV3KDApCi0gICAgLCBtX3Rv
cExvYWRpbmdGcmFtZSgwKQogICAgICwgbV9pbnRlbnRDbGllbnQoYWRvcHRQdHIobmV3IEVtcHR5
V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KSkKICAgICAsIG1fd2ViUGVybWlzc2lvbnMoYWRvcHRQ
dHIobmV3IFdlYlBlcm1pc3Npb25zKSkKIHsKQEAgLTM4NiwxMSArMzg0LDEzIEBAIHZvaWQgVGVz
dFJ1bm5lcjo6cmVzZXQoKQogICAgIFdlYkZvbnRSZW5kZXJpbmc6OnNldFN1YnBpeGVsUG9zaXRp
b25pbmcoZmFsc2UpOwogI2VuZGlmCiAKLSAgICAvLyBSZXNldCB0aGUgZGVmYXVsdCBxdW90YSBm
b3IgZWFjaCBvcmlnaW4gdG8gNU1CCi0gICAgbV9kZWxlZ2F0ZS0+c2V0RGF0YWJhc2VRdW90YSg1
ICogMTAyNCAqIDEwMjQpOwotICAgIG1fZGVsZWdhdGUtPnNldERldmljZVNjYWxlRmFjdG9yKDEp
OwotICAgIG1fZGVsZWdhdGUtPnNldEFjY2VwdEFsbENvb2tpZXMoZmFsc2UpOwotICAgIG1fZGVs
ZWdhdGUtPnNldExvY2FsZSgiIik7CisgICAgaWYgKG1fZGVsZWdhdGUpIHsKKyAgICAgICAgLy8g
UmVzZXQgdGhlIGRlZmF1bHQgcXVvdGEgZm9yIGVhY2ggb3JpZ2luIHRvIDVNQgorICAgICAgICBt
X2RlbGVnYXRlLT5zZXREYXRhYmFzZVF1b3RhKDUgKiAxMDI0ICogMTAyNCk7CisgICAgICAgIG1f
ZGVsZWdhdGUtPnNldERldmljZVNjYWxlRmFjdG9yKDEpOworICAgICAgICBtX2RlbGVnYXRlLT5z
ZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0TG9jYWxl
KCIiKTsKKyAgICB9CiAKICAgICBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzID0gZmFsc2U7CiAgICAg
bV9kdW1wQXNUZXh0ID0gZmFsc2U7CkBAIC00NDAsNyArNDQwLDcgQEAgdm9pZCBUZXN0UnVubmVy
OjpyZXNldCgpCiAgICAgbV90YXNrTGlzdC5yZXZva2VBbGwoKTsKICAgICBtX3dvcmtRdWV1ZS5y
ZXNldCgpOwogCi0gICAgaWYgKG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzKQorICAgIGlmIChtX2Ns
b3NlUmVtYWluaW5nV2luZG93cyAmJiBtX2RlbGVnYXRlKQogICAgICAgICBtX2RlbGVnYXRlLT5j
bG9zZVJlbWFpbmluZ1dpbmRvd3MoKTsKICAgICBlbHNlCiAgICAgICAgIG1fY2xvc2VSZW1haW5p
bmdXaW5kb3dzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCA2ZGMyMmQ4ZmFlN2RkMzk0
MTU1MzZiZmE2MjZkM2M5ZDdlZDM5NTQ4Li44MjhmYjRiYjBmNzkyMTVkZDU4Zjc4OTRjMTdjNjhh
NDVmYjAwNGVjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0zNywxMCArMzcsMTUgQEAKICNpbmNs
dWRlICJXZWJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJXZWJEZWxpdmVyZWRJbnRlbnRD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJUYXNrLmgiCisjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlv
bi5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVk
ZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYkFycmF5QnVmZmVyVmlldzsKK2NsYXNzIFdlYlBlcm1pc3Npb25DbGllbnQ7CiBj
bGFzcyBXZWJWaWV3OwogfQogCkBAIC01NCw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBUZXN0UnVu
bmVyKCk7CiAgICAgdmlydHVhbCB+VGVzdFJ1bm5lcigpOwogCi0gICAgLy8gRklYTUU6IGNoYW5n
ZSB0aGlzIG1ldGhvZCB0byB0YWtlIGEgVGVzdERlbGVnYXRlKiBpbnN0ZWFkLgogICAgIHZvaWQg
c2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7CiAgICAgdm9pZCBzZXRXZWJWaWV3KFdlYktp
dDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcgPSB3ZWJWaWV3OyB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJ
bnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA2OGI0ZjNkNjJjNmQ4MTcwNzViZGEwOWU4
YzhlOTRlM2FiYWIzNzcyLi4wOTNkN2E2MmUxNGIyZmJhODMwYzhhMjY3MTk3ZTI5YjY0ZDhkM2Ix
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVGVzdEludGVyZmFjZXMuaCIKIAot
I2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIlRlc3RJbnRlcmZhY2VzLmgiCiAj
aW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJFdmVu
dFNlbmRlci5oIgpAQCAtNDcsNyArNDYsNyBAQCB1c2luZyBXZWJLaXQ6OldlYlZpZXc7CiAKIG5h
bWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAotY2xhc3MgV2ViVGVzdEludGVyZmFjZXM6OkludGVy
bmFsIDogcHVibGljIFRlc3REZWxlZ2F0ZSB7CitjbGFzcyBXZWJUZXN0SW50ZXJmYWNlczo6SW50
ZXJuYWwgewogcHVibGljOgogICAgIEludGVybmFsKCk7CiAgICAgdmlydHVhbCB+SW50ZXJuYWwo
KTsKQEAgLTYxLDE5ICs2MCw2IEBAIHB1YmxpYzoKICAgICBXZWJFdmVudFNlbmRlciogZXZlbnRT
ZW5kZXIoKSB7IHJldHVybiAmbV9ldmVudFNlbmRlcjsgfQogICAgIFdlYlRlc3RSdW5uZXIqIHRl
c3RSdW5uZXIoKSB7IHJldHVybiAmbV90ZXN0UnVubmVyOyB9CiAKLSAgICAvLyBUZXN0RGVsZWdh
dGUgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGV4dE1lbnVEYXRh
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyRWRpdENvbW1hbmQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0RWRpdENvbW1hbmQoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7Ci0gICAgdmlydHVhbCBXZWJDb250ZXh0TWVudURhdGEqIGxhc3RDb250ZXh0
TWVudURhdGEoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0R2FtZXBhZERhdGEoY29uc3Qg
V2ViR2FtZXBhZHMmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6
c3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soV2ViVGFzayopOwot
ICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcyk7
Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3Qg
V2ViVmVjdG9yPFdlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKTsKLSAgICB2aXJ0dWFsIGxv
bmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKLSAgICB2aXJ0dWFsIFdlYktp
dDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6
c3RyaW5nJiBwYXRoKTsKLQogcHJpdmF0ZToKICAgICBUZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFj
ZXM7CiAgICAgYm9vbCBtX3Rlc3RJc1J1bm5pbmc7CkBAIC04MSw3ICs2Nyw2IEBAIHByaXZhdGU6
CiAgICAgV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjsKICAgICBXZWJFdmVudFNlbmRlciBtX2V2ZW50U2VuZGVyOwogICAgIFdlYlRlc3RSdW5uZXIg
bV90ZXN0UnVubmVyOwotICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKIH07CiAKIFdl
YlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJuYWwoKQpAQCAtOTAsNyArNzUsNiBAQCBX
ZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OkludGVybmFsKCkKICAgICAsIG1fYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIobV9pbnRlcmZhY2VzLmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkpCiAg
ICAgLCBtX2V2ZW50U2VuZGVyKG1faW50ZXJmYWNlcy5ldmVudFNlbmRlcigpKQogICAgICwgbV90
ZXN0UnVubmVyKG1faW50ZXJmYWNlcy50ZXN0UnVubmVyKCkpCi0gICAgLCBtX2RlbGVnYXRlKDAp
CiB7CiB9CiAKQEAgLTEwMCwxMyArODQsNyBAQCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6
On5JbnRlcm5hbCgpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXREZWxl
Z2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewotICAgIGlmIChkZWxlZ2F0ZSkgewot
ICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAgICAgIG1faW50ZXJmYWNlcy5zZXRE
ZWxlZ2F0ZSh0aGlzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2RlbGVnYXRlID0gMDsKLSAg
ICAgICAgbV9pbnRlcmZhY2VzLnNldERlbGVnYXRlKDApOwotICAgIH0KKyAgICBtX2ludGVyZmFj
ZXMuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogfQogCiB2b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJ
bnRlcm5hbDo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMTE3LDYyICs5NSw3IEBA
IHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdl
YlZpZXcpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRUZXN0SXNSdW5u
aW5nKGJvb2wgcnVubmluZykKIHsKLSAgICBtX2ludGVyZmFjZXMudGVzdFJ1bm5lcigpLT5zZXRU
ZXN0SXNSdW5uaW5nKHJ1bm5pbmcpOwotfQotCi12b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRl
cm5hbDo6Y2xlYXJDb250ZXh0TWVudURhdGEoKQotewotICAgIG1fZGVsZWdhdGUtPmNsZWFyQ29u
dGV4dE1lbnVEYXRhKCk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpj
bGVhckVkaXRDb21tYW5kKCkKLXsKLSAgICBtX2RlbGVnYXRlLT5jbGVhckVkaXRDb21tYW5kKCk7
Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRFZGl0Q29tbWFuZChj
b25zdCBzdGQ6OnN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKQotewotICAg
IG1fZGVsZWdhdGUtPnNldEVkaXRDb21tYW5kKG5hbWUsIHZhbHVlKTsKLX0KLQotV2ViQ29udGV4
dE1lbnVEYXRhKiBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6Omxhc3RDb250ZXh0TWVudURh
dGEoKSBjb25zdAotewotICAgIHJldHVybiBtX2RlbGVnYXRlLT5sYXN0Q29udGV4dE1lbnVEYXRh
KCk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRHYW1lcGFkRGF0
YShjb25zdCBXZWJHYW1lcGFkcyYgcGFkcykKLXsKLSAgICBtX2RlbGVnYXRlLT5zZXRHYW1lcGFk
RGF0YShwYWRzKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnByaW50
TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UobWVzc2FnZSk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVy
bmFsOjpwb3N0VGFzayhXZWJUYXNrKiB0YXNrKQotewotICAgIG1fZGVsZWdhdGUtPnBvc3RUYXNr
KHRhc2spOwotfQotCi12b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6cG9zdERlbGF5
ZWRUYXNrKFdlYlRhc2sqIHRhc2ssIGxvbmcgbG9uZyBtcykKLXsKLSAgICBtX2RlbGVnYXRlLT5w
b3N0RGVsYXllZFRhc2sodGFzaywgbXMpOwotfQotCi1XZWJTdHJpbmcgV2ViVGVzdEludGVyZmFj
ZXM6OkludGVybmFsOjpyZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8
V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpCi17Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUt
PnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29sdXRlRmlsZW5hbWVzKTsKLX0KLQotbG9u
ZyBsb25nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Z2V0Q3VycmVudFRpbWVJbk1pbGxp
c2Vjb25kKCkKLXsKLSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+Z2V0Q3VycmVudFRpbWVJbk1pbGxp
c2Vjb25kKCk7Ci19Ci0KLVdlYktpdDo6V2ViU3RyaW5nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRl
cm5hbDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGgpCi17Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUtPmdldEFic29sdXRlV2ViU3RyaW5nRnJv
bVVURjhQYXRoKHBhdGgpOworICAgIG1faW50ZXJmYWNlcy5zZXRUZXN0SXNSdW5uaW5nKHJ1bm5p
bmcpOwogfQogCiBXZWJUZXN0SW50ZXJmYWNlczo6V2ViVGVzdEludGVyZmFjZXMoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0UnVubmVyLmNwcAppbmRleCA1NTgyYjUxMWUzYmUyNzE1ZWU2MzE0Y2Q4Nzg4MzFm
YjMzZjEzMmNhLi4xMjY1ZDQ2ODYwYjQyMjVmNDQ4YzM4MDE5NTFlYTViZjQyZmZjODViIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJU
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcApAQCAtMjgsNyArMjgsNyBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnIgorI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYlRlc3RSdW5uZXIuaCIKIAogI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKQEAgLTIyMiw2
ICsyMjIsMjEgQEAgdm9pZCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZURvbmUoKQogICAg
IG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVEb25lKCk7CiB9CiAKK2Jvb2wgV2ViVGVzdFJ1bm5l
cjo6cG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRl
LT5wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xp
Y3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
cG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpw
b2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
aXZhdGUtPnBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpOworfQorCiBib29sIFdlYlRl
c3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9wcml2YXRlLT5zaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXggYjlhYWI2OTQ0NmZmYmM4MmNi
MmMzZWJhYzlkMTU5MzEwY2E2ZTBkMC4uNzhjNGU1N2MwNWI3YjJkODA4MmFmZjA5ODFjYzZhZDFl
N2NhOTUwNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3Bw
CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2ViU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViVGVzdFByb3h5LmgiCisjaW5jbHVk
ZSAiV2ViVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlICJXZWJW
aWV3SG9zdC5oIgogI2luY2x1ZGUgInNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCBmOTE3ZmQ0ODE3YzM1MDcw
NjM3ODRmMDI4ZDJmOGM2MWE0Y2NmODhjLi42ZjhiYjkxOWZjYmQwNmU2MjVmYzQ3MTIyOTUxMTJk
MGE3NGZkMmZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApA
QCAtMTA3LDkgKzEwNyw2IEBAIHB1YmxpYzoKICAgICBpbnQgbmF2aWdhdGlvbkVudHJ5Q291bnQo
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0Rm9jdXMoV2ViS2l0OjpXZWJXaWRnZXQqLCBib29sIGVu
YWJsZSk7Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29u
c3QgeyByZXR1cm4gKG1fdGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVz
dFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCk7IH0KLSAgICBi
b29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCAgeyByZXR1cm4gKG1f
dGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91
bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7IH0KLSAgICBib29sIHNob3VsZER1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgIHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmlu
ZyB8fCBtX3Rlc3RJc1BlbmRpbmcpICYmIHRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNl
UmVzcG9uc2VNSU1FVHlwZXMoKTsgfQogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBEUlRUZXN0UnVu
bmVyIHRvIHNpZ25hbCB0ZXN0IGNvbXBsZXRpb24uCiAgICAgdm9pZCB0ZXN0RmluaXNoZWQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185847</attachid>
            <date>2013-01-31 13:23:08 -0800</date>
            <delta_ts>2013-01-31 14:20:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108464-20130131221951.patch</filename>
            <type>text/plain</type>
            <size>29151</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZmYWE3MmQzNmMxYWI2M2IxMTM5MzU1YjVlNGVhMjEz
YWUzNTk4Zi4uMzg1MzE2NjVhNDcwYjViZjM3MjM3NTgxNzg4NzNmYmUwNDc1MWNhOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
OSBAQAorMjAxMy0wMS0zMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIG1vdmUgb3duZXJzaGlwIG9mIFRlc3RSdW5uZXIgb2JqZWN0
IHRvIFRlc3RJbnRlcmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgIEJlZm9yZSwgVGVzdFNoZWxsIG93bmVkIHRoZSBjbGFzcy4gVGhpcyBhbHNvIHJlbW92
ZXMgdGhlIGxhc3QgaW5jbHVkZQorICAgICAgICBmcm9tIER1bXBSZW5kZXJUcmVlIHRvIFRlc3RS
dW5uZXIvc3JjLgorCisgICAgICAgIFRoaXMgYWxzbyBkZWxldGVzIFRlc3REZWxlZ2F0ZSBhbmQg
dXNlcyBXZWJUZXN0RGVsZWdhdGUgZXZlcnl3aGVyZQorICAgICAgICBpbnN0ZWFkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5o
OgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVt
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRE
ZWxlZ2F0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjptYWtlTWVu
dUl0ZW1TdHJpbmdzRm9yKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9FdmVudFNlbmRlci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
RXZlbnRTZW5kZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Okdh
bWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXIpOgorICAgICAgICAoR2FtZXBhZENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNl
czo6flRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZh
Y2VzOjpzZXRXZWJWaWV3KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNlczo6
YmluZFRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpyZXNldEFs
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcik6CisgICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6dGVzdFJ1bm5lcik6Cisg
ICAgICAgIChXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWwpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnNldERlbGVnYXRlKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0
VGVzdElzUnVubmluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdFJ1bm5lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBFZGl0
aW5nQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNo
b3VsZER1bXBBc1RleHQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6
c2V0U2hvdWxkRHVtcEFzVGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVu
bmVyOjpzaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UnVubmVyOjpzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyk6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wQ2hpbGRGcmFtZVNjcm9s
bFBvc2l0aW9ucyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91
bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2hvdWxkRHVtcEFzQXVkaW8pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6YXVkaW9EYXRhKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RS
dW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wVXNlckdlc3R1
cmVJbkZyYW1lTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0
UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBUaXRsZUNoYW5nZXMpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENyZWF0ZVZpZXcpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6Y2FuT3BlbldpbmRvd3MpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBTdGF0dXNDYWxsYmFj
a3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0
UnVubmVyOjpzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RSdW5uZXI6OmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFNlbGVjdGlvblJlY3QpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6dGVzdFJlcGFpbnQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c3dlZXBIb3Jpem9udGFsbHkpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6aXNQcmludGluZyk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRTdGF5T25QYWdlQWZ0ZXJI
YW5kbGluZ0JlZm9yZVVubG9hZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVu
bmVyOjpzZXRUaXRsZVRleHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6aHR0cEhlYWRlcnNUb0NsZWFyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6OnNob3VsZEJsb2NrUmVkaXJlY3RzKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RSdW5uZXI6OndpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2V0VG9wTG9hZGluZ0ZyYW1l
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnRvcExvYWRpbmdGcmFt
ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0
ZURvbmUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVs
ZWdhdGVFbmFibGVkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RSdW5uZXI6OnBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hlbGw6OmluaXRpYWxpemUpOgor
ICAgICAgICAoVGVzdFNoZWxsOjpjcmVhdGVNYWluV2luZG93KToKKyAgICAgICAgKFRlc3RTaGVs
bDo6flRlc3RTaGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAgICAg
ICAgKFRlc3RTaGVsbDo6cmVzZXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChUZXN0U2hlbGw6
OmR1bXApOgorICAgICAgICAoVGVzdFNoZWxsOjpiaW5kSlNPYmplY3RzVG9XaW5kb3cpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVz
dFNoZWxsOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKFRlc3RTaGVsbCk6CisKIDIwMTMtMDEtMzEg
IEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQyOiBw
cm92aWRlIG5ldyBidW5kbGUgQVBJcyB0byBhbGxvdyBidW5kbGUgY2xpZW50cyB0byBiZSBub3Rp
ZmllZCBvZiBwYXN0ZWJvYXJkIGFjY2Vzcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaApp
bmRleCBjYmMxYjhlMTU3M2JiZTVhODkyYWU4M2YwMThkMGU4ZDI5MDhkZDg2Li5hOTdiOTA3YmU5
OGJlMjRiNjFiYWZlMDg5MTRhOGI4Mzg1NTY3ZWFhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1
bm5lci5oCkBAIC0zOCw2ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFy
cmF5QnVmZmVyVmlldzsKIGNsYXNzIFdlYlBlcm1pc3Npb25DbGllbnQ7CitjbGFzcyBXZWJGcmFt
ZTsKIH0KIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJDaHJvbWl1bS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNwcAppbmRleCBkOWRiYTMzYWEz
MjQyOThkYjAwY2I4NzkwNTNmMDAzNDY4N2U5MTM5Li45MDNkMjljYzFiMGI0YmI1OWY1YjFiNjQx
NjE3MTA5NWY5M2JmYjg5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlckNocm9taXVtLmNwcApAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIgog
Ci0jaW5jbHVkZSAiVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9i
amVjdC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgog
I2luY2x1ZGUgIldlYk5vZGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKICNpbmNs
dWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkNTdHJpbmcuaD4KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oCmluZGV4
IGE5NzI4YzYxNWJiNGY1MDVmZTFlY2E2YTJmNjRjZmZhZTk0YTE1NWIuLjkxMzAwNTgwMzhhY2Q2
YjI3ZDU0YzlhYzMzODIxZDIxNjExN2E0NzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21p
dW0uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3Mg
V2ViVmlldzsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCi1jbGFzcyBUZXN0RGVsZWdh
dGU7CitjbGFzcyBXZWJUZXN0RGVsZWdhdGU7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgpAQCAtNjEsNyArNjEsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIG5vdGlmaWNhdGlvblJlY2VpdmVkKGNvbnN0IFdlYktpdDo6V2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYgdGFyZ2V0LCBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1l
KTsKIAotICAgIHZvaWQgc2V0RGVsZWdhdGUoVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkgeyBtX2Rl
bGVnYXRlID0gZGVsZWdhdGU7IH0KKyAgICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0
ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9CiAgICAgdm9pZCBzZXRXZWJW
aWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcgPSB3ZWJWaWV3OyB9CiAK
IHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnZlY3RvcjxD
cHBWYXJpYW50PiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrczsKIAotICAgIFRlc3REZWxlZ2F0ZSog
bV9kZWxlZ2F0ZTsKKyAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CiAgICAgV2ViS2l0
OjpXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKaW5kZXgg
ZDU2YTFhODQ2ODM5YzViOTdiMDI1YTE0ODE3NTQxNmQ3NjFiNjYwNS4uNTYwZWE4ZTI0MzljYjgx
MjVlOTM1YjNkMDJmNmMxYjljMTJkNmUzYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcApAQCAt
NDUsMTAgKzQ1LDEwIEBACiAKICNpbmNsdWRlICJLZXlDb2RlTWFwcGluZy5oIgogI2luY2x1ZGUg
Ik1vY2tTcGVsbENoZWNrLmgiCi0jaW5jbHVkZSAiVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dE1lbnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50U2VuZGVyLmgiCisjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCiAj
aW5jbHVkZSAiV2ViVG91Y2hQb2ludC5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRl
IDxwdWJsaWMvV2ViRHJhZ0RhdGEuaD4KQEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgYm9vbCBv
dXRzaWRlTXVsdGlDbGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQm
IGIpCiAvLyBkZXBlbmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0
aW9uKS4KIHVpbnQzMiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50
VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQorZG91YmxlIGdldEN1cnJlbnRFdmVudFRp
bWVTZWMoV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKICAgICByZXR1cm4gKGRlbGVnYXRl
LT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7
CiB9CkBAIC04MTIsNyArODEyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVwbGF5U2F2ZWRFdmVu
dHMoKQogLy8gICBhbHNvIG1ha2VzIHNlbnNlLiBUaGlzIGZ1bmN0aW9uIGlzIGRvaW5nIHN1Y2gg
Zm9yIHNvbWUgZmxhZ3MuCiAvLyAtIFNvbWUgdGVzdCBldmVuIGNoZWNrcyBhY3R1YWwgc3RyaW5n
IGNvbnRlbnQuIFNvIHByb3ZpZGluZyBpdCB3b3VsZCBiZSBhbHNvIGhlbHBmdWwuCiAvLwotc3Rh
dGljIFZlY3RvcjxXZWJTdHJpbmc+IG1ha2VNZW51SXRlbVN0cmluZ3NGb3IoV2ViQ29udGV4dE1l
bnVEYXRhKiBjb250ZXh0TWVudSwgVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKK3N0YXRpYyBWZWN0
b3I8V2ViU3RyaW5nPiBtYWtlTWVudUl0ZW1TdHJpbmdzRm9yKFdlYkNvbnRleHRNZW51RGF0YSog
Y29udGV4dE1lbnUsIFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgLy8gVGhlc2Ug
Y29uc3RhbnRzIGFyZSBiYXNlZCBvbiBTYWZhcmkncyBjb250ZXh0IG1lbnUgYmVjYXVzZSB0ZXN0
cyBhcmUgbWFkZSBmb3IgaXQuCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vbkVkaXRhYmxlTWVu
dVN0cmluZ3NbXSA9IHsgIkJhY2siLCAiUmVsb2FkIFBhZ2UiLCAiT3BlbiBpbiBEYXNoYmFvcmQi
LCAiPHNlcGFyYXRvcj4iLCAiVmlldyBTb3VyY2UiLCAiU2F2ZSBQYWdlIEFzIiwgIlByaW50IFBh
Z2UiLCAiSW5zcGVjdCBFbGVtZW50IiwgMCB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgKaW5kZXggM2My
MWVmOWY4NDgwNTJhYzc2ODE1NTU4ZDg2YmE5YTczOTA4NzYzNS4uNGJmMjg3ZTYzYzAxM2RjOWQw
YTA0YzQwZmMxNGFhMjc1Yzk1MjY4MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oCkBAIC01MCwxMyAr
NTAsMTMgQEAgY2xhc3MgV2ViVmlldzsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCi1j
bGFzcyBUZXN0RGVsZWdhdGU7CitjbGFzcyBXZWJUZXN0RGVsZWdhdGU7CiAKIGNsYXNzIEV2ZW50
U2VuZGVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgogICAgIEV2ZW50U2VuZGVy
KCk7CiAKLSAgICB2b2lkIHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9k
ZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9CisgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdh
dGUqIGRlbGVnYXRlKSB7IG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsgfQogICAgIHZvaWQgc2V0V2Vi
VmlldyhXZWJLaXQ6OldlYlZpZXcqIHdlYlZpZXcpIHsgbV93ZWJWaWV3ID0gd2ViVmlldzsgfQog
CiAgICAgLy8gUmVzZXRzIHNvbWUgc3RhdGljIHZhcmlhYmxlIHN0YXRlLgpAQCAtMTY5LDcgKzE2
OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJUYXNrTGlzdCBtX3Rhc2tMaXN0OwogCi0gICAgVGVz
dERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsK
ICAgICBXZWJLaXQ6OldlYlZpZXcqIG1fd2ViVmlldzsKIAogICAgIC8vIExvY2F0aW9uIG9mIHRo
ZSB0b3VjaCBwb2ludCB0aGF0IGluaXRpYXRlZCBhIGdlc3R1cmUuCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1l
cGFkQ29udHJvbGxlci5jcHAKaW5kZXggZTljMjQ2YWYyNWRkY2U4ODhmNmVmZWViZjVmMDYwMmNk
MmU3ZWQ3Zi4uMjY1NDQwMGVlNDNhMzM0NGQzYjg0ZjZhMjdlZjU3NWE3MTAzYzNlYSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBh
ZENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2FtZXBhZENvbnRyb2xsZXIuaCIKLSNpbmNsdWRl
ICJUZXN0RGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEdhbWVwYWRDb250cm9s
bGVyOjpiaW5kVG9KYXZhc2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBj
bGFzcwogICAgIENwcEJvdW5kQ2xhc3M6OmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIGNsYXNzbmFt
ZSk7CiB9CiAKLXZvaWQgR2FtZXBhZENvbnRyb2xsZXI6OnNldERlbGVnYXRlKFRlc3REZWxlZ2F0
ZSogZGVsZWdhdGUpCit2b2lkIEdhbWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZShXZWJUZXN0
RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dh
bWVwYWRDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oCmluZGV4IGQzMGQ1MDY3OWFiYmU2YmYyYWVhMDdi
ZmEyNjkzY2E5MTJjMTJiYjIuLjVkY2FiNmNmNDZmMTIzNmZmNTM3NzAxY2IzM2M5MDhkMjBkOTg1
NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL0dhbWVwYWRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaApAQCAtNDEsMTQgKzQxLDE0IEBA
IGNsYXNzIFdlYkZyYW1lOwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKLWNsYXNzIFRl
c3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3MgR2FtZXBhZENvbnRy
b2xsZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CiAgICAgR2FtZXBhZENvbnRy
b2xsZXIoKTsKIAogICAgIHZvaWQgYmluZFRvSmF2YXNjcmlwdChXZWJLaXQ6OldlYkZyYW1lKiwg
Y29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIGNsYXNzbmFtZSk7Ci0gICAgdm9pZCBzZXREZWxlZ2F0
ZShUZXN0RGVsZWdhdGUqKTsKKyAgICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSop
OwogICAgIHZvaWQgcmVzZXQoKTsKIAogcHJpdmF0ZToKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0
ZToKIAogICAgIFdlYktpdDo6V2ViR2FtZXBhZHMgbV9nYW1lcGFkczsKIAotICAgIFRlc3REZWxl
Z2F0ZSogbV9kZWxlZ2F0ZTsKKyAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
Y2Q5YWVmNjVlNTJlMWI2NWUwOWNhNmRiZGM2YTQ2NWU1YWQyYWU5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgVGVzdERlbGVnYXRlX2gKLSNkZWZpbmUgVGVzdERlbGVnYXRlX2gKLQot
I2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9y
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YTsKLWNs
YXNzIFdlYkdhbWVwYWRzOwotfQotCi1uYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7Ci0KLWNsYXNz
IFdlYlRhc2s7Ci0KLWNsYXNzIFRlc3REZWxlZ2F0ZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29udGV4dE1lbnVEYXRhKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhckVk
aXRDb21tYW5kKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0Q29tbWFuZChjb25zdCBz
dGQ6OnN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSA9IDA7Ci0gICAgdmly
dHVhbCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSogbGFzdENvbnRleHRNZW51RGF0YSgpIGNv
bnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0R2FtZXBhZERhdGEoY29uc3QgV2ViS2l0OjpX
ZWJHYW1lcGFkcyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnRNZXNzYWdlKGNvbnN0IHN0
ZDo6c3RyaW5nJiBtZXNzYWdlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRh
c2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJUYXNrKiwgbG9u
ZyBsb25nIG1zKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklz
b2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmlu
Zz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7Ci0gICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOwotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJp
bmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBh
dGgpID0gMDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFRlc3REZWxlZ2F0ZV9oCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJm
YWNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0SW50ZXJmYWNlcy5jcHAKaW5kZXggY2E1ZmRjNzgyYjhiMjE3NGRkNmNkM2JjOGViYTczYmRi
NTk2NGVjNS4uMDdjNDc2NmMxNWI1Yjk2ZDYxMGZiYTc0MjVlN2EyODM0NDU5M2Y4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdElu
dGVyZmFjZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcApAQCAtNjQsNyArNjQsNyBAQCBUZXN0SW50ZXJmYWNl
czo6flRlc3RJbnRlcmZhY2VzKCkKICAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5zZXRE
ZWxlZ2F0ZSgwKTsKICAgICBtX2V2ZW50U2VuZGVyLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBtX2dh
bWVwYWRDb250cm9sbGVyLT5zZXREZWxlZ2F0ZSgwKTsKLSAgICAvLyBtX3RleHRJbnB1dENvbnRy
b2xsZXIgZG9lc24ndCBkZXBlbmQgb24gVGVzdERlbGVnYXRlLgorICAgIC8vIG1fdGV4dElucHV0
Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBXZWJUZXN0RGVsZWdhdGUuCiAgICAgbV90ZXN0
UnVubmVyLT5zZXREZWxlZ2F0ZSgwKTsKIH0KIApAQCAtNzcsMTIgKzc3LDEyIEBAIHZvaWQgVGVz
dEludGVyZmFjZXM6OnNldFdlYlZpZXcoV2ViVmlldyogd2ViVmlldykKICAgICBtX3Rlc3RSdW5u
ZXItPnNldFdlYlZpZXcod2ViVmlldyk7CiB9CiAKLXZvaWQgVGVzdEludGVyZmFjZXM6OnNldERl
bGVnYXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRE
ZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIG1fYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXItPnNldERlbGVnYXRlKGRlbGVnYXRlKTsKICAgICBtX2V2ZW50U2VuZGVyLT5z
ZXREZWxlZ2F0ZShkZWxlZ2F0ZSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlci0+c2V0RGVsZWdh
dGUoZGVsZWdhdGUpOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVu
ZCBvbiBUZXN0RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3Qg
ZGVwZW5kIG9uIFdlYlRlc3REZWxlZ2F0ZS4KICAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRl
KGRlbGVnYXRlKTsKIH0KIApAQCAtMTA1LDYgKzEwNSwxMSBAQCB2b2lkIFRlc3RJbnRlcmZhY2Vz
OjpyZXNldEFsbCgpCiAgICAgbV90ZXN0UnVubmVyLT5yZXNldCgpOwogfQogCit2b2lkIFRlc3RJ
bnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKGJvb2wgcnVubmluZykKK3sKKyAgICBtX3Rlc3RS
dW5uZXItPnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7Cit9CisKIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKiBUZXN0SW50ZXJmYWNlczo6YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQogewogICAg
IHJldHVybiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmdldCgpOwpAQCAtMTE1LDcgKzEyMCw3
IEBAIEV2ZW50U2VuZGVyKiBUZXN0SW50ZXJmYWNlczo6ZXZlbnRTZW5kZXIoKQogICAgIHJldHVy
biBtX2V2ZW50U2VuZGVyLmdldCgpOwogfQogCi1UZXN0UnVubmVyKiBUZXN0SW50ZWZhY2VzOjp0
ZXN0UnVubmVyKCkKK1Rlc3RSdW5uZXIqIFRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKCkKIHsK
ICAgICByZXR1cm4gbV90ZXN0UnVubmVyLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2Vz
LmgKaW5kZXggMWFjYTkwZDgwODVmNDE4NDJkYmZhZjVjNjc4YzQxNjdmMjFhODcxZi4uOTk2ZjNk
Nzg4MzZkNTAxNjNiN2VkODA5NTUxMDcwMDY0ODg2MGFmNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJm
YWNlcy5oCkBAIC00Myw5ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIGNsYXNz
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOwogY2xhc3MgRXZlbnRTZW5kZXI7CiBjbGFzcyBHYW1l
cGFkQ29udHJvbGxlcjsKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKIGNsYXNzIFRlc3RSdW5uZXI7CiBj
bGFzcyBUZXh0SW5wdXRDb250cm9sbGVyOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFz
cyBUZXN0SW50ZXJmYWNlcyB7CiBwdWJsaWM6CkBAIC01Myw5ICs1MywxMCBAQCBwdWJsaWM6CiAg
ICAgflRlc3RJbnRlcmZhY2VzKCk7CiAKICAgICB2b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJW
aWV3Kik7Ci0gICAgdm9pZCBzZXREZWxlZ2F0ZShUZXN0RGVsZWdhdGUqKTsKKyAgICB2b2lkIHNl
dERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSopOwogICAgIHZvaWQgYmluZFRvKFdlYktpdDo6V2Vi
RnJhbWUqKTsKICAgICB2b2lkIHJlc2V0QWxsKCk7CisgICAgdm9pZCBzZXRUZXN0SXNSdW5uaW5n
KGJvb2wpOwogCiAgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCk7CiAgICAgRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKCk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IDA5ZjVkOTY3MWRmMzYxNGRkOTk2MjcxNWUwMTVmYWEwMmQ2NTcyZTkuLjIx
OTdiNGY0NjAyN2M5ODNiOTQ0ODJlNTVlYTljZmJiNzFmNjY5YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuY3BwCkBAIC0xNTMsMTEgKzE1Myw5IEBAIHZvaWQgVGVzdFJ1bm5lcjo6V29ya1F1ZXVlOjph
ZGRXb3JrKFdvcmtJdGVtKiB3b3JrKQogCiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICA6
IG1fdGVzdElzUnVubmluZyhmYWxzZSkKLSAgICAsIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzKHRy
dWUpCiAgICAgLCBtX3dvcmtRdWV1ZSh0aGlzKQogICAgICwgbV9kZWxlZ2F0ZSgwKQogICAgICwg
bV93ZWJWaWV3KDApCi0gICAgLCBtX3RvcExvYWRpbmdGcmFtZSgwKQogICAgICwgbV9pbnRlbnRD
bGllbnQoYWRvcHRQdHIobmV3IEVtcHR5V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KSkKICAgICAs
IG1fd2ViUGVybWlzc2lvbnMoYWRvcHRQdHIobmV3IFdlYlBlcm1pc3Npb25zKSkKIHsKQEAgLTM4
NiwxMSArMzg0LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIFdlYkZvbnRSZW5k
ZXJpbmc6OnNldFN1YnBpeGVsUG9zaXRpb25pbmcoZmFsc2UpOwogI2VuZGlmCiAKLSAgICAvLyBS
ZXNldCB0aGUgZGVmYXVsdCBxdW90YSBmb3IgZWFjaCBvcmlnaW4gdG8gNU1CCi0gICAgbV9kZWxl
Z2F0ZS0+c2V0RGF0YWJhc2VRdW90YSg1ICogMTAyNCAqIDEwMjQpOwotICAgIG1fZGVsZWdhdGUt
PnNldERldmljZVNjYWxlRmFjdG9yKDEpOwotICAgIG1fZGVsZWdhdGUtPnNldEFjY2VwdEFsbENv
b2tpZXMoZmFsc2UpOwotICAgIG1fZGVsZWdhdGUtPnNldExvY2FsZSgiIik7CisgICAgaWYgKG1f
ZGVsZWdhdGUpIHsKKyAgICAgICAgLy8gUmVzZXQgdGhlIGRlZmF1bHQgcXVvdGEgZm9yIGVhY2gg
b3JpZ2luIHRvIDVNQgorICAgICAgICBtX2RlbGVnYXRlLT5zZXREYXRhYmFzZVF1b3RhKDUgKiAx
MDI0ICogMTAyNCk7CisgICAgICAgIG1fZGVsZWdhdGUtPnNldERldmljZVNjYWxlRmFjdG9yKDEp
OworICAgICAgICBtX2RlbGVnYXRlLT5zZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsKKyAgICAg
ICAgbV9kZWxlZ2F0ZS0+c2V0TG9jYWxlKCIiKTsKKyAgICB9CiAKICAgICBtX2R1bXBFZGl0aW5n
Q2FsbGJhY2tzID0gZmFsc2U7CiAgICAgbV9kdW1wQXNUZXh0ID0gZmFsc2U7CkBAIC00NDAsNyAr
NDQwLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV90YXNrTGlzdC5yZXZva2VB
bGwoKTsKICAgICBtX3dvcmtRdWV1ZS5yZXNldCgpOwogCi0gICAgaWYgKG1fY2xvc2VSZW1haW5p
bmdXaW5kb3dzKQorICAgIGlmIChtX2Nsb3NlUmVtYWluaW5nV2luZG93cyAmJiBtX2RlbGVnYXRl
KQogICAgICAgICBtX2RlbGVnYXRlLT5jbG9zZVJlbWFpbmluZ1dpbmRvd3MoKTsKICAgICBlbHNl
CiAgICAgICAgIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
aAppbmRleCA2ZGMyMmQ4ZmFlN2RkMzk0MTU1MzZiZmE2MjZkM2M5ZDdlZDM5NTQ4Li44MjhmYjRi
YjBmNzkyMTVkZDU4Zjc4OTRjMTdjNjhhNDVmYjAwNGVjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBA
IC0zNywxMCArMzcsMTUgQEAKICNpbmNsdWRlICJXZWJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNs
dWRlICJXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJUYXNrLmgiCisj
aW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4K
KyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkFycmF5QnVmZmVyVmlldzsKK2NsYXNz
IFdlYlBlcm1pc3Npb25DbGllbnQ7CiBjbGFzcyBXZWJWaWV3OwogfQogCkBAIC01NCw3ICs1OSw2
IEBAIHB1YmxpYzoKICAgICBUZXN0UnVubmVyKCk7CiAgICAgdmlydHVhbCB+VGVzdFJ1bm5lcigp
OwogCi0gICAgLy8gRklYTUU6IGNoYW5nZSB0aGlzIG1ldGhvZCB0byB0YWtlIGEgVGVzdERlbGVn
YXRlKiBpbnN0ZWFkLgogICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7CiAg
ICAgdm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcg
PSB3ZWJWaWV3OyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA2
OGI0ZjNkNjJjNmQ4MTcwNzViZGEwOWU4YzhlOTRlM2FiYWIzNzcyLi4wOTNkN2E2MmUxNGIyZmJh
ODMwYzhhMjY3MTk3ZTI5YjY0ZDhkM2IxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFj
ZXMuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
V2ViVGVzdEludGVyZmFjZXMuaCIKIAotI2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgogI2luY2x1
ZGUgIlRlc3RJbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJXZWJFdmVudFNlbmRlci5oIgpAQCAtNDcsNyArNDYsNyBAQCB1c2lu
ZyBXZWJLaXQ6OldlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAotY2xhc3Mg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsIDogcHVibGljIFRlc3REZWxlZ2F0ZSB7CitjbGFz
cyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWwgewogcHVibGljOgogICAgIEludGVybmFsKCk7
CiAgICAgdmlydHVhbCB+SW50ZXJuYWwoKTsKQEAgLTYxLDE5ICs2MCw2IEBAIHB1YmxpYzoKICAg
ICBXZWJFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKSB7IHJldHVybiAmbV9ldmVudFNlbmRlcjsg
fQogICAgIFdlYlRlc3RSdW5uZXIqIHRlc3RSdW5uZXIoKSB7IHJldHVybiAmbV90ZXN0UnVubmVy
OyB9CiAKLSAgICAvLyBUZXN0RGVsZWdhdGUgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29udGV4dE1lbnVEYXRhKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyRWRpdENv
bW1hbmQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdENvbW1hbmQoY29uc3Qgc3RkOjpzdHJp
bmcmIG5hbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7Ci0gICAgdmlydHVhbCBXZWJDb250
ZXh0TWVudURhdGEqIGxhc3RDb250ZXh0TWVudURhdGEoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0R2FtZXBhZERhdGEoY29uc3QgV2ViR2FtZXBhZHMmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcG9zdFRhc2soV2ViVGFzayopOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2so
V2ViVGFzayosIGxvbmcgbG9uZyBtcyk7Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgcmVnaXN0ZXJJ
c29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGFic29sdXRlRmls
ZW5hbWVzKTsKLSAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNv
bmQoKTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5n
RnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKTsKLQogcHJpdmF0ZToKICAgICBU
ZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFjZXM7CiAgICAgYm9vbCBtX3Rlc3RJc1J1bm5pbmc7CkBA
IC04MSw3ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIg
bV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKICAgICBXZWJFdmVudFNlbmRlciBtX2V2ZW50U2Vu
ZGVyOwogICAgIFdlYlRlc3RSdW5uZXIgbV90ZXN0UnVubmVyOwotICAgIFdlYlRlc3REZWxlZ2F0
ZSogbV9kZWxlZ2F0ZTsKIH07CiAKIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJu
YWwoKQpAQCAtOTAsNyArNzUsNiBAQCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OkludGVy
bmFsKCkKICAgICAsIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIobV9pbnRlcmZhY2VzLmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKCkpCiAgICAgLCBtX2V2ZW50U2VuZGVyKG1faW50ZXJmYWNlcy5l
dmVudFNlbmRlcigpKQogICAgICwgbV90ZXN0UnVubmVyKG1faW50ZXJmYWNlcy50ZXN0UnVubmVy
KCkpCi0gICAgLCBtX2RlbGVnYXRlKDApCiB7CiB9CiAKQEAgLTEwMCwxMyArODQsNyBAQCBXZWJU
ZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6On5JbnRlcm5hbCgpCiAKIHZvaWQgV2ViVGVzdEludGVy
ZmFjZXM6OkludGVybmFsOjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQog
ewotICAgIGlmIChkZWxlZ2F0ZSkgewotICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0g
ICAgICAgIG1faW50ZXJmYWNlcy5zZXREZWxlZ2F0ZSh0aGlzKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBtX2RlbGVnYXRlID0gMDsKLSAgICAgICAgbV9pbnRlcmZhY2VzLnNldERlbGVnYXRlKDAp
OwotICAgIH0KKyAgICBtX2ludGVyZmFjZXMuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogfQogCiB2
b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJW
aWV3KQpAQCAtMTE3LDYyICs5NSw3IEBAIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6
OkludGVybmFsOjpzZXRUZXN0SXNSdW5uaW5nKGJvb2wgcnVubmluZykKIHsKLSAgICBtX2ludGVy
ZmFjZXMudGVzdFJ1bm5lcigpLT5zZXRUZXN0SXNSdW5uaW5nKHJ1bm5pbmcpOwotfQotCi12b2lk
IFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Y2xlYXJDb250ZXh0TWVudURhdGEoKQotewot
ICAgIG1fZGVsZWdhdGUtPmNsZWFyQ29udGV4dE1lbnVEYXRhKCk7Ci19Ci0KLXZvaWQgV2ViVGVz
dEludGVyZmFjZXM6OkludGVybmFsOjpjbGVhckVkaXRDb21tYW5kKCkKLXsKLSAgICBtX2RlbGVn
YXRlLT5jbGVhckVkaXRDb21tYW5kKCk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6Oklu
dGVybmFsOjpzZXRFZGl0Q29tbWFuZChjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwgY29uc3Qgc3Rk
OjpzdHJpbmcmIHZhbHVlKQotewotICAgIG1fZGVsZWdhdGUtPnNldEVkaXRDb21tYW5kKG5hbWUs
IHZhbHVlKTsKLX0KLQotV2ViQ29udGV4dE1lbnVEYXRhKiBXZWJUZXN0SW50ZXJmYWNlczo6SW50
ZXJuYWw6Omxhc3RDb250ZXh0TWVudURhdGEoKSBjb25zdAotewotICAgIHJldHVybiBtX2RlbGVn
YXRlLT5sYXN0Q29udGV4dE1lbnVEYXRhKCk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6
OkludGVybmFsOjpzZXRHYW1lcGFkRGF0YShjb25zdCBXZWJHYW1lcGFkcyYgcGFkcykKLXsKLSAg
ICBtX2RlbGVnYXRlLT5zZXRHYW1lcGFkRGF0YShwYWRzKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50
ZXJmYWNlczo6SW50ZXJuYWw6OnByaW50TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSkKLXsKLSAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UobWVzc2FnZSk7Ci19Ci0KLXZvaWQg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpwb3N0VGFzayhXZWJUYXNrKiB0YXNrKQotewot
ICAgIG1fZGVsZWdhdGUtPnBvc3RUYXNrKHRhc2spOwotfQotCi12b2lkIFdlYlRlc3RJbnRlcmZh
Y2VzOjpJbnRlcm5hbDo6cG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqIHRhc2ssIGxvbmcgbG9uZyBt
cykKLXsKLSAgICBtX2RlbGVnYXRlLT5wb3N0RGVsYXllZFRhc2sodGFzaywgbXMpOwotfQotCi1X
ZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpyZWdpc3Rlcklzb2xhdGVkRmls
ZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpCi17
Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUtPnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29s
dXRlRmlsZW5hbWVzKTsKLX0KLQotbG9uZyBsb25nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5h
bDo6Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkKLXsKLSAgICByZXR1cm4gbV9kZWxlZ2F0
ZS0+Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7Ci19Ci0KLVdlYktpdDo6V2ViU3RyaW5n
IFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRG
OFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpCi17Ci0gICAgcmV0dXJuIG1fZGVsZWdhdGUt
PmdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKHBhdGgpOworICAgIG1faW50ZXJmYWNl
cy5zZXRUZXN0SXNSdW5uaW5nKHJ1bm5pbmcpOwogfQogCiBXZWJUZXN0SW50ZXJmYWNlczo6V2Vi
VGVzdEludGVyZmFjZXMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcAppbmRleCA1NTgyYjUx
MWUzYmUyNzE1ZWU2MzE0Y2Q4Nzg4MzFmYjMzZjEzMmNhLi4xMjY1ZDQ2ODYwYjQyMjVmNDQ4YzM4
MDE5NTFlYTViZjQyZmZjODViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcApAQCAtMjgs
NyArMjgsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnIgorI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlRlc3RSdW5uZXIuaCIKIAogI2luY2x1ZGUg
IlRlc3RSdW5uZXIuaCIKQEAgLTIyMiw2ICsyMjIsMjEgQEAgdm9pZCBXZWJUZXN0UnVubmVyOjpw
b2xpY3lEZWxlZ2F0ZURvbmUoKQogICAgIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVEb25lKCk7
CiB9CiAKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKTsKK30KKwor
Ym9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKTsKK30K
KworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5
RG9uZSgpOworfQorCiBib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNz
YWdlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRJbnRlcmNlcHRQb3N0
TWVzc2FnZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
aW5kZXggYjlhYWI2OTQ0NmZmYmM4MmNiMmMzZWJhYzlkMTU5MzEwY2E2ZTBkMC4uNzhjNGU1N2Mw
NWI3YjJkODA4MmFmZjA5ODFjYzZhZDFlN2NhOTUwNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2Vi
U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVGVzdFByb3h5LmgiCisjaW5jbHVkZSAiV2ViVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUgIldl
YlZpZXcuaCIKICNpbmNsdWRlICJXZWJWaWV3SG9zdC5oIgogI2luY2x1ZGUgInNraWEvZXh0L3Bs
YXRmb3JtX2NhbnZhcy5oIgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAppbmRleCBmOTE3ZmQ0ODE3YzM1MDcwNjM3ODRmMDI4ZDJmOGM2MWE0Y2NmODhjLi42ZjhiYjkx
OWZjYmQwNmU2MjVmYzQ3MTIyOTUxMTJkMGE3NGZkMmZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTA3LDkgKzEwNyw2IEBAIHB1YmxpYzoKICAgICBp
bnQgbmF2aWdhdGlvbkVudHJ5Q291bnQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Rm9jdXMoV2Vi
S2l0OjpXZWJXaWRnZXQqLCBib29sIGVuYWJsZSk7Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3Vy
Y2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gKG1fdGVzdElzUHJlcGFyaW5nIHx8
IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1
ZXN0Q2FsbGJhY2tzKCk7IH0KLSAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3MoKSBjb25zdCAgeyByZXR1cm4gKG1fdGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGlu
ZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7IH0K
LSAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgIHsg
cmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJc1BlbmRpbmcpICYmIHRlc3RSdW5u
ZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKTsgfQogCiAgICAgLy8g
Q2FsbGVkIGJ5IHRoZSBEUlRUZXN0UnVubmVyIHRvIHNpZ25hbCB0ZXN0IGNvbXBsZXRpb24uCiAg
ICAgdm9pZCB0ZXN0RmluaXNoZWQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185863</attachid>
            <date>2013-01-31 14:20:04 -0800</date>
            <delta_ts>2013-02-01 00:20:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108464-20130131231647.patch</filename>
            <type>text/plain</type>
            <size>58268</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZmYWE3MmQzNmMxYWI2M2IxMTM5MzU1YjVlNGVhMjEz
YWUzNTk4Zi4uY2NiYzNiYTE2NGIwNjdiYzkxYmI5ZThlYzM1YjlmNDdlZTEwYmI0MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
MiBAQAorMjAxMy0wMS0zMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIG1vdmUgb3duZXJzaGlwIG9mIFRlc3RSdW5uZXIgb2JqZWN0
IHRvIFRlc3RJbnRlcmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgIEJlZm9yZSwgVGVzdFNoZWxsIG93bmVkIHRoZSBjbGFzcy4gVGhpcyBhbHNvIHJlbW92
ZXMgdGhlIGxhc3QgaW5jbHVkZQorICAgICAgICBmcm9tIER1bXBSZW5kZXJUcmVlIHRvIFRlc3RS
dW5uZXIvc3JjLgorCisgICAgICAgIFRoaXMgYWxzbyBkZWxldGVzIFRlc3REZWxlZ2F0ZSBhbmQg
dXNlcyBXZWJUZXN0RGVsZWdhdGUgZXZlcnl3aGVyZQorICAgICAgICBpbnN0ZWFkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5o
OgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVt
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRE
ZWxlZ2F0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjptYWtlTWVu
dUl0ZW1TdHJpbmdzRm9yKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9FdmVudFNlbmRlci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
RXZlbnRTZW5kZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Okdh
bWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXIpOgorICAgICAgICAoR2FtZXBhZENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNl
czo6flRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZh
Y2VzOjpzZXRXZWJWaWV3KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNlczo6
YmluZFRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpyZXNldEFs
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcik6CisgICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OlRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKFdl
YlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRUZXN0SXNSdW5u
aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0UnVubmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXIpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFj
a3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEFz
VGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzZXRTaG91bGRE
dW1wQXNUZXh0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3Vs
ZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RS
dW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDaGls
ZEZyYW1lc0FzVGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpz
aG91bGREdW1wQXNBdWRpbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjphdWRpb0RhdGEpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0UnVubmVyOjpzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnN0
b3BQcm92aXNpb25hbEZyYW1lTG9hZHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wQ3JlYXRlVmlldyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpjYW5PcGVuV2luZG93cyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJj
ZVJlcXVlc3RDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5l
cjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6d2ViUGVybWlzc2lvbnMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcyk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUHJvZ3Jlc3NGaW5p
c2hlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNo
b3VsZER1bXBCYWNrRm9yd2FyZExpc3QpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6ZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjp0ZXN0UmVwYWludCk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxseSk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNldFRp
dGxlVGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjpodHRwSGVhZGVyc1RvQ2xlYXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1
bm5lcjo6c2hvdWxkQmxvY2tSZWRpcmVjdHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6d2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzZXRUb3BMb2FkaW5nRnJhbWUpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnBvbGljeURlbGVnYXRlRG9uZSk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdh
dGVJc1Blcm1pc3NpdmUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6
cG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChU
ZXN0U2hlbGw6OmNyZWF0ZU1haW5XaW5kb3cpOgorICAgICAgICAoVGVzdFNoZWxsOjp+VGVzdFNo
ZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QpOgorICAgICAgICAoVGVzdFNo
ZWxsOjpyZXNldFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKFRlc3RTaGVsbDo6ZHVtcCk6Cisg
ICAgICAgIChUZXN0U2hlbGw6OmJpbmRKU09iamVjdHNUb1dpbmRvdyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGw6OnRl
c3RSdW5uZXIpOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMy0wMS0zMSAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdDI6IHByb3ZpZGUgbmV3
IGJ1bmRsZSBBUElzIHRvIGFsbG93IGJ1bmRsZSBjbGllbnRzIHRvIGJlIG5vdGlmaWVkIG9mIHBh
c3RlYm9hcmQgYWNjZXNzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkK
aW5kZXggZTdlN2EyNzJjMDE0ZDNmZjY5MTFmZGZkYzQ2MmExNTQxMGMwM2JkMS4uMTM5YjhlYWZk
OTA2NmExZDEyODAxZjdhNThmMzJjM2RkMDNjMWZhMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5neXBpCkBAIC05Niw2ICs5Niw3IEBACiAgICAgICAgICAgICAnY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UGx1Z2luLmNwcCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFJ1bm5lci5jcHAnLAogICAgICAgICBdLAog
ICAgICAgICAndGVzdF9wbHVnaW5fZmlsZXMnOiBbCiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBl
UGx1Z0luL1BsdWdpbk9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFjZXMuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RJbnRlcmZh
Y2VzLmgKaW5kZXggNGVhYzQyYzZkMGNiZjY5OWE3ZWMwODcyODM1MmI0YzA3NTI0NTU3MC4uOTVk
ZWE2ZDgzYmYyZTkzZTY2ZDE2MzRkM2M5NzcxYWI5NWVkODBlMyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFj
ZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0SW50ZXJmYWNlcy5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICBXZWJB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKTsKICAgICBX
ZWJFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKICAgICBXZWJUZXN0UnVubmVyKiB0ZXN0UnVu
bmVyKCk7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgVGVzdFJ1bm5lciBpcyBjb21w
bGV0ZS4KLSAgICB2b2lkIHNldFRlc3RSdW5uZXIoV2ViVGVzdFJ1bm5lciopOwogCiBwcml2YXRl
OgogICAgIGNsYXNzIEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCmluZGV4
IDRhZTYzNDkwZmRiNzIzM2QxZTQ5NzdmZDJhMWU5OGIwODQ2MjVmNmMuLmE5N2I5MDdiZTk4YmUy
NGI2MWJhZmUwODkxNGE4YjgzODU1NjdlYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVy
LmgKQEAgLTM4LDU3ICszOCw2NCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJBcnJh
eUJ1ZmZlclZpZXc7CiBjbGFzcyBXZWJQZXJtaXNzaW9uQ2xpZW50OworY2xhc3MgV2ViRnJhbWU7
CiB9CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAotLy8gRklYTUU6IE9uY2UgdGhlIFRl
c3RSdW5uZXIgY2xhc3MgaXMgY29tcGxldGUsIHRoaXMgY2xhc3Mgc2hvdWxkIHRha2UgYQotLy8g
VGVzdFJ1bm5lciogYXMgY3RvciBhcmd1bWVudCwgYW5kIG5vdCBoYXZlIGRlZmF1bHQgaW1wbGVt
ZW50YXRpb25zLgorY2xhc3MgVGVzdFJ1bm5lcjsKKwogY2xhc3MgV2ViVGVzdFJ1bm5lciB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCkgeyB9Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9vbCkg
eyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVQaXhl
bFJlc3VsdHMoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBDaGlsZEZyYW1l
U2Nyb2xsUG9zaXRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlv
RGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCkgeyB9Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3RvcFByb3Zpc2lvbmFsRnJhbWVM
b2FkcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1
bXBUaXRsZUNoYW5nZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREdW1wQ3JlYXRlVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlcXVlc3RD
YWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25z
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wU3RhdHVz
Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWZlck1haW5SZXNvdXJjZURhdGFMb2Fk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNl
bGVjdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCB0
ZXN0UmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHN3
ZWVwSG9yaXpvbnRhbGx5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNQcmludGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYktp
dDo6V2ViVGV4dERpcmVjdGlvbikgeyB9Ci0gICAgdmlydHVhbCBjb25zdCBzdGQ6OnNldDxzdGQ6
OnN0cmluZz4qIGh0dHBIZWFkZXJzVG9DbGVhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQmxvY2tSZWRpcmVjdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCB3aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKSB7IH0KLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJh
bWUqIHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcG9saWN5RGVsZWdhdGVEb25lKCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHBvbGljeURlbGVn
YXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNpZiBXRUJURVNUUlVOTkVSX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGljaXQgV2ViVGVz
dFJ1bm5lcihUZXN0UnVubmVyKik7CisjZW5kaWYKKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
QXNUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9v
bCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
cygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgdGVzdFJlcGFpbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFs
bHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oV2ViS2l0OjpXZWJU
ZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiog
aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEJsb2Nr
UmVkaXJlY3RzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3Vs
ZFJldHVybk51bGwoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJhbWUq
IHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBwb2xpY3lEZWxlZ2F0
ZURvbmUoKTsKKyAgICB2aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHBvbGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBUZXN0UnVubmVyKiBtX3ByaXZhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlckNocm9taXVtLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uY3BwCmluZGV4
IGQ5ZGJhMzNhYTMyNDI5OGRiMDBjYjg3OTA1M2YwMDM0Njg3ZTkxMzkuLjkwM2QyOWNjMWIwYjRi
YjU5ZjViMWI2NDE2MTcxMDk1ZjkzYmZiODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21p
dW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uY3BwCkBAIC0zMSwxMSArMzEsMTEgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNo
cm9taXVtLmgiCiAKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIKICNpbmNsdWRlICJXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0
ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViQ1N0cmluZy5o
PgogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9t
aXVtLmgKaW5kZXggYTk3MjhjNjE1YmI0ZjUwNWZlMWVjYTZhMmY2NGNmZmFlOTRhMTU1Yi4uOTEz
MDA1ODAzOGFjZDZiMjdkNTRjOWFjMzM4MjFkMjE2MTE3YTQ3MyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJDaHJvbWl1bS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaApAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKLWNsYXNz
IFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3MgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CkBAIC02MSw3
ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3Qg
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiB0YXJnZXQsIGNvbnN0IGNoYXIqIG5vdGlm
aWNhdGlvbk5hbWUpOwogCi0gICAgdm9pZCBzZXREZWxlZ2F0ZShUZXN0RGVsZWdhdGUqIGRlbGVn
YXRlKSB7IG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsgfQorICAgIHZvaWQgc2V0RGVsZWdhdGUoV2Vi
VGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KICAgICB2
b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmlldyA9IHdl
YlZpZXc7IH0KIAogcHJpdmF0ZToKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dmVjdG9yPENwcFZhcmlhbnQ+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzOwogCi0gICAgVGVz
dERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsK
ICAgICBXZWJLaXQ6OldlYlZpZXcqIG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcAppbmRleCBkNTZhMWE4NDY4MzljNWI5N2IwMjVhMTQ4MTc1NDE2ZDc2MWI2NjA1Li41NjBl
YThlMjQzOWNiODEyNWU5MzViM2QwMmY2YzFiOWMxMmQ2ZTNiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5k
ZXIuY3BwCkBAIC00NSwxMCArNDUsMTAgQEAKIAogI2luY2x1ZGUgIktleUNvZGVNYXBwaW5nLmgi
CiAjaW5jbHVkZSAiTW9ja1NwZWxsQ2hlY2suaCIKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIK
ICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKKyNpbmNsdWRlICJXZWJUZXN0RGVs
ZWdhdGUuaCIKICNpbmNsdWRlICJXZWJUb3VjaFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgogI2luY2x1ZGUgPHB1YmxpYy9XZWJEcmFnRGF0YS5oPgpAQCAtMTI3LDcgKzEyNyw3IEBAIGlu
bGluZSBib29sIG91dHNpZGVNdWx0aUNsaWNrUmFkaXVzKGNvbnN0IFdlYlBvaW50JiBhLCBjb25z
dCBXZWJQb2ludCYgYikKIC8vIGRlcGVuZGVudCAoZS5nLiwgZHJhZ2dpbmcgaGFzIGEgdGltZW91
dCB2cyBzZWxlY3Rpb24pLgogdWludDMyIHRpbWVPZmZzZXRNcyA9IDA7CiAKLWRvdWJsZSBnZXRD
dXJyZW50RXZlbnRUaW1lU2VjKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCitkb3VibGUgZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYyhXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIHJldHVy
biAoZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpICsgdGltZU9mZnNldE1z
KSAvIDEwMDAuMDsKIH0KQEAgLTgxMiw3ICs4MTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBs
YXlTYXZlZEV2ZW50cygpCiAvLyAgIGFsc28gbWFrZXMgc2Vuc2UuIFRoaXMgZnVuY3Rpb24gaXMg
ZG9pbmcgc3VjaCBmb3Igc29tZSBmbGFncy4KIC8vIC0gU29tZSB0ZXN0IGV2ZW4gY2hlY2tzIGFj
dHVhbCBzdHJpbmcgY29udGVudC4gU28gcHJvdmlkaW5nIGl0IHdvdWxkIGJlIGFsc28gaGVscGZ1
bC4KIC8vCi1zdGF0aWMgVmVjdG9yPFdlYlN0cmluZz4gbWFrZU1lbnVJdGVtU3RyaW5nc0ZvcihX
ZWJDb250ZXh0TWVudURhdGEqIGNvbnRleHRNZW51LCBUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQor
c3RhdGljIFZlY3RvcjxXZWJTdHJpbmc+IG1ha2VNZW51SXRlbVN0cmluZ3NGb3IoV2ViQ29udGV4
dE1lbnVEYXRhKiBjb250ZXh0TWVudSwgV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKICAg
ICAvLyBUaGVzZSBjb25zdGFudHMgYXJlIGJhc2VkIG9uIFNhZmFyaSdzIGNvbnRleHQgbWVudSBi
ZWNhdXNlIHRlc3RzIGFyZSBtYWRlIGZvciBpdC4KICAgICBzdGF0aWMgY29uc3QgY2hhciogbm9u
RWRpdGFibGVNZW51U3RyaW5nc1tdID0geyAiQmFjayIsICJSZWxvYWQgUGFnZSIsICJPcGVuIGlu
IERhc2hiYW9yZCIsICI8c2VwYXJhdG9yPiIsICJWaWV3IFNvdXJjZSIsICJTYXZlIFBhZ2UgQXMi
LCAiUHJpbnQgUGFnZSIsICJJbnNwZWN0IEVsZW1lbnQiLCAwIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIu
aAppbmRleCAzYzIxZWY5Zjg0ODA1MmFjNzY4MTU1NThkODZiYTlhNzM5MDg3NjM1Li40YmYyODdl
NjNjMDEzZGM5ZDBhMDRjNDBmYzE0YWEyNzVjOTUyNjgxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgK
QEAgLTUwLDEzICs1MCwxMyBAQCBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1
bm5lciB7CiAKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAog
Y2xhc3MgRXZlbnRTZW5kZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CiAgICAg
RXZlbnRTZW5kZXIoKTsKIAotICAgIHZvaWQgc2V0RGVsZWdhdGUoVGVzdERlbGVnYXRlKiBkZWxl
Z2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KKyAgICB2b2lkIHNldERlbGVnYXRlKFdl
YlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9CiAgICAg
dm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcgPSB3
ZWJWaWV3OyB9CiAKICAgICAvLyBSZXNldHMgc29tZSBzdGF0aWMgdmFyaWFibGUgc3RhdGUuCkBA
IC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlRhc2tMaXN0IG1fdGFza0xpc3Q7
CiAKLSAgICBUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CisgICAgV2ViVGVzdERlbGVnYXRlKiBt
X2RlbGVnYXRlOwogICAgIFdlYktpdDo6V2ViVmlldyogbV93ZWJWaWV3OwogCiAgICAgLy8gTG9j
YXRpb24gb2YgdGhlIHRvdWNoIHBvaW50IHRoYXQgaW5pdGlhdGVkIGEgZ2VzdHVyZS4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVw
YWRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcAppbmRleCBlOWMyNDZhZjI1ZGRjZTg4OGY2ZWZl
ZWJmNWYwNjAyY2QyZTdlZDdmLi4yNjU0NDAwZWU0M2EzMzQ0ZDNiODRmNmEyN2VmNTc1YTcxMDNj
M2VhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHYW1lcGFkQ29udHJvbGxlci5o
IgotI2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5o
IgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgR2Ft
ZXBhZENvbnRyb2xsZXI6OmJpbmRUb0phdmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBX
ZWJTdHJpbmcmIGNsYXNzCiAgICAgQ3BwQm91bmRDbGFzczo6YmluZFRvSmF2YXNjcmlwdChmcmFt
ZSwgY2xhc3NuYW1lKTsKIH0KIAotdm9pZCBHYW1lcGFkQ29udHJvbGxlcjo6c2V0RGVsZWdhdGUo
VGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKK3ZvaWQgR2FtZXBhZENvbnRyb2xsZXI6OnNldERlbGVn
YXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgbV9kZWxlZ2F0ZSA9IGRlbGVn
YXRlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmgKaW5kZXggZDMwZDUwNjc5YWJi
ZTZiZjJhZWEwN2JmYTI2OTNjYTkxMmMxMmJiMi4uNWRjYWI2Y2Y0NmYxMjM2ZmY1Mzc3MDFjYjMz
YzkwOGQyMGQ5ODU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oCkBAIC00MSwx
NCArNDEsMTQgQEAgY2xhc3MgV2ViRnJhbWU7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsK
IAotY2xhc3MgVGVzdERlbGVnYXRlOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBH
YW1lcGFkQ29udHJvbGxlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBH
YW1lcGFkQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBiaW5kVG9KYXZhc2NyaXB0KFdlYktpdDo6
V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgY2xhc3NuYW1lKTsKLSAgICB2b2lk
IHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVz
dERlbGVnYXRlKik7CiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgpAQCAtNjQsNyArNjQs
NyBAQCBwcml2YXRlOgogCiAgICAgV2ViS2l0OjpXZWJHYW1lcGFkcyBtX2dhbWVwYWRzOwogCi0g
ICAgVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxl
Z2F0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDljZDlhZWY2NWU1MmUxYjY1ZTA5Y2E2ZGJkYzZhNDY1ZTVhZDJhZTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXN0RGVsZWdhdGVfaAotI2RlZmluZSBUZXN0RGVs
ZWdhdGVfaAotCi0jaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgotI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJWZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1zdHJ1Y3QgV2ViQ29udGV4dE1l
bnVEYXRhOwotY2xhc3MgV2ViR2FtZXBhZHM7Ci19Ci0KLW5hbWVzcGFjZSBXZWJUZXN0UnVubmVy
IHsKLQotY2xhc3MgV2ViVGFzazsKLQotY2xhc3MgVGVzdERlbGVnYXRlIHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZXh0TWVudURhdGEoKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNsZWFyRWRpdENvbW1hbmQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRDb21t
YW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpID0g
MDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1l
bnVEYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRHYW1lcGFkRGF0YShjb25z
dCBXZWJLaXQ6OldlYkdhbWVwYWRzJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcmludE1lc3Nh
Z2UoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soV2ViVGFzayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdl
YlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5n
IHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktp
dDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpID0gMDsKLSAgICB2aXJ0dWFsIGxvbmcg
bG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJL
aXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6
OnN0cmluZyYgcGF0aCkgPSAwOwotfTsKLQotfQotCi0jZW5kaWYgLy8gVGVzdERlbGVnYXRlX2gK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA1MDQwNzY1NDFhYzU2OTQyYjhmODdj
MWIxNDAwOThlYWNlNTY2NDkwLi4wN2M0NzY2YzE1YjViOTZkNjEwZmJhNzQyNWU3YTI4MzQ0NTkz
Zjg3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkV2
ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiR2FtZXBhZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJU
ZXN0UnVubmVyLmgiCiAjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJTdHJpbmcuaD4KIApAQCAtNDksNiArNTAsNyBAQCBUZXN0SW50ZXJmYWNlczo6
VGVzdEludGVyZmFjZXMoKQogICAgIG1fZXZlbnRTZW5kZXIgPSBhZG9wdFB0cihuZXcgRXZlbnRT
ZW5kZXIoKSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBHYW1lcGFk
Q29udHJvbGxlcigpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcg
VGV4dElucHV0Q29udHJvbGxlcigpKTsKKyAgICBtX3Rlc3RSdW5uZXIgPSBhZG9wdFB0cihuZXcg
VGVzdFJ1bm5lcigpKTsKIH0KIAogVGVzdEludGVyZmFjZXM6On5UZXN0SW50ZXJmYWNlcygpCkBA
IC01NywxMSArNTksMTMgQEAgVGVzdEludGVyZmFjZXM6On5UZXN0SW50ZXJmYWNlcygpCiAgICAg
bV9ldmVudFNlbmRlci0+c2V0V2ViVmlldygwKTsKICAgICAvLyBtX2dhbWVwYWRDb250cm9sbGVy
IGRvZXNuJ3QgZGVwZW5kIG9uIFdlYlZpZXcuCiAgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyLT5z
ZXRXZWJWaWV3KDApOworICAgIG1fdGVzdFJ1bm5lci0+c2V0V2ViVmlldygwKTsKIAogICAgIG1f
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldERlbGVnYXRlKDApOwogICAgIG1fZXZlbnRTZW5k
ZXItPnNldERlbGVnYXRlKDApOwogICAgIG1fZ2FtZXBhZENvbnRyb2xsZXItPnNldERlbGVnYXRl
KDApOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBUZXN0
RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9u
IFdlYlRlc3REZWxlZ2F0ZS4KKyAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKDApOwogfQog
CiB2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCkBAIC03
MCwxNCArNzQsMTYgQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0V2ViVmlldyhXZWJWaWV3KiB3
ZWJWaWV3KQogICAgIG1fZXZlbnRTZW5kZXItPnNldFdlYlZpZXcod2ViVmlldyk7CiAgICAgLy8g
bV9nYW1lcGFkQ29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBXZWJWaWV3LgogICAgIG1fdGV4
dElucHV0Q29udHJvbGxlci0+c2V0V2ViVmlldyh3ZWJWaWV3KTsKKyAgICBtX3Rlc3RSdW5uZXIt
PnNldFdlYlZpZXcod2ViVmlldyk7CiB9CiAKLXZvaWQgVGVzdEludGVyZmFjZXM6OnNldERlbGVn
YXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXREZWxl
Z2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIG1fYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXItPnNldERlbGVnYXRlKGRlbGVnYXRlKTsKICAgICBtX2V2ZW50U2VuZGVyLT5zZXRE
ZWxlZ2F0ZShkZWxlZ2F0ZSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlci0+c2V0RGVsZWdhdGUo
ZGVsZWdhdGUpOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBv
biBUZXN0RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVw
ZW5kIG9uIFdlYlRlc3REZWxlZ2F0ZS4KKyAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKGRl
bGVnYXRlKTsKIH0KIAogdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRvKFdlYkZyYW1lKiBmcmFt
ZSkKQEAgLTg2LDYgKzkyLDggQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRvKFdlYkZyYW1l
KiBmcmFtZSkKICAgICBtX2V2ZW50U2VuZGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJT
dHJpbmc6OmZyb21VVEY4KCJldmVudFNlbmRlciIpKTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVy
LT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJnYW1lcGFkQ29u
dHJvbGxlciIpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQo
ZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoInRleHRJbnB1dENvbnRyb2xsZXIiKSk7CisgICAg
bV90ZXN0UnVubmVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4
KCJ0ZXN0UnVubmVyIikpOworICAgIG1fdGVzdFJ1bm5lci0+YmluZFRvSmF2YXNjcmlwdChmcmFt
ZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7CiB9CiAKIHZv
aWQgVGVzdEludGVyZmFjZXM6OnJlc2V0QWxsKCkKQEAgLTk0LDYgKzEwMiwxMiBAQCB2b2lkIFRl
c3RJbnRlcmZhY2VzOjpyZXNldEFsbCgpCiAgICAgbV9ldmVudFNlbmRlci0+cmVzZXQoKTsKICAg
ICBtX2dhbWVwYWRDb250cm9sbGVyLT5yZXNldCgpOwogICAgIC8vIG1fdGV4dElucHV0Q29udHJv
bGxlciBkb2Vzbid0IGhhdmUgYW55IHN0YXRlIHRvIHJlc2V0LgorICAgIG1fdGVzdFJ1bm5lci0+
cmVzZXQoKTsKK30KKwordm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0VGVzdElzUnVubmluZyhib29s
IHJ1bm5pbmcpCit7CisgICAgbV90ZXN0UnVubmVyLT5zZXRUZXN0SXNSdW5uaW5nKHJ1bm5pbmcp
OwogfQogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogVGVzdEludGVyZmFjZXM6OmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKCkKQEAgLTEwNiw0ICsxMjAsOSBAQCBFdmVudFNlbmRlciogVGVzdElu
dGVyZmFjZXM6OmV2ZW50U2VuZGVyKCkKICAgICByZXR1cm4gbV9ldmVudFNlbmRlci5nZXQoKTsK
IH0KIAorVGVzdFJ1bm5lciogVGVzdEludGVyZmFjZXM6OnRlc3RSdW5uZXIoKQoreworICAgIHJl
dHVybiBtX3Rlc3RSdW5uZXIuZ2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5o
CmluZGV4IGE3ZGE0MzI4MzcxNzRkMmVlYTE2ODVhZmZlMTJhY2M5MzJiYjYwNTcuLjk5NmYzZDc4
ODM2ZDUwMTYzYjdlZDgwOTU1MTA3MDA2NDg4NjBhZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFj
ZXMuaApAQCAtNDMsOCArNDMsOSBAQCBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKIGNsYXNzIEV2ZW50U2VuZGVyOwogY2xhc3MgR2FtZXBh
ZENvbnRyb2xsZXI7Ci1jbGFzcyBUZXN0RGVsZWdhdGU7CitjbGFzcyBUZXN0UnVubmVyOwogY2xh
c3MgVGV4dElucHV0Q29udHJvbGxlcjsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3Mg
VGVzdEludGVyZmFjZXMgewogcHVibGljOgpAQCAtNTIsMTggKzUzLDIxIEBAIHB1YmxpYzoKICAg
ICB+VGVzdEludGVyZmFjZXMoKTsKIAogICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6OldlYlZp
ZXcqKTsKLSAgICB2b2lkIHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0
RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7CiAgICAgdm9pZCBiaW5kVG8oV2ViS2l0OjpXZWJG
cmFtZSopOwogICAgIHZvaWQgcmVzZXRBbGwoKTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmco
Ym9vbCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKTsKICAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKKyAgICBUZXN0UnVubmVy
KiB0ZXN0UnVubmVyKCk7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOwogICAgIE93blB0cjxFdmVudFNlbmRl
cj4gbV9ldmVudFNlbmRlcjsKICAgICBPd25QdHI8R2FtZXBhZENvbnRyb2xsZXI+IG1fZ2FtZXBh
ZENvbnRyb2xsZXI7CiAgICAgT3duUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1fdGV4dElucHV0
Q29udHJvbGxlcjsKKyAgICBPd25QdHI8VGVzdFJ1bm5lcj4gbV90ZXN0UnVubmVyOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAwOWY1ZDk2NzFkZjM2MTRkZDk5NjI3MTVlMDE1
ZmFhMDJkNjU3MmU5Li4yMTk3YjRmNDYwMjdjOTgzYjk0NDgyZTU1ZWE5Y2ZiYjcxZjY2OWE2IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMTUzLDExICsxNTMsOSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OldvcmtRdWV1ZTo6YWRkV29yayhXb3JrSXRlbSogd29yaykKIAogVGVzdFJ1bm5lcjo6VGVz
dFJ1bm5lcigpCiAgICAgOiBtX3Rlc3RJc1J1bm5pbmcoZmFsc2UpCi0gICAgLCBtX2Nsb3NlUmVt
YWluaW5nV2luZG93cyh0cnVlKQogICAgICwgbV93b3JrUXVldWUodGhpcykKICAgICAsIG1fZGVs
ZWdhdGUoMCkKICAgICAsIG1fd2ViVmlldygwKQotICAgICwgbV90b3BMb2FkaW5nRnJhbWUoMCkK
ICAgICAsIG1faW50ZW50Q2xpZW50KGFkb3B0UHRyKG5ldyBFbXB0eVdlYkRlbGl2ZXJlZEludGVu
dENsaWVudCkpCiAgICAgLCBtX3dlYlBlcm1pc3Npb25zKGFkb3B0UHRyKG5ldyBXZWJQZXJtaXNz
aW9ucykpCiB7CkBAIC0zODYsMTEgKzM4NCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkK
ICAgICBXZWJGb250UmVuZGVyaW5nOjpzZXRTdWJwaXhlbFBvc2l0aW9uaW5nKGZhbHNlKTsKICNl
bmRpZgogCi0gICAgLy8gUmVzZXQgdGhlIGRlZmF1bHQgcXVvdGEgZm9yIGVhY2ggb3JpZ2luIHRv
IDVNQgotICAgIG1fZGVsZWdhdGUtPnNldERhdGFiYXNlUXVvdGEoNSAqIDEwMjQgKiAxMDI0KTsK
LSAgICBtX2RlbGVnYXRlLT5zZXREZXZpY2VTY2FsZUZhY3RvcigxKTsKLSAgICBtX2RlbGVnYXRl
LT5zZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsKLSAgICBtX2RlbGVnYXRlLT5zZXRMb2NhbGUo
IiIpOworICAgIGlmIChtX2RlbGVnYXRlKSB7CisgICAgICAgIC8vIFJlc2V0IHRoZSBkZWZhdWx0
IHF1b3RhIGZvciBlYWNoIG9yaWdpbiB0byA1TUIKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0RGF0
YWJhc2VRdW90YSg1ICogMTAyNCAqIDEwMjQpOworICAgICAgICBtX2RlbGVnYXRlLT5zZXREZXZp
Y2VTY2FsZUZhY3RvcigxKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0QWNjZXB0QWxsQ29va2ll
cyhmYWxzZSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnNldExvY2FsZSgiIik7CisgICAgfQogCiAg
ICAgbV9kdW1wRWRpdGluZ0NhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fZHVtcEFzVGV4dCA9IGZh
bHNlOwpAQCAtNDQwLDcgKzQ0MCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1f
dGFza0xpc3QucmV2b2tlQWxsKCk7CiAgICAgbV93b3JrUXVldWUucmVzZXQoKTsKIAotICAgIGlm
IChtX2Nsb3NlUmVtYWluaW5nV2luZG93cykKKyAgICBpZiAobV9jbG9zZVJlbWFpbmluZ1dpbmRv
d3MgJiYgbV9kZWxlZ2F0ZSkKICAgICAgICAgbV9kZWxlZ2F0ZS0+Y2xvc2VSZW1haW5pbmdXaW5k
b3dzKCk7CiAgICAgZWxzZQogICAgICAgICBtX2Nsb3NlUmVtYWluaW5nV2luZG93cyA9IHRydWU7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMjEzZmJmNGI5YWQxNWMxYWMxODRiYTNmNjMxZmFkZDYy
OTY5ODAzMC4uODI4ZmI0YmIwZjc5MjE1ZGQ1OGY3ODk0YzE3YzY4YTQ1ZmIwMDRlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuaApAQCAtMzcsMTEgKzM3LDE1IEBACiAjaW5jbHVkZSAiV2ViQXJyYXlCdWZm
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViVGFzay5oIgotI2luY2x1ZGUgIldlYlRlc3RSdW5uZXIuaCIKKyNpbmNsdWRlICJXZWJU
ZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgorI2luY2x1ZGUgPHNl
dD4KKyNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgeworY2xhc3MgV2ViQXJyYXlCdWZmZXJWaWV3OworY2xhc3MgV2ViUGVybWlzc2lv
bkNsaWVudDsKIGNsYXNzIFdlYlZpZXc7CiB9CiAKQEAgLTUwLDEyICs1NCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViVGVzdFJ1bm5lciB7CiBjbGFzcyBXZWJQZXJtaXNzaW9uczsKIGNsYXNzIFdlYlRlc3RE
ZWxlZ2F0ZTsKIAotY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzLCBwdWJs
aWMgV2ViVGVzdFJ1bm5lciB7CitjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENwcEJvdW5kQ2xh
c3MgewogcHVibGljOgogICAgIFRlc3RSdW5uZXIoKTsKICAgICB2aXJ0dWFsIH5UZXN0UnVubmVy
KCk7CiAKLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgbWV0aG9kIHRvIHRha2UgYSBUZXN0RGVs
ZWdhdGUqIGluc3RlYWQuCiAgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsK
ICAgICB2b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmll
dyA9IHdlYlZpZXc7IH0KIApAQCAtNjMsNTAgKzY2LDQ5IEBAIHB1YmxpYzoKIAogICAgIFdlYlRh
c2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKLSAgICAvLyBXZWJU
ZXN0UnVubmVyIGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXN0SXNSdW5u
aW5nKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wRWRpdGluZ0Nh
bGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQXNU
ZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1Rl
eHQoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxS
ZXN1bHRzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVy
YXRlUGl4ZWxSZXN1bHRzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNr
cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
VXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tz
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJLaXQ6Oldl
YlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0
YUxvYWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVj
dGlvblJlY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdGVzdFJlcGFpbnQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHkoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHRE
aXJlY3Rpb24oV2ViS2l0OjpXZWJUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEJsb2NrUmVkaXJlY3RzKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51
bGwoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6
V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBwb2xpY3lEZWxlZ2F0ZURvbmUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcG9s
aWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCk7Cisg
ICAgYm9vbCBzaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hv
dWxkRHVtcEFzVGV4dCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2hvdWxkRHVtcEFzVGV4dChib29s
KTsKKyAgICBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sKTsKKyAgICBib29sIHNob3VsZER1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBBc0F1ZGlvKCkg
Y29uc3Q7CisgICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlvRGF0YSgp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sKTsKKyAgICBib29s
IHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7CisgICAg
Ym9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRE
dW1wVGl0bGVDaGFuZ2VzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wQ3JlYXRlVmlldygp
IGNvbnN0OworICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICBib29sIHNob3Vs
ZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBS
ZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgV2ViS2l0OjpXZWJQZXJtaXNzaW9u
Q2xpZW50KiB3ZWJQZXJtaXNzaW9ucygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFN0YXR1
c0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjaygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNv
bnN0OworICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0OworICAgIGJv
b2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICBib29sIHRlc3RSZXBhaW50
KCkgY29uc3Q7CisgICAgYm9vbCBzd2VlcEhvcml6b250YWxseSgpIGNvbnN0OworICAgIGJvb2wg
aXNQcmludGluZygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxp
bmdCZWZvcmVVbmxvYWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihX
ZWJLaXQ6OldlYlRleHREaXJlY3Rpb24pOworICAgIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRCbG9ja1JlZGly
ZWN0cygpIGNvbnN0OworICAgIGJvb2wgd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCgp
IGNvbnN0OworICAgIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1lKFdlYktpdDo6V2ViRnJhbWUqLCBi
b29sKTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lKiB0b3BMb2FkaW5nRnJhbWUoKSBjb25zdDsKKyAg
ICB2b2lkIHBvbGljeURlbGVnYXRlRG9uZSgpOworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFi
bGVkKCkgY29uc3Q7CisgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0
OworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CisgICAg
Ym9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAgIGJvb2wgaXNTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogCiAgICAgLy8gQSBzaW5nbGUgaXRlbSBpbiB0aGUg
d29yayBxdWV1ZS4KICAgICBjbGFzcyBXb3JrSXRlbSB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50
ZXJmYWNlcy5jcHAKaW5kZXggYTUzYTA5ZWY4NDVhMjEwNmI0OTU3OTM2MzdlOGM0ZTg5MGNhNGNh
Yy4uMDkzZDdhNjJlMTRiMmZiYTgzMGM4YTI2NzE5N2UyOWI2NGQ4ZDNiMSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVy
ZmFjZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCiAKLSNpbmNsdWRlICJUZXN0
RGVsZWdhdGUuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUgIldlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKQEAg
LTQ3LDcgKzQ2LDcgQEAgdXNpbmcgV2ViS2l0OjpXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVz
dFJ1bm5lciB7CiAKLWNsYXNzIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCA6IHB1YmxpYyBU
ZXN0RGVsZWdhdGUgeworY2xhc3MgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsIHsKIHB1Ymxp
YzoKICAgICBJbnRlcm5hbCgpOwogICAgIHZpcnR1YWwgfkludGVybmFsKCk7CkBAIC01OSwyMSAr
NTgsNyBAQCBwdWJsaWM6CiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1f
d2ViVmlldzsgfQogICAgIFdlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcigpIHsgcmV0dXJuICZtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOyB9CiAgICAg
V2ViRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKCkgeyByZXR1cm4gJm1fZXZlbnRTZW5kZXI7IH0K
LSAgICBXZWJUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgeyByZXR1cm4gbV90ZXN0UnVubmVyOyB9
Ci0gICAgdm9pZCBzZXRUZXN0UnVubmVyKFdlYlRlc3RSdW5uZXIqIHRlc3RSdW5uZXIpIHsgbV90
ZXN0UnVubmVyID0gdGVzdFJ1bm5lcjsgfQotCi0gICAgLy8gVGVzdERlbGVnYXRlIGltcGxlbWVu
dGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRleHRNZW51RGF0YSgpOwotICAgIHZp
cnR1YWwgdm9pZCBjbGVhckVkaXRDb21tYW5kKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRD
b21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
OwotICAgIHZpcnR1YWwgV2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1lbnVEYXRhKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRz
Jik7Ci0gICAgdmlydHVhbCB2b2lkIHByaW50TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSk7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpOwotICAgIHZpcnR1
YWwgV2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxX
ZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcyk7Ci0gICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0
Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmlu
ZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCk7CisgICAgV2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIHsgcmV0dXJuICZtX3Rlc3RSdW5u
ZXI7IH0KIAogcHJpdmF0ZToKICAgICBUZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFjZXM7CkBAIC04
MSw4ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogICAgIFdlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgV2Vi
RXZlbnRTZW5kZXIgbV9ldmVudFNlbmRlcjsKLSAgICBXZWJUZXN0UnVubmVyKiBtX3Rlc3RSdW5u
ZXI7Ci0gICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3RSdW5uZXIg
bV90ZXN0UnVubmVyOwogfTsKIAogV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5h
bCgpCkBAIC05MCw4ICs3NCw3IEBAIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJu
YWwoKQogICAgICwgbV93ZWJWaWV3KDApCiAgICAgLCBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
KG1faW50ZXJmYWNlcy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpKQogICAgICwgbV9ldmVudFNl
bmRlcihtX2ludGVyZmFjZXMuZXZlbnRTZW5kZXIoKSkKLSAgICAsIG1fdGVzdFJ1bm5lcigwKQot
ICAgICwgbV9kZWxlZ2F0ZSgwKQorICAgICwgbV90ZXN0UnVubmVyKG1faW50ZXJmYWNlcy50ZXN0
UnVubmVyKCkpCiB7CiB9CiAKQEAgLTEwMSwxMyArODQsNyBAQCBXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6On5JbnRlcm5hbCgpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewotICAgIGlmIChkZWxl
Z2F0ZSkgewotICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAgICAgIG1faW50ZXJm
YWNlcy5zZXREZWxlZ2F0ZSh0aGlzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2RlbGVnYXRl
ID0gMDsKLSAgICAgICAgbV9pbnRlcmZhY2VzLnNldERlbGVnYXRlKDApOwotICAgIH0KKyAgICBt
X2ludGVyZmFjZXMuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogfQogCiB2b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMTE4LDYz
ICs5NSw3IEBAIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdl
YlZpZXcqIHdlYlZpZXcpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRU
ZXN0SXNSdW5uaW5nKGJvb2wgcnVubmluZykKIHsKLSAgICBpZiAobV90ZXN0UnVubmVyKQotICAg
ICAgICBtX3Rlc3RSdW5uZXItPnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7Ci19Ci0KLXZvaWQg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpjbGVhckNvbnRleHRNZW51RGF0YSgpCi17Ci0g
ICAgbV9kZWxlZ2F0ZS0+Y2xlYXJDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0
SW50ZXJmYWNlczo6SW50ZXJuYWw6OmNsZWFyRWRpdENvbW1hbmQoKQotewotICAgIG1fZGVsZWdh
dGUtPmNsZWFyRWRpdENvbW1hbmQoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50
ZXJuYWw6OnNldEVkaXRDb21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUpCi17Ci0gICAgbV9kZWxlZ2F0ZS0+c2V0RWRpdENvbW1hbmQobmFtZSwg
dmFsdWUpOwotfQotCi1XZWJDb250ZXh0TWVudURhdGEqIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRl
cm5hbDo6bGFzdENvbnRleHRNZW51RGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVsZWdh
dGUtPmxhc3RDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6OnNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRzJiBwYWRzKQotewotICAg
IG1fZGVsZWdhdGUtPnNldEdhbWVwYWREYXRhKHBhZHMpOwotfQotCi12b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6cHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdl
KQotewotICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtZXNzYWdlKTsKLX0KLQotdm9pZCBX
ZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnBvc3RUYXNrKFdlYlRhc2sqIHRhc2spCi17Ci0g
ICAgbV9kZWxlZ2F0ZS0+cG9zdFRhc2sodGFzayk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFj
ZXM6OkludGVybmFsOjpwb3N0RGVsYXllZFRhc2soV2ViVGFzayogdGFzaywgbG9uZyBsb25nIG1z
KQotewotICAgIG1fZGVsZWdhdGUtPnBvc3REZWxheWVkVGFzayh0YXNrLCBtcyk7Ci19Ci0KLVdl
YlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnJlZ2lzdGVySXNvbGF0ZWRGaWxl
U3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykKLXsK
LSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1
dGVGaWxlbmFtZXMpOwotfQotCi1sb25nIGxvbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQotewotICAgIHJldHVybiBtX2RlbGVnYXRl
LT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKLX0KLQotV2ViS2l0OjpXZWJTdHJpbmcg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4
UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKLXsKLSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+
Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7CisgICAgbV9pbnRlcmZhY2Vz
LnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7CiB9CiAKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJU
ZXN0SW50ZXJmYWNlcygpCkBAIC0yMzIsOSArMTUzLDQgQEAgV2ViVGVzdFJ1bm5lciogV2ViVGVz
dEludGVyZmFjZXM6OnRlc3RSdW5uZXIoKQogICAgIHJldHVybiBtX2ludGVybmFsLT50ZXN0UnVu
bmVyKCk7CiB9CiAKLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OnNldFRlc3RSdW5uZXIoV2ViVGVz
dFJ1bm5lciogdGVzdFJ1bm5lcikKLXsKLSAgICBtX2ludGVybmFsLT5zZXRUZXN0UnVubmVyKHRl
c3RSdW5uZXIpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RSdW5uZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEyNjVkNDY4NjBiNDIyNWY0NDhjMzgwMTk1MWVhNWJmNDJmZmM4NWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
UnVubmVyLmNwcApAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJUZXN0UnVubmVyLmgiCisKKyNpbmNsdWRlICJUZXN0UnVubmVyLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFJ1bm5lcihUZXN0UnVubmVyKiB0ZXN0UnVubmVyKQorICAgIDogbV9wcml2
YXRlKHRlc3RSdW5uZXIpCit7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVk
aXRpbmdDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1
bXBFZGl0aW5nQ2FsbGJhY2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVt
cEFzVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEFzVGV4
dCgpOworfQorCit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZER1bXBBc1RleHQoYm9vbCB2
YWx1ZSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldFNob3VsZER1bXBBc1RleHQodmFsdWUpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cygpOwor
fQorCit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJv
b2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0
cyh2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6
c2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5zaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVu
bmVyOjpzaG91bGREdW1wQXNBdWRpbygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
c2hvdWxkRHVtcEFzQXVkaW8oKTsKK30KKworY29uc3QgV2ViQXJyYXlCdWZmZXJWaWV3KiBXZWJU
ZXN0UnVubmVyOjphdWRpb0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmF1
ZGlvRGF0YSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVyOjpzZXRTaG91bGREdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91
bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKHZhbHVlKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVy
OjpzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxs
YmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxv
YWRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdG9wUHJvdmlzaW9uYWxGcmFt
ZUxvYWRzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFRpdGxlQ2hhbmdl
cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDcmVhdGVWaWV3KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wQ3JlYXRlVmlldygpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OmNhbk9wZW5XaW5kb3dzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5jYW5PcGVuV2luZG93cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6
OnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKK30KKworYm9vbCBX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJh
Y2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9u
c2VNSU1FVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7Cit9CisKK1dlYlBlcm1pc3Npb25DbGllbnQqIFdl
YlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT53ZWJQZXJtaXNzaW9ucygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1
bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3Vs
ZER1bXBTdGF0dXNDYWxsYmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5zaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCk7Cit9CisKK2Jvb2wgV2Vi
VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpOworfQorCitib29sIFdl
YlRlc3RSdW5uZXI6OmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKTsKK30KKworYm9vbCBX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKTsKK30KKworYm9vbCBXZWJU
ZXN0UnVubmVyOjp0ZXN0UmVwYWludCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
dGVzdFJlcGFpbnQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxs
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3dlZXBIb3Jpem9udGFsbHkoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5pc1ByaW50aW5nKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
KCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5lcjo6c2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYlRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIG1fcHJpdmF0ZS0+c2V0VGl0bGVUZXh0RGly
ZWN0aW9uKGRpcmVjdGlvbik7Cit9CisKK2NvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogV2Vi
VGVzdFJ1bm5lcjo6aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5odHRwSGVhZGVyc1RvQ2xlYXIoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpz
aG91bGRCbG9ja1JlZGlyZWN0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hv
dWxkQmxvY2tSZWRpcmVjdHMoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjp3aWxsU2VuZFJl
cXVlc3RTaG91bGRSZXR1cm5OdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT53
aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsKCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5l
cjo6c2V0VG9wTG9hZGluZ0ZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgYm9vbCBjbGVhcikKK3sKKyAg
ICBtX3ByaXZhdGUtPnNldFRvcExvYWRpbmdGcmFtZShmcmFtZSwgY2xlYXIpOworfQorCitXZWJG
cmFtZSogV2ViVGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT50b3BMb2FkaW5nRnJhbWUoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVy
Ojpwb2xpY3lEZWxlZ2F0ZURvbmUoKQoreworICAgIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVE
b25lKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdhdGVFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUo
KTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURv
bmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBvbGljeURlbGVnYXRlU2hvdWxk
Tm90aWZ5RG9uZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBv
c3RNZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRJbnRlcmNl
cHRQb3N0TWVzc2FnZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRhZjljMGU3OWI3MTFkMDc2
NTllYzEwZmEzZmM4NzEzYzFjNTljMzkuLjc4YzRlNTdjMDViN2IyZDgwODJhZmYwOTgxY2M2YWQx
ZTdjYTk1MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNw
cApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgorI2luY2x1
ZGUgIldlYlRlc3RSdW5uZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2Vi
Vmlld0hvc3QuaCIKICNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKQEAgLTE2
MSw5ICsxNjIsNiBAQCB2b2lkIFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgbV90ZXN0
SW50ZXJmYWNlcyA9IGFkb3B0UHRyKG5ldyBXZWJUZXN0SW50ZXJmYWNlcygpKTsKICAgICBtX2Rl
dlRvb2xzVGVzdEludGVyZmFjZXMgPSBhZG9wdFB0cihuZXcgV2ViVGVzdEludGVyZmFjZXMoKSk7
Ci0gICAgbV90ZXN0UnVubmVyID0gYWRvcHRQdHIobmV3IFRlc3RSdW5uZXIoKSk7Ci0gICAgbV90
ZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkpOwotICAgIG1f
ZGV2VG9vbHNUZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkp
OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCiAgICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIgPSBhZG9wdFB0cihuZXcgTm90aWZpY2F0
aW9uUHJlc2VudGVyKHRoaXMpKTsKICNlbmRpZgpAQCAtMTg3LDggKzE4NSw2IEBAIHZvaWQgVGVz
dFNoZWxsOjpjcmVhdGVNYWluV2luZG93KCkKICAgICBtX3dlYlZpZXcgPSBtX3dlYlZpZXdIb3N0
LT53ZWJWaWV3KCk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0RGVsZWdhdGUobV93ZWJWaWV3
SG9zdC5nZXQoKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0V2ViVmlldyhtX3dlYlZpZXcp
OwotICAgIG1fdGVzdFJ1bm5lci0+c2V0RGVsZWdhdGUobV93ZWJWaWV3SG9zdC5nZXQoKSk7Ci0g
ICAgbV90ZXN0UnVubmVyLT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiAgICAgbV9kcnREZXZUb29s
c0FnZW50LT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiB9CiAKQEAgLTE5OCw4ICsxOTQsNiBAQCBU
ZXN0U2hlbGw6On5UZXN0U2hlbGwoKQogICAgIG1fdGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXco
MCk7CiAgICAgbV9kZXZUb29sc1Rlc3RJbnRlcmZhY2VzLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBt
X2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7Ci0gICAgbV90ZXN0UnVubmVy
LT5zZXREZWxlZ2F0ZSgwKTsKLSAgICBtX3Rlc3RSdW5uZXItPnNldFdlYlZpZXcoMCk7CiAgICAg
bV9kcnREZXZUb29sc0FnZW50LT5zZXRXZWJWaWV3KDApOwogICAgIGlmIChtX3dlYlZpZXdIb3N0
KQogICAgICAgICBtX3dlYlZpZXdIb3N0LT5zaHV0ZG93bigpOwpAQCAtMjY2LDExICsyNjAsMTEg
QEAgdm9pZCBUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmIHBhcmFtcywg
Ym9vbCBzaG91bGREdW1wUGl4ZWxzKQogICAgIG1fcGFyYW1zID0gcGFyYW1zOwogICAgIHN0cmlu
ZyB0ZXN0VXJsID0gbV9wYXJhbXMudGVzdFVybC5zcGVjKCk7CiAKLSAgICBtX3Rlc3RSdW5uZXIt
PnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKHNob3VsZER1bXBQaXhlbHMpOworICAgIG1f
dGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3Vs
dHMoc2hvdWxkRHVtcFBpeGVscyk7CiAKICAgICBpZiAodGVzdFVybC5maW5kKCJsb2FkaW5nLyIp
ICE9IHN0cmluZzo6bnBvcwogICAgICAgICB8fCB0ZXN0VXJsLmZpbmQoImxvYWRpbmdcXCIpICE9
IHN0cmluZzo6bnBvcykKLSAgICAgICAgbV90ZXN0UnVubmVyLT5zZXRTaG91bGREdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKHRydWUpOworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVy
KCktPnNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3ModHJ1ZSk7CiAKICAgICBpZiAodGVz
dFVybC5maW5kKCJjb21wb3NpdGluZy8iKSAhPSBzdHJpbmc6Om5wb3MgfHwgdGVzdFVybC5maW5k
KCJjb21wb3NpdGluZ1xcIikgIT0gc3RyaW5nOjpucG9zKSB7CiAgICAgICAgIGlmICghbV9zb2Z0
d2FyZUNvbXBvc2l0aW5nRW5hYmxlZCkKQEAgLTI4Myw4ICsyNzcsOCBAQCB2b2lkIFRlc3RTaGVs
bDo6cnVuRmlsZVRlc3QoY29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQ
aXhlbHMpCiAKICAgICBpZiAodGVzdFVybC5maW5kKCIvZHVtcEFzVGV4dC8iKSAhPSBzdHJpbmc6
Om5wb3MKICAgICAgICAgfHwgdGVzdFVybC5maW5kKCJcXGR1bXBBc1RleHRcXCIpICE9IHN0cmlu
Zzo6bnBvcykgewotICAgICAgICBtX3Rlc3RSdW5uZXItPnNldFNob3VsZER1bXBBc1RleHQodHJ1
ZSk7Ci0gICAgICAgIG1fdGVzdFJ1bm5lci0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMo
ZmFsc2UpOworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNldFNob3Vs
ZER1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIo
KS0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoZmFsc2UpOwogICAgIH0KIAogICAgIGlm
ICh0ZXN0VXJsLmZpbmQoIi9pbnNwZWN0b3IvIikgIT0gc3RyaW5nOjpucG9zCkBAIC0zMjUsNyAr
MzE5LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIoKQogICAgIHJlc2V0
V2ViU2V0dGluZ3MoKndlYlZpZXcoKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+cmVzZXRBbGwo
KTsKICAgICBtX2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnJlc2V0QWxsKCk7Ci0gICAgbV90ZXN0
UnVubmVyLT5yZXNldCgpOwogICAgIG1fd2ViVmlld0hvc3QtPnJlc2V0KCk7CiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBtX25v
dGlmaWNhdGlvblByZXNlbnRlci0+cmVzZXQoKTsKQEAgLTU3OSwxNCArNTcyLDE0IEBAIHZvaWQg
VGVzdFNoZWxsOjpkdW1wKCkKICAgICBXZWJGcmFtZSogZnJhbWUgPSBtX3dlYlZpZXctPm1haW5G
cmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICBib29sIHNob3Vs
ZER1bXBBc1RleHQgPSBtX3Rlc3RSdW5uZXItPnNob3VsZER1bXBBc1RleHQoKTsKLSAgICBib29s
IHNob3VsZER1bXBBc0F1ZGlvID0gbV90ZXN0UnVubmVyLT5zaG91bGREdW1wQXNBdWRpbygpOwot
ICAgIGJvb2wgc2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBtX3Rlc3RSdW5uZXItPnNob3Vs
ZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCk7Ci0gICAgYm9vbCBzaG91bGREdW1wQXNQcmludGVkID0g
bV90ZXN0UnVubmVyLT5pc1ByaW50aW5nKCk7CisgICAgYm9vbCBzaG91bGREdW1wQXNUZXh0ID0g
bV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQXNUZXh0KCk7CisgICAg
Ym9vbCBzaG91bGREdW1wQXNBdWRpbyA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+
c2hvdWxkRHVtcEFzQXVkaW8oKTsKKyAgICBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRz
ID0gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVz
dWx0cygpOworICAgIGJvb2wgc2hvdWxkRHVtcEFzUHJpbnRlZCA9IG1fdGVzdEludGVyZmFjZXMt
PnRlc3RSdW5uZXIoKS0+aXNQcmludGluZygpOwogICAgIGJvb2wgZHVtcGVkQW55dGhpbmcgPSBm
YWxzZTsKIAogICAgIGlmIChzaG91bGREdW1wQXNBdWRpbykgewotICAgICAgICBjb25zdCBXZWJL
aXQ6OldlYkFycmF5QnVmZmVyVmlldyogd2ViQXJyYXlCdWZmZXJWaWV3ID0gbV90ZXN0UnVubmVy
LT5hdWRpb0RhdGEoKTsKKyAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcq
IHdlYkFycmF5QnVmZmVyVmlldyA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+YXVk
aW9EYXRhKCk7CiAgICAgICAgIG1fcHJpbnRlci5oYW5kbGVBdWRpbyh3ZWJBcnJheUJ1ZmZlclZp
ZXctPmJhc2VBZGRyZXNzKCksIHdlYkFycmF5QnVmZmVyVmlldy0+Ynl0ZUxlbmd0aCgpKTsKICAg
ICAgICAgbV9wcmludGVyLmhhbmRsZUF1ZGlvRm9vdGVyKCk7CiAgICAgICAgIG1fcHJpbnRlci5o
YW5kbGVUZXN0Rm9vdGVyKHRydWUpOwpAQCAtNjEwLDcgKzYwMyw3IEBAIHZvaWQgVGVzdFNoZWxs
OjpkdW1wKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkRHVt
cEFzVGV4dCkgewotICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUgPSBtX3Rlc3RSdW5uZXItPnNo
b3VsZER1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUg
PSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBDaGlsZEZyYW1lc0Fz
VGV4dCgpOwogICAgICAgICAgICAgc3RyaW5nIGRhdGFVdGY4ID0gc2hvdWxkRHVtcEFzUHJpbnRl
ZCA/IGR1bXBGcmFtZXNBc1ByaW50ZWRUZXh0KGZyYW1lLCByZWN1cnNpdmUpIDogZHVtcEZyYW1l
c0FzVGV4dChmcmFtZSwgcmVjdXJzaXZlKTsKICAgICAgICAgICAgIGlmIChmd3JpdGUoZGF0YVV0
ZjguY19zdHIoKSwgMSwgZGF0YVV0Zjguc2l6ZSgpLCBzdGRvdXQpICE9IGRhdGFVdGY4LnNpemUo
KSkKICAgICAgICAgICAgICAgICBGQVRBTCgiU2hvcnQgd3JpdGUgdG8gc3Rkb3V0LCBkaXNrIGZ1
bGw/XG4iKTsKQEAgLTYyMSwxMCArNjE0LDEwIEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKICAg
ICAgICAgICAgIGlmIChtX3BhcmFtcy5kZWJ1Z1JlbmRlclRyZWUpCiAgICAgICAgICAgICAgICAg
cmVuZGVyVGV4dEJlaGF2aW9yIHw9IFdlYkZyYW1lOjpSZW5kZXJBc1RleHREZWJ1ZzsKICAgICAg
ICAgICAgIHByaW50ZigiJXMiLCBmcmFtZS0+cmVuZGVyVHJlZUFzVGV4dChyZW5kZXJUZXh0QmVo
YXZpb3IpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUgPSBtX3Rl
c3RSdW5uZXItPnNob3VsZER1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAg
ICAgICBib29sIHJlY3Vyc2l2ZSA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hv
dWxkRHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMoKTsKICAgICAgICAgICAgIGR1bXBGcmFt
ZVNjcm9sbFBvc2l0aW9uKGZyYW1lLCByZWN1cnNpdmUpOwogICAgICAgICB9Ci0gICAgICAgIGlm
IChtX3Rlc3RSdW5uZXItPnNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSkKKyAgICAgICAgaWYg
KG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlz
dCgpKQogICAgICAgICAgICAgcHJpbnRmKCIlcyIsIGR1bXBBbGxCYWNrRm9yd2FyZExpc3RzKCku
Y19zdHIoKSk7CiAgICAgfQogICAgIGlmIChkdW1wZWRBbnl0aGluZyAmJiBtX3BhcmFtcy5wcmlu
dFNlcGFyYXRvcnMpCkBAIC02MzYsMTggKzYyOSwxOCBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgp
CiAgICAgICAgIC8vIHN0ZG91dC4KICAgICAgICAgZHVtcGVkQW55dGhpbmcgPSB0cnVlOwogICAg
ICAgICBtX3dlYlZpZXctPmxheW91dCgpOwotICAgICAgICBpZiAobV90ZXN0UnVubmVyLT50ZXN0
UmVwYWludCgpKSB7CisgICAgICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkt
PnRlc3RSZXBhaW50KCkpIHsKICAgICAgICAgICAgIFdlYlNpemUgdmlld1NpemUgPSBtX3dlYlZp
ZXctPnNpemUoKTsKICAgICAgICAgICAgIGludCB3aWR0aCA9IHZpZXdTaXplLndpZHRoOwogICAg
ICAgICAgICAgaW50IGhlaWdodCA9IHZpZXdTaXplLmhlaWdodDsKLSAgICAgICAgICAgIGlmICht
X3Rlc3RSdW5uZXItPnN3ZWVwSG9yaXpvbnRhbGx5KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3Rl
c3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnN3ZWVwSG9yaXpvbnRhbGx5KCkpIHsKICAgICAg
ICAgICAgICAgICBmb3IgKFdlYlJlY3QgY29sdW1uKDAsIDAsIDEsIGhlaWdodCk7IGNvbHVtbi54
IDwgd2lkdGg7IGNvbHVtbi54KyspCiAgICAgICAgICAgICAgICAgICAgIG1fd2ViVmlld0hvc3Qt
PnBhaW50UmVjdChjb2x1bW4pOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICBmb3IgKFdlYlJlY3QgbGluZSgwLCAwLCB3aWR0aCwgMSk7IGxpbmUueSA8IGhlaWdodDsgbGlu
ZS55KyspCiAgICAgICAgICAgICAgICAgICAgIG1fd2ViVmlld0hvc3QtPnBhaW50UmVjdChsaW5l
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChtX3Rlc3RSdW5uZXItPmlzUHJp
bnRpbmcoKSkKKyAgICAgICAgfSBlbHNlIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVy
KCktPmlzUHJpbnRpbmcoKSkKICAgICAgICAgICAgIG1fd2ViVmlld0hvc3QtPnBhaW50UGFnZXNX
aXRoQm91bmRhcmllcygpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3dlYlZpZXdIb3N0
LT5wYWludEludmFsaWRhdGVkUmVnaW9uKCk7CkBAIC02NTUsNyArNjQ4LDcgQEAgdm9pZCBUZXN0
U2hlbGw6OmR1bXAoKQogICAgICAgICAvLyBTZWUgaWYgd2UgbmVlZCB0byBkcmF3IHRoZSBzZWxl
Y3Rpb24gYm91bmRzIHJlY3QuIFNlbGVjdGlvbiBib3VuZHMKICAgICAgICAgLy8gcmVjdCBpcyB0
aGUgcmVjdCBlbmNsb3NpbmcgdGhlIChwb3NzaWJseSB0cmFuc2Zvcm1lZCkgc2VsZWN0aW9uLgog
ICAgICAgICAvLyBUaGUgcmVjdCBzaG91bGQgYmUgZHJhd24gYWZ0ZXIgZXZlcnl0aGluZyBpcyBs
YWlkIG91dCBhbmQgcGFpbnRlZC4KLSAgICAgICAgaWYgKG1fdGVzdFJ1bm5lci0+c2hvdWxkRHVt
cFNlbGVjdGlvblJlY3QoKSkgeworICAgICAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1
bm5lcigpLT5zaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpKSB7CiAgICAgICAgICAgICAvLyBJZiB0
aGVyZSBpcyBhIHNlbGVjdGlvbiByZWN0IC0gZHJhdyBhIHJlZCAxcHggYm9yZGVyIGVuY2xvc2lu
ZyByZWN0CiAgICAgICAgICAgICBXZWJSZWN0IHdyID0gZnJhbWUtPnNlbGVjdGlvbkJvdW5kc1Jl
Y3QoKTsKICAgICAgICAgICAgIGlmICghd3IuaXNFbXB0eSgpKSB7CkBAIC03NTIsOCArNzQ1LDYg
QEAgdm9pZCBUZXN0U2hlbGw6OmJpbmRKU09iamVjdHNUb1dpbmRvdyhXZWJGcmFtZSogZnJhbWUp
CiAgICAgICAgIG1fZGV2VG9vbHNUZXN0SW50ZXJmYWNlcy0+YmluZFRvKGZyYW1lKTsKICAgICBl
bHNlCiAgICAgICAgIG1fdGVzdEludGVyZmFjZXMtPmJpbmRUbyhmcmFtZSk7Ci0gICAgbV90ZXN0
UnVubmVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJ0ZXN0
UnVubmVyIikpOwotICAgIG1fdGVzdFJ1bm5lci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2Vi
U3RyaW5nOjpmcm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7CiB9CiAKIFdlYlZpZXdI
b3N0KiBUZXN0U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJs
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCAzODk4OWJk
M2RjYjI1NGE1ZmI2YTQwMTE5YzlhMTllYTYxZGMzODVmLi42ZjhiYjkxOWZjYmQwNmU2MjVmYzQ3
MTIyOTUxMTJkMGE3NGZkMmZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuaApAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2Vu
dGVyLmgiCiAjaW5jbHVkZSAiVGVzdEV2ZW50UHJpbnRlci5oIgotI2luY2x1ZGUgIlRlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1
ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAiV2ViVmlld0hvc3QuaCIKQEAgLTg0
LDcgKzgzLDcgQEAgcHVibGljOgogICAgIFdlYktpdDo6V2ViVmlldyogd2ViVmlldygpIGNvbnN0
IHsgcmV0dXJuIG1fd2ViVmlldzsgfQogICAgIC8vIFJldHVybnMgdGhlIGhvc3QgZm9yIHRoZSBt
YWluIFdlYlZpZXcuCiAgICAgV2ViVmlld0hvc3QqIHdlYlZpZXdIb3N0KCkgY29uc3QgeyByZXR1
cm4gbV93ZWJWaWV3SG9zdC5nZXQoKTsgfQotICAgIFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5u
ZXIqIHRlc3RSdW5uZXIoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RSdW5uZXIuZ2V0KCk7IH0KKyAg
ICBXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgY29uc3QgeyByZXR1
cm4gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpOyB9CiAgICAgV2ViVGVzdFJ1bm5lcjo6
V2ViRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0SW50ZXJm
YWNlcy0+ZXZlbnRTZW5kZXIoKTsgfQogICAgIFdlYlRlc3RSdW5uZXI6OldlYkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1f
dGVzdEludGVyZmFjZXMtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCk7IH0KICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKQEAgLTEwOCw5ICsxMDcsNiBAQCBwdWJsaWM6CiAgICAgaW50IG5hdmln
YXRpb25FbnRyeUNvdW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEZvY3VzKFdlYktpdDo6V2Vi
V2lkZ2V0KiwgYm9vbCBlbmFibGUpOwotICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVz
dENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJ
c1BlbmRpbmcpICYmIHRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxi
YWNrcygpOyB9Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29u
c3QgIHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJc1BlbmRpbmcpICYmIHRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOyB9Ci0gICAgYm9v
bCBzaG91bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0ICB7IHJldHVybiAo
bV90ZXN0SXNQcmVwYXJpbmcgfHwgbV90ZXN0SXNQZW5kaW5nKSAmJiB0ZXN0UnVubmVyKCktPnNo
b3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7IH0KIAogICAgIC8vIENhbGxlZCBi
eSB0aGUgRFJUVGVzdFJ1bm5lciB0byBzaWduYWwgdGVzdCBjb21wbGV0aW9uLgogICAgIHZvaWQg
dGVzdEZpbmlzaGVkKCk7CkBAIC0yMDksNyArMjA1LDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8
RFJURGV2VG9vbHNDbGllbnQ+IG1fZHJ0RGV2VG9vbHNDbGllbnQ7CiAgICAgT3duUHRyPFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzPiBtX3Rlc3RJbnRlcmZhY2VzOwogICAgIE93blB0
cjxXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlcz4gbV9kZXZUb29sc1Rlc3RJbnRlcmZh
Y2VzOwotICAgIE93blB0cjxXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyPiBtX3Rlc3RSdW5uZXI7
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9O
UykKICAgICBPd25QdHI8Tm90aWZpY2F0aW9uUHJlc2VudGVyPiBtX25vdGlmaWNhdGlvblByZXNl
bnRlcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185964</attachid>
            <date>2013-02-01 00:20:51 -0800</date>
            <delta_ts>2013-02-01 06:01:19 -0800</delta_ts>
            <desc>Patch for landing for realz</desc>
            <filename>bug-108464-20130201091734.patch</filename>
            <type>text/plain</type>
            <size>58636</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZmYWE3MmQzNmMxYWI2M2IxMTM5MzU1YjVlNGVhMjEz
YWUzNTk4Zi4uY2NiYzNiYTE2NGIwNjdiYzkxYmI5ZThlYzM1YjlmNDdlZTEwYmI0MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
MiBAQAorMjAxMy0wMS0zMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIG1vdmUgb3duZXJzaGlwIG9mIFRlc3RSdW5uZXIgb2JqZWN0
IHRvIFRlc3RJbnRlcmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgIEJlZm9yZSwgVGVzdFNoZWxsIG93bmVkIHRoZSBjbGFzcy4gVGhpcyBhbHNvIHJlbW92
ZXMgdGhlIGxhc3QgaW5jbHVkZQorICAgICAgICBmcm9tIER1bXBSZW5kZXJUcmVlIHRvIFRlc3RS
dW5uZXIvc3JjLgorCisgICAgICAgIFRoaXMgYWxzbyBkZWxldGVzIFRlc3REZWxlZ2F0ZSBhbmQg
dXNlcyBXZWJUZXN0RGVsZWdhdGUgZXZlcnl3aGVyZQorICAgICAgICBpbnN0ZWFkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5o
OgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVt
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRE
ZWxlZ2F0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjptYWtlTWVu
dUl0ZW1TdHJpbmdzRm9yKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9FdmVudFNlbmRlci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
RXZlbnRTZW5kZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Okdh
bWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXIpOgorICAgICAgICAoR2FtZXBhZENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNl
czo6flRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZh
Y2VzOjpzZXRXZWJWaWV3KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNlczo6
YmluZFRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpyZXNldEFs
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcik6CisgICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OlRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKFdl
YlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRUZXN0SXNSdW5u
aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0UnVubmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXIpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFj
a3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEFz
VGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzZXRTaG91bGRE
dW1wQXNUZXh0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3Vs
ZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RS
dW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDaGls
ZEZyYW1lc0FzVGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpz
aG91bGREdW1wQXNBdWRpbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjphdWRpb0RhdGEpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0UnVubmVyOjpzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnN0
b3BQcm92aXNpb25hbEZyYW1lTG9hZHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wQ3JlYXRlVmlldyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpjYW5PcGVuV2luZG93cyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJj
ZVJlcXVlc3RDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5l
cjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6d2ViUGVybWlzc2lvbnMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcyk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUHJvZ3Jlc3NGaW5p
c2hlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNo
b3VsZER1bXBCYWNrRm9yd2FyZExpc3QpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6ZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjp0ZXN0UmVwYWludCk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxseSk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNldFRp
dGxlVGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjpodHRwSGVhZGVyc1RvQ2xlYXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1
bm5lcjo6c2hvdWxkQmxvY2tSZWRpcmVjdHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6d2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzZXRUb3BMb2FkaW5nRnJhbWUpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnBvbGljeURlbGVnYXRlRG9uZSk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdh
dGVJc1Blcm1pc3NpdmUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6
cG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChU
ZXN0U2hlbGw6OmNyZWF0ZU1haW5XaW5kb3cpOgorICAgICAgICAoVGVzdFNoZWxsOjp+VGVzdFNo
ZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QpOgorICAgICAgICAoVGVzdFNo
ZWxsOjpyZXNldFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKFRlc3RTaGVsbDo6ZHVtcCk6Cisg
ICAgICAgIChUZXN0U2hlbGw6OmJpbmRKU09iamVjdHNUb1dpbmRvdyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGw6OnRl
c3RSdW5uZXIpOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMy0wMS0zMSAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdDI6IHByb3ZpZGUgbmV3
IGJ1bmRsZSBBUElzIHRvIGFsbG93IGJ1bmRsZSBjbGllbnRzIHRvIGJlIG5vdGlmaWVkIG9mIHBh
c3RlYm9hcmQgYWNjZXNzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkK
aW5kZXggZTdlN2EyNzJjMDE0ZDNmZjY5MTFmZGZkYzQ2MmExNTQxMGMwM2JkMS4uMTM5YjhlYWZk
OTA2NmExZDEyODAxZjdhNThmMzJjM2RkMDNjMWZhMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5neXBpCkBAIC05Niw2ICs5Niw3IEBACiAgICAgICAgICAgICAnY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UGx1Z2luLmNwcCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFJ1bm5lci5jcHAnLAogICAgICAgICBdLAog
ICAgICAgICAndGVzdF9wbHVnaW5fZmlsZXMnOiBbCiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBl
UGx1Z0luL1BsdWdpbk9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFjZXMuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RJbnRlcmZh
Y2VzLmgKaW5kZXggNGVhYzQyYzZkMGNiZjY5OWE3ZWMwODcyODM1MmI0YzA3NTI0NTU3MC4uOTVk
ZWE2ZDgzYmYyZTkzZTY2ZDE2MzRkM2M5NzcxYWI5NWVkODBlMyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFj
ZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0SW50ZXJmYWNlcy5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICBXZWJB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKTsKICAgICBX
ZWJFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKICAgICBXZWJUZXN0UnVubmVyKiB0ZXN0UnVu
bmVyKCk7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgVGVzdFJ1bm5lciBpcyBjb21w
bGV0ZS4KLSAgICB2b2lkIHNldFRlc3RSdW5uZXIoV2ViVGVzdFJ1bm5lciopOwogCiBwcml2YXRl
OgogICAgIGNsYXNzIEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCmluZGV4
IDRhZTYzNDkwZmRiNzIzM2QxZTQ5NzdmZDJhMWU5OGIwODQ2MjVmNmMuLmE5N2I5MDdiZTk4YmUy
NGI2MWJhZmUwODkxNGE4YjgzODU1NjdlYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVy
LmgKQEAgLTM4LDU3ICszOCw2NCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJBcnJh
eUJ1ZmZlclZpZXc7CiBjbGFzcyBXZWJQZXJtaXNzaW9uQ2xpZW50OworY2xhc3MgV2ViRnJhbWU7
CiB9CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAotLy8gRklYTUU6IE9uY2UgdGhlIFRl
c3RSdW5uZXIgY2xhc3MgaXMgY29tcGxldGUsIHRoaXMgY2xhc3Mgc2hvdWxkIHRha2UgYQotLy8g
VGVzdFJ1bm5lciogYXMgY3RvciBhcmd1bWVudCwgYW5kIG5vdCBoYXZlIGRlZmF1bHQgaW1wbGVt
ZW50YXRpb25zLgorY2xhc3MgVGVzdFJ1bm5lcjsKKwogY2xhc3MgV2ViVGVzdFJ1bm5lciB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCkgeyB9Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9vbCkg
eyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVQaXhl
bFJlc3VsdHMoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBDaGlsZEZyYW1l
U2Nyb2xsUG9zaXRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlv
RGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCkgeyB9Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3RvcFByb3Zpc2lvbmFsRnJhbWVM
b2FkcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1
bXBUaXRsZUNoYW5nZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREdW1wQ3JlYXRlVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlcXVlc3RD
YWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25z
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wU3RhdHVz
Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWZlck1haW5SZXNvdXJjZURhdGFMb2Fk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNl
bGVjdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCB0
ZXN0UmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHN3
ZWVwSG9yaXpvbnRhbGx5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNQcmludGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYktp
dDo6V2ViVGV4dERpcmVjdGlvbikgeyB9Ci0gICAgdmlydHVhbCBjb25zdCBzdGQ6OnNldDxzdGQ6
OnN0cmluZz4qIGh0dHBIZWFkZXJzVG9DbGVhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQmxvY2tSZWRpcmVjdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCB3aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKSB7IH0KLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJh
bWUqIHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcG9saWN5RGVsZWdhdGVEb25lKCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHBvbGljeURlbGVn
YXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNpZiBXRUJURVNUUlVOTkVSX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGljaXQgV2ViVGVz
dFJ1bm5lcihUZXN0UnVubmVyKik7CisjZW5kaWYKKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
QXNUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9v
bCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
cygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgdGVzdFJlcGFpbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFs
bHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oV2ViS2l0OjpXZWJU
ZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiog
aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEJsb2Nr
UmVkaXJlY3RzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3Vs
ZFJldHVybk51bGwoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJhbWUq
IHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBwb2xpY3lEZWxlZ2F0
ZURvbmUoKTsKKyAgICB2aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHBvbGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBUZXN0UnVubmVyKiBtX3ByaXZhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlckNocm9taXVtLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uY3BwCmluZGV4
IGQ5ZGJhMzNhYTMyNDI5OGRiMDBjYjg3OTA1M2YwMDM0Njg3ZTkxMzkuLjkwM2QyOWNjMWIwYjRi
YjU5ZjViMWI2NDE2MTcxMDk1ZjkzYmZiODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21p
dW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uY3BwCkBAIC0zMSwxMSArMzEsMTEgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNo
cm9taXVtLmgiCiAKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIKICNpbmNsdWRlICJXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0
ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViQ1N0cmluZy5o
PgogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9t
aXVtLmgKaW5kZXggYTk3MjhjNjE1YmI0ZjUwNWZlMWVjYTZhMmY2NGNmZmFlOTRhMTU1Yi4uOTEz
MDA1ODAzOGFjZDZiMjdkNTRjOWFjMzM4MjFkMjE2MTE3YTQ3MyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJDaHJvbWl1bS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaApAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKLWNsYXNz
IFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3MgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CkBAIC02MSw3
ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3Qg
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiB0YXJnZXQsIGNvbnN0IGNoYXIqIG5vdGlm
aWNhdGlvbk5hbWUpOwogCi0gICAgdm9pZCBzZXREZWxlZ2F0ZShUZXN0RGVsZWdhdGUqIGRlbGVn
YXRlKSB7IG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsgfQorICAgIHZvaWQgc2V0RGVsZWdhdGUoV2Vi
VGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KICAgICB2
b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmlldyA9IHdl
YlZpZXc7IH0KIAogcHJpdmF0ZToKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dmVjdG9yPENwcFZhcmlhbnQ+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzOwogCi0gICAgVGVz
dERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsK
ICAgICBXZWJLaXQ6OldlYlZpZXcqIG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcAppbmRleCBkNTZhMWE4NDY4MzljNWI5N2IwMjVhMTQ4MTc1NDE2ZDc2MWI2NjA1Li41NjBl
YThlMjQzOWNiODEyNWU5MzViM2QwMmY2YzFiOWMxMmQ2ZTNiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5k
ZXIuY3BwCkBAIC00NSwxMCArNDUsMTAgQEAKIAogI2luY2x1ZGUgIktleUNvZGVNYXBwaW5nLmgi
CiAjaW5jbHVkZSAiTW9ja1NwZWxsQ2hlY2suaCIKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIK
ICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKKyNpbmNsdWRlICJXZWJUZXN0RGVs
ZWdhdGUuaCIKICNpbmNsdWRlICJXZWJUb3VjaFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgogI2luY2x1ZGUgPHB1YmxpYy9XZWJEcmFnRGF0YS5oPgpAQCAtMTI3LDcgKzEyNyw3IEBAIGlu
bGluZSBib29sIG91dHNpZGVNdWx0aUNsaWNrUmFkaXVzKGNvbnN0IFdlYlBvaW50JiBhLCBjb25z
dCBXZWJQb2ludCYgYikKIC8vIGRlcGVuZGVudCAoZS5nLiwgZHJhZ2dpbmcgaGFzIGEgdGltZW91
dCB2cyBzZWxlY3Rpb24pLgogdWludDMyIHRpbWVPZmZzZXRNcyA9IDA7CiAKLWRvdWJsZSBnZXRD
dXJyZW50RXZlbnRUaW1lU2VjKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCitkb3VibGUgZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYyhXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIHJldHVy
biAoZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpICsgdGltZU9mZnNldE1z
KSAvIDEwMDAuMDsKIH0KQEAgLTgxMiw3ICs4MTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBs
YXlTYXZlZEV2ZW50cygpCiAvLyAgIGFsc28gbWFrZXMgc2Vuc2UuIFRoaXMgZnVuY3Rpb24gaXMg
ZG9pbmcgc3VjaCBmb3Igc29tZSBmbGFncy4KIC8vIC0gU29tZSB0ZXN0IGV2ZW4gY2hlY2tzIGFj
dHVhbCBzdHJpbmcgY29udGVudC4gU28gcHJvdmlkaW5nIGl0IHdvdWxkIGJlIGFsc28gaGVscGZ1
bC4KIC8vCi1zdGF0aWMgVmVjdG9yPFdlYlN0cmluZz4gbWFrZU1lbnVJdGVtU3RyaW5nc0ZvcihX
ZWJDb250ZXh0TWVudURhdGEqIGNvbnRleHRNZW51LCBUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQor
c3RhdGljIFZlY3RvcjxXZWJTdHJpbmc+IG1ha2VNZW51SXRlbVN0cmluZ3NGb3IoV2ViQ29udGV4
dE1lbnVEYXRhKiBjb250ZXh0TWVudSwgV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKICAg
ICAvLyBUaGVzZSBjb25zdGFudHMgYXJlIGJhc2VkIG9uIFNhZmFyaSdzIGNvbnRleHQgbWVudSBi
ZWNhdXNlIHRlc3RzIGFyZSBtYWRlIGZvciBpdC4KICAgICBzdGF0aWMgY29uc3QgY2hhciogbm9u
RWRpdGFibGVNZW51U3RyaW5nc1tdID0geyAiQmFjayIsICJSZWxvYWQgUGFnZSIsICJPcGVuIGlu
IERhc2hiYW9yZCIsICI8c2VwYXJhdG9yPiIsICJWaWV3IFNvdXJjZSIsICJTYXZlIFBhZ2UgQXMi
LCAiUHJpbnQgUGFnZSIsICJJbnNwZWN0IEVsZW1lbnQiLCAwIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIu
aAppbmRleCAzYzIxZWY5Zjg0ODA1MmFjNzY4MTU1NThkODZiYTlhNzM5MDg3NjM1Li40YmYyODdl
NjNjMDEzZGM5ZDBhMDRjNDBmYzE0YWEyNzVjOTUyNjgxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgK
QEAgLTUwLDEzICs1MCwxMyBAQCBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1
bm5lciB7CiAKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAog
Y2xhc3MgRXZlbnRTZW5kZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CiAgICAg
RXZlbnRTZW5kZXIoKTsKIAotICAgIHZvaWQgc2V0RGVsZWdhdGUoVGVzdERlbGVnYXRlKiBkZWxl
Z2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KKyAgICB2b2lkIHNldERlbGVnYXRlKFdl
YlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9CiAgICAg
dm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcgPSB3
ZWJWaWV3OyB9CiAKICAgICAvLyBSZXNldHMgc29tZSBzdGF0aWMgdmFyaWFibGUgc3RhdGUuCkBA
IC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlRhc2tMaXN0IG1fdGFza0xpc3Q7
CiAKLSAgICBUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CisgICAgV2ViVGVzdERlbGVnYXRlKiBt
X2RlbGVnYXRlOwogICAgIFdlYktpdDo6V2ViVmlldyogbV93ZWJWaWV3OwogCiAgICAgLy8gTG9j
YXRpb24gb2YgdGhlIHRvdWNoIHBvaW50IHRoYXQgaW5pdGlhdGVkIGEgZ2VzdHVyZS4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVw
YWRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcAppbmRleCBlOWMyNDZhZjI1ZGRjZTg4OGY2ZWZl
ZWJmNWYwNjAyY2QyZTdlZDdmLi4yNjU0NDAwZWU0M2EzMzQ0ZDNiODRmNmEyN2VmNTc1YTcxMDNj
M2VhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHYW1lcGFkQ29udHJvbGxlci5o
IgotI2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5o
IgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgR2Ft
ZXBhZENvbnRyb2xsZXI6OmJpbmRUb0phdmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBX
ZWJTdHJpbmcmIGNsYXNzCiAgICAgQ3BwQm91bmRDbGFzczo6YmluZFRvSmF2YXNjcmlwdChmcmFt
ZSwgY2xhc3NuYW1lKTsKIH0KIAotdm9pZCBHYW1lcGFkQ29udHJvbGxlcjo6c2V0RGVsZWdhdGUo
VGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKK3ZvaWQgR2FtZXBhZENvbnRyb2xsZXI6OnNldERlbGVn
YXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgbV9kZWxlZ2F0ZSA9IGRlbGVn
YXRlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmgKaW5kZXggZDMwZDUwNjc5YWJi
ZTZiZjJhZWEwN2JmYTI2OTNjYTkxMmMxMmJiMi4uNWRjYWI2Y2Y0NmYxMjM2ZmY1Mzc3MDFjYjMz
YzkwOGQyMGQ5ODU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oCkBAIC00MSwx
NCArNDEsMTQgQEAgY2xhc3MgV2ViRnJhbWU7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsK
IAotY2xhc3MgVGVzdERlbGVnYXRlOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBH
YW1lcGFkQ29udHJvbGxlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBH
YW1lcGFkQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBiaW5kVG9KYXZhc2NyaXB0KFdlYktpdDo6
V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgY2xhc3NuYW1lKTsKLSAgICB2b2lk
IHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVz
dERlbGVnYXRlKik7CiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgpAQCAtNjQsNyArNjQs
NyBAQCBwcml2YXRlOgogCiAgICAgV2ViS2l0OjpXZWJHYW1lcGFkcyBtX2dhbWVwYWRzOwogCi0g
ICAgVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxl
Z2F0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDljZDlhZWY2NWU1MmUxYjY1ZTA5Y2E2ZGJkYzZhNDY1ZTVhZDJhZTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXN0RGVsZWdhdGVfaAotI2RlZmluZSBUZXN0RGVs
ZWdhdGVfaAotCi0jaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgotI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJWZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1zdHJ1Y3QgV2ViQ29udGV4dE1l
bnVEYXRhOwotY2xhc3MgV2ViR2FtZXBhZHM7Ci19Ci0KLW5hbWVzcGFjZSBXZWJUZXN0UnVubmVy
IHsKLQotY2xhc3MgV2ViVGFzazsKLQotY2xhc3MgVGVzdERlbGVnYXRlIHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZXh0TWVudURhdGEoKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNsZWFyRWRpdENvbW1hbmQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRDb21t
YW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpID0g
MDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1l
bnVEYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRHYW1lcGFkRGF0YShjb25z
dCBXZWJLaXQ6OldlYkdhbWVwYWRzJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcmludE1lc3Nh
Z2UoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soV2ViVGFzayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdl
YlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5n
IHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktp
dDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpID0gMDsKLSAgICB2aXJ0dWFsIGxvbmcg
bG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJL
aXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6
OnN0cmluZyYgcGF0aCkgPSAwOwotfTsKLQotfQotCi0jZW5kaWYgLy8gVGVzdERlbGVnYXRlX2gK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA1MDQwNzY1NDFhYzU2OTQyYjhmODdj
MWIxNDAwOThlYWNlNTY2NDkwLi4wN2M0NzY2YzE1YjViOTZkNjEwZmJhNzQyNWU3YTI4MzQ0NTkz
Zjg3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkV2
ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiR2FtZXBhZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJU
ZXN0UnVubmVyLmgiCiAjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJTdHJpbmcuaD4KIApAQCAtNDksNiArNTAsNyBAQCBUZXN0SW50ZXJmYWNlczo6
VGVzdEludGVyZmFjZXMoKQogICAgIG1fZXZlbnRTZW5kZXIgPSBhZG9wdFB0cihuZXcgRXZlbnRT
ZW5kZXIoKSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBHYW1lcGFk
Q29udHJvbGxlcigpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcg
VGV4dElucHV0Q29udHJvbGxlcigpKTsKKyAgICBtX3Rlc3RSdW5uZXIgPSBhZG9wdFB0cihuZXcg
VGVzdFJ1bm5lcigpKTsKIH0KIAogVGVzdEludGVyZmFjZXM6On5UZXN0SW50ZXJmYWNlcygpCkBA
IC01NywxMSArNTksMTMgQEAgVGVzdEludGVyZmFjZXM6On5UZXN0SW50ZXJmYWNlcygpCiAgICAg
bV9ldmVudFNlbmRlci0+c2V0V2ViVmlldygwKTsKICAgICAvLyBtX2dhbWVwYWRDb250cm9sbGVy
IGRvZXNuJ3QgZGVwZW5kIG9uIFdlYlZpZXcuCiAgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyLT5z
ZXRXZWJWaWV3KDApOworICAgIG1fdGVzdFJ1bm5lci0+c2V0V2ViVmlldygwKTsKIAogICAgIG1f
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldERlbGVnYXRlKDApOwogICAgIG1fZXZlbnRTZW5k
ZXItPnNldERlbGVnYXRlKDApOwogICAgIG1fZ2FtZXBhZENvbnRyb2xsZXItPnNldERlbGVnYXRl
KDApOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBUZXN0
RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9u
IFdlYlRlc3REZWxlZ2F0ZS4KKyAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKDApOwogfQog
CiB2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCkBAIC03
MCwxNCArNzQsMTYgQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0V2ViVmlldyhXZWJWaWV3KiB3
ZWJWaWV3KQogICAgIG1fZXZlbnRTZW5kZXItPnNldFdlYlZpZXcod2ViVmlldyk7CiAgICAgLy8g
bV9nYW1lcGFkQ29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBXZWJWaWV3LgogICAgIG1fdGV4
dElucHV0Q29udHJvbGxlci0+c2V0V2ViVmlldyh3ZWJWaWV3KTsKKyAgICBtX3Rlc3RSdW5uZXIt
PnNldFdlYlZpZXcod2ViVmlldyk7CiB9CiAKLXZvaWQgVGVzdEludGVyZmFjZXM6OnNldERlbGVn
YXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXREZWxl
Z2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIG1fYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXItPnNldERlbGVnYXRlKGRlbGVnYXRlKTsKICAgICBtX2V2ZW50U2VuZGVyLT5zZXRE
ZWxlZ2F0ZShkZWxlZ2F0ZSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlci0+c2V0RGVsZWdhdGUo
ZGVsZWdhdGUpOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBv
biBUZXN0RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVw
ZW5kIG9uIFdlYlRlc3REZWxlZ2F0ZS4KKyAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKGRl
bGVnYXRlKTsKIH0KIAogdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRvKFdlYkZyYW1lKiBmcmFt
ZSkKQEAgLTg2LDYgKzkyLDggQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRvKFdlYkZyYW1l
KiBmcmFtZSkKICAgICBtX2V2ZW50U2VuZGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJT
dHJpbmc6OmZyb21VVEY4KCJldmVudFNlbmRlciIpKTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVy
LT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJnYW1lcGFkQ29u
dHJvbGxlciIpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQo
ZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoInRleHRJbnB1dENvbnRyb2xsZXIiKSk7CisgICAg
bV90ZXN0UnVubmVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4
KCJ0ZXN0UnVubmVyIikpOworICAgIG1fdGVzdFJ1bm5lci0+YmluZFRvSmF2YXNjcmlwdChmcmFt
ZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7CiB9CiAKIHZv
aWQgVGVzdEludGVyZmFjZXM6OnJlc2V0QWxsKCkKQEAgLTk0LDYgKzEwMiwxMiBAQCB2b2lkIFRl
c3RJbnRlcmZhY2VzOjpyZXNldEFsbCgpCiAgICAgbV9ldmVudFNlbmRlci0+cmVzZXQoKTsKICAg
ICBtX2dhbWVwYWRDb250cm9sbGVyLT5yZXNldCgpOwogICAgIC8vIG1fdGV4dElucHV0Q29udHJv
bGxlciBkb2Vzbid0IGhhdmUgYW55IHN0YXRlIHRvIHJlc2V0LgorICAgIG1fdGVzdFJ1bm5lci0+
cmVzZXQoKTsKK30KKwordm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0VGVzdElzUnVubmluZyhib29s
IHJ1bm5pbmcpCit7CisgICAgbV90ZXN0UnVubmVyLT5zZXRUZXN0SXNSdW5uaW5nKHJ1bm5pbmcp
OwogfQogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogVGVzdEludGVyZmFjZXM6OmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKCkKQEAgLTEwNiw0ICsxMjAsOSBAQCBFdmVudFNlbmRlciogVGVzdElu
dGVyZmFjZXM6OmV2ZW50U2VuZGVyKCkKICAgICByZXR1cm4gbV9ldmVudFNlbmRlci5nZXQoKTsK
IH0KIAorVGVzdFJ1bm5lciogVGVzdEludGVyZmFjZXM6OnRlc3RSdW5uZXIoKQoreworICAgIHJl
dHVybiBtX3Rlc3RSdW5uZXIuZ2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5o
CmluZGV4IGE3ZGE0MzI4MzcxNzRkMmVlYTE2ODVhZmZlMTJhY2M5MzJiYjYwNTcuLjk5NmYzZDc4
ODM2ZDUwMTYzYjdlZDgwOTU1MTA3MDA2NDg4NjBhZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFj
ZXMuaApAQCAtNDMsOCArNDMsOSBAQCBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKIGNsYXNzIEV2ZW50U2VuZGVyOwogY2xhc3MgR2FtZXBh
ZENvbnRyb2xsZXI7Ci1jbGFzcyBUZXN0RGVsZWdhdGU7CitjbGFzcyBUZXN0UnVubmVyOwogY2xh
c3MgVGV4dElucHV0Q29udHJvbGxlcjsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3Mg
VGVzdEludGVyZmFjZXMgewogcHVibGljOgpAQCAtNTIsMTggKzUzLDIxIEBAIHB1YmxpYzoKICAg
ICB+VGVzdEludGVyZmFjZXMoKTsKIAogICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6OldlYlZp
ZXcqKTsKLSAgICB2b2lkIHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0
RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7CiAgICAgdm9pZCBiaW5kVG8oV2ViS2l0OjpXZWJG
cmFtZSopOwogICAgIHZvaWQgcmVzZXRBbGwoKTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmco
Ym9vbCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKTsKICAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKKyAgICBUZXN0UnVubmVy
KiB0ZXN0UnVubmVyKCk7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOwogICAgIE93blB0cjxFdmVudFNlbmRl
cj4gbV9ldmVudFNlbmRlcjsKICAgICBPd25QdHI8R2FtZXBhZENvbnRyb2xsZXI+IG1fZ2FtZXBh
ZENvbnRyb2xsZXI7CiAgICAgT3duUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1fdGV4dElucHV0
Q29udHJvbGxlcjsKKyAgICBPd25QdHI8VGVzdFJ1bm5lcj4gbV90ZXN0UnVubmVyOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAwOWY1ZDk2NzFkZjM2MTRkZDk5NjI3MTVlMDE1
ZmFhMDJkNjU3MmU5Li4yMTk3YjRmNDYwMjdjOTgzYjk0NDgyZTU1ZWE5Y2ZiYjcxZjY2OWE2IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMTUzLDExICsxNTMsOSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OldvcmtRdWV1ZTo6YWRkV29yayhXb3JrSXRlbSogd29yaykKIAogVGVzdFJ1bm5lcjo6VGVz
dFJ1bm5lcigpCiAgICAgOiBtX3Rlc3RJc1J1bm5pbmcoZmFsc2UpCi0gICAgLCBtX2Nsb3NlUmVt
YWluaW5nV2luZG93cyh0cnVlKQogICAgICwgbV93b3JrUXVldWUodGhpcykKICAgICAsIG1fZGVs
ZWdhdGUoMCkKICAgICAsIG1fd2ViVmlldygwKQotICAgICwgbV90b3BMb2FkaW5nRnJhbWUoMCkK
ICAgICAsIG1faW50ZW50Q2xpZW50KGFkb3B0UHRyKG5ldyBFbXB0eVdlYkRlbGl2ZXJlZEludGVu
dENsaWVudCkpCiAgICAgLCBtX3dlYlBlcm1pc3Npb25zKGFkb3B0UHRyKG5ldyBXZWJQZXJtaXNz
aW9ucykpCiB7CkBAIC0zODYsMTEgKzM4NCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkK
ICAgICBXZWJGb250UmVuZGVyaW5nOjpzZXRTdWJwaXhlbFBvc2l0aW9uaW5nKGZhbHNlKTsKICNl
bmRpZgogCi0gICAgLy8gUmVzZXQgdGhlIGRlZmF1bHQgcXVvdGEgZm9yIGVhY2ggb3JpZ2luIHRv
IDVNQgotICAgIG1fZGVsZWdhdGUtPnNldERhdGFiYXNlUXVvdGEoNSAqIDEwMjQgKiAxMDI0KTsK
LSAgICBtX2RlbGVnYXRlLT5zZXREZXZpY2VTY2FsZUZhY3RvcigxKTsKLSAgICBtX2RlbGVnYXRl
LT5zZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsKLSAgICBtX2RlbGVnYXRlLT5zZXRMb2NhbGUo
IiIpOworICAgIGlmIChtX2RlbGVnYXRlKSB7CisgICAgICAgIC8vIFJlc2V0IHRoZSBkZWZhdWx0
IHF1b3RhIGZvciBlYWNoIG9yaWdpbiB0byA1TUIKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0RGF0
YWJhc2VRdW90YSg1ICogMTAyNCAqIDEwMjQpOworICAgICAgICBtX2RlbGVnYXRlLT5zZXREZXZp
Y2VTY2FsZUZhY3RvcigxKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0QWNjZXB0QWxsQ29va2ll
cyhmYWxzZSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnNldExvY2FsZSgiIik7CisgICAgfQogCiAg
ICAgbV9kdW1wRWRpdGluZ0NhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fZHVtcEFzVGV4dCA9IGZh
bHNlOwpAQCAtNDQwLDcgKzQ0MCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1f
dGFza0xpc3QucmV2b2tlQWxsKCk7CiAgICAgbV93b3JrUXVldWUucmVzZXQoKTsKIAotICAgIGlm
IChtX2Nsb3NlUmVtYWluaW5nV2luZG93cykKKyAgICBpZiAobV9jbG9zZVJlbWFpbmluZ1dpbmRv
d3MgJiYgbV9kZWxlZ2F0ZSkKICAgICAgICAgbV9kZWxlZ2F0ZS0+Y2xvc2VSZW1haW5pbmdXaW5k
b3dzKCk7CiAgICAgZWxzZQogICAgICAgICBtX2Nsb3NlUmVtYWluaW5nV2luZG93cyA9IHRydWU7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMjEzZmJmNGI5YWQxNWMxYWMxODRiYTNmNjMxZmFkZDYy
OTY5ODAzMC4uODI4ZmI0YmIwZjc5MjE1ZGQ1OGY3ODk0YzE3YzY4YTQ1ZmIwMDRlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuaApAQCAtMzcsMTEgKzM3LDE1IEBACiAjaW5jbHVkZSAiV2ViQXJyYXlCdWZm
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViVGFzay5oIgotI2luY2x1ZGUgIldlYlRlc3RSdW5uZXIuaCIKKyNpbmNsdWRlICJXZWJU
ZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgorI2luY2x1ZGUgPHNl
dD4KKyNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgeworY2xhc3MgV2ViQXJyYXlCdWZmZXJWaWV3OworY2xhc3MgV2ViUGVybWlzc2lv
bkNsaWVudDsKIGNsYXNzIFdlYlZpZXc7CiB9CiAKQEAgLTUwLDEyICs1NCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViVGVzdFJ1bm5lciB7CiBjbGFzcyBXZWJQZXJtaXNzaW9uczsKIGNsYXNzIFdlYlRlc3RE
ZWxlZ2F0ZTsKIAotY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzLCBwdWJs
aWMgV2ViVGVzdFJ1bm5lciB7CitjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENwcEJvdW5kQ2xh
c3MgewogcHVibGljOgogICAgIFRlc3RSdW5uZXIoKTsKICAgICB2aXJ0dWFsIH5UZXN0UnVubmVy
KCk7CiAKLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgbWV0aG9kIHRvIHRha2UgYSBUZXN0RGVs
ZWdhdGUqIGluc3RlYWQuCiAgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsK
ICAgICB2b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmll
dyA9IHdlYlZpZXc7IH0KIApAQCAtNjMsNTAgKzY2LDQ5IEBAIHB1YmxpYzoKIAogICAgIFdlYlRh
c2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKLSAgICAvLyBXZWJU
ZXN0UnVubmVyIGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXN0SXNSdW5u
aW5nKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wRWRpdGluZ0Nh
bGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQXNU
ZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1Rl
eHQoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxS
ZXN1bHRzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVy
YXRlUGl4ZWxSZXN1bHRzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNr
cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
VXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tz
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJLaXQ6Oldl
YlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0
YUxvYWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVj
dGlvblJlY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdGVzdFJlcGFpbnQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHkoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHRE
aXJlY3Rpb24oV2ViS2l0OjpXZWJUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEJsb2NrUmVkaXJlY3RzKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51
bGwoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6
V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBwb2xpY3lEZWxlZ2F0ZURvbmUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcG9s
aWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCk7Cisg
ICAgYm9vbCBzaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hv
dWxkRHVtcEFzVGV4dCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2hvdWxkRHVtcEFzVGV4dChib29s
KTsKKyAgICBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sKTsKKyAgICBib29sIHNob3VsZER1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBBc0F1ZGlvKCkg
Y29uc3Q7CisgICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlvRGF0YSgp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sKTsKKyAgICBib29s
IHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7CisgICAg
Ym9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRE
dW1wVGl0bGVDaGFuZ2VzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wQ3JlYXRlVmlldygp
IGNvbnN0OworICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICBib29sIHNob3Vs
ZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBS
ZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgV2ViS2l0OjpXZWJQZXJtaXNzaW9u
Q2xpZW50KiB3ZWJQZXJtaXNzaW9ucygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFN0YXR1
c0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjaygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNv
bnN0OworICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0OworICAgIGJv
b2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICBib29sIHRlc3RSZXBhaW50
KCkgY29uc3Q7CisgICAgYm9vbCBzd2VlcEhvcml6b250YWxseSgpIGNvbnN0OworICAgIGJvb2wg
aXNQcmludGluZygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxp
bmdCZWZvcmVVbmxvYWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihX
ZWJLaXQ6OldlYlRleHREaXJlY3Rpb24pOworICAgIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRCbG9ja1JlZGly
ZWN0cygpIGNvbnN0OworICAgIGJvb2wgd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCgp
IGNvbnN0OworICAgIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1lKFdlYktpdDo6V2ViRnJhbWUqLCBi
b29sKTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lKiB0b3BMb2FkaW5nRnJhbWUoKSBjb25zdDsKKyAg
ICB2b2lkIHBvbGljeURlbGVnYXRlRG9uZSgpOworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFi
bGVkKCkgY29uc3Q7CisgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0
OworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CisgICAg
Ym9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAgIGJvb2wgaXNTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogCiAgICAgLy8gQSBzaW5nbGUgaXRlbSBpbiB0aGUg
d29yayBxdWV1ZS4KICAgICBjbGFzcyBXb3JrSXRlbSB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50
ZXJmYWNlcy5jcHAKaW5kZXggYTUzYTA5ZWY4NDVhMjEwNmI0OTU3OTM2MzdlOGM0ZTg5MGNhNGNh
Yy4uMDkzZDdhNjJlMTRiMmZiYTgzMGM4YTI2NzE5N2UyOWI2NGQ4ZDNiMSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVy
ZmFjZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCiAKLSNpbmNsdWRlICJUZXN0
RGVsZWdhdGUuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUgIldlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKQEAg
LTQ3LDcgKzQ2LDcgQEAgdXNpbmcgV2ViS2l0OjpXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVz
dFJ1bm5lciB7CiAKLWNsYXNzIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCA6IHB1YmxpYyBU
ZXN0RGVsZWdhdGUgeworY2xhc3MgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsIHsKIHB1Ymxp
YzoKICAgICBJbnRlcm5hbCgpOwogICAgIHZpcnR1YWwgfkludGVybmFsKCk7CkBAIC01OSwyMSAr
NTgsNyBAQCBwdWJsaWM6CiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1f
d2ViVmlldzsgfQogICAgIFdlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcigpIHsgcmV0dXJuICZtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOyB9CiAgICAg
V2ViRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKCkgeyByZXR1cm4gJm1fZXZlbnRTZW5kZXI7IH0K
LSAgICBXZWJUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgeyByZXR1cm4gbV90ZXN0UnVubmVyOyB9
Ci0gICAgdm9pZCBzZXRUZXN0UnVubmVyKFdlYlRlc3RSdW5uZXIqIHRlc3RSdW5uZXIpIHsgbV90
ZXN0UnVubmVyID0gdGVzdFJ1bm5lcjsgfQotCi0gICAgLy8gVGVzdERlbGVnYXRlIGltcGxlbWVu
dGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRleHRNZW51RGF0YSgpOwotICAgIHZp
cnR1YWwgdm9pZCBjbGVhckVkaXRDb21tYW5kKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRD
b21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
OwotICAgIHZpcnR1YWwgV2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1lbnVEYXRhKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRz
Jik7Ci0gICAgdmlydHVhbCB2b2lkIHByaW50TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSk7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpOwotICAgIHZpcnR1
YWwgV2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxX
ZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcyk7Ci0gICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0
Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmlu
ZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCk7CisgICAgV2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIHsgcmV0dXJuICZtX3Rlc3RSdW5u
ZXI7IH0KIAogcHJpdmF0ZToKICAgICBUZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFjZXM7CkBAIC04
MSw4ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogICAgIFdlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgV2Vi
RXZlbnRTZW5kZXIgbV9ldmVudFNlbmRlcjsKLSAgICBXZWJUZXN0UnVubmVyKiBtX3Rlc3RSdW5u
ZXI7Ci0gICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3RSdW5uZXIg
bV90ZXN0UnVubmVyOwogfTsKIAogV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5h
bCgpCkBAIC05MCw4ICs3NCw3IEBAIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJu
YWwoKQogICAgICwgbV93ZWJWaWV3KDApCiAgICAgLCBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
KG1faW50ZXJmYWNlcy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpKQogICAgICwgbV9ldmVudFNl
bmRlcihtX2ludGVyZmFjZXMuZXZlbnRTZW5kZXIoKSkKLSAgICAsIG1fdGVzdFJ1bm5lcigwKQot
ICAgICwgbV9kZWxlZ2F0ZSgwKQorICAgICwgbV90ZXN0UnVubmVyKG1faW50ZXJmYWNlcy50ZXN0
UnVubmVyKCkpCiB7CiB9CiAKQEAgLTEwMSwxMyArODQsNyBAQCBXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6On5JbnRlcm5hbCgpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewotICAgIGlmIChkZWxl
Z2F0ZSkgewotICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAgICAgIG1faW50ZXJm
YWNlcy5zZXREZWxlZ2F0ZSh0aGlzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2RlbGVnYXRl
ID0gMDsKLSAgICAgICAgbV9pbnRlcmZhY2VzLnNldERlbGVnYXRlKDApOwotICAgIH0KKyAgICBt
X2ludGVyZmFjZXMuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogfQogCiB2b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMTE4LDYz
ICs5NSw3IEBAIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdl
YlZpZXcqIHdlYlZpZXcpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRU
ZXN0SXNSdW5uaW5nKGJvb2wgcnVubmluZykKIHsKLSAgICBpZiAobV90ZXN0UnVubmVyKQotICAg
ICAgICBtX3Rlc3RSdW5uZXItPnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7Ci19Ci0KLXZvaWQg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpjbGVhckNvbnRleHRNZW51RGF0YSgpCi17Ci0g
ICAgbV9kZWxlZ2F0ZS0+Y2xlYXJDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0
SW50ZXJmYWNlczo6SW50ZXJuYWw6OmNsZWFyRWRpdENvbW1hbmQoKQotewotICAgIG1fZGVsZWdh
dGUtPmNsZWFyRWRpdENvbW1hbmQoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50
ZXJuYWw6OnNldEVkaXRDb21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUpCi17Ci0gICAgbV9kZWxlZ2F0ZS0+c2V0RWRpdENvbW1hbmQobmFtZSwg
dmFsdWUpOwotfQotCi1XZWJDb250ZXh0TWVudURhdGEqIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRl
cm5hbDo6bGFzdENvbnRleHRNZW51RGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVsZWdh
dGUtPmxhc3RDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6OnNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRzJiBwYWRzKQotewotICAg
IG1fZGVsZWdhdGUtPnNldEdhbWVwYWREYXRhKHBhZHMpOwotfQotCi12b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6cHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdl
KQotewotICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtZXNzYWdlKTsKLX0KLQotdm9pZCBX
ZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnBvc3RUYXNrKFdlYlRhc2sqIHRhc2spCi17Ci0g
ICAgbV9kZWxlZ2F0ZS0+cG9zdFRhc2sodGFzayk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFj
ZXM6OkludGVybmFsOjpwb3N0RGVsYXllZFRhc2soV2ViVGFzayogdGFzaywgbG9uZyBsb25nIG1z
KQotewotICAgIG1fZGVsZWdhdGUtPnBvc3REZWxheWVkVGFzayh0YXNrLCBtcyk7Ci19Ci0KLVdl
YlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnJlZ2lzdGVySXNvbGF0ZWRGaWxl
U3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykKLXsK
LSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1
dGVGaWxlbmFtZXMpOwotfQotCi1sb25nIGxvbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQotewotICAgIHJldHVybiBtX2RlbGVnYXRl
LT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKLX0KLQotV2ViS2l0OjpXZWJTdHJpbmcg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4
UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKLXsKLSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+
Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7CisgICAgbV9pbnRlcmZhY2Vz
LnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7CiB9CiAKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJU
ZXN0SW50ZXJmYWNlcygpCkBAIC0yMzIsOSArMTUzLDQgQEAgV2ViVGVzdFJ1bm5lciogV2ViVGVz
dEludGVyZmFjZXM6OnRlc3RSdW5uZXIoKQogICAgIHJldHVybiBtX2ludGVybmFsLT50ZXN0UnVu
bmVyKCk7CiB9CiAKLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OnNldFRlc3RSdW5uZXIoV2ViVGVz
dFJ1bm5lciogdGVzdFJ1bm5lcikKLXsKLSAgICBtX2ludGVybmFsLT5zZXRUZXN0UnVubmVyKHRl
c3RSdW5uZXIpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RSdW5uZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEyNjVkNDY4NjBiNDIyNWY0NDhjMzgwMTk1MWVhNWJmNDJmZmM4NWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
UnVubmVyLmNwcApAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJUZXN0UnVubmVyLmgiCisKKyNpbmNsdWRlICJUZXN0UnVubmVyLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFJ1bm5lcihUZXN0UnVubmVyKiB0ZXN0UnVubmVyKQorICAgIDogbV9wcml2
YXRlKHRlc3RSdW5uZXIpCit7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVk
aXRpbmdDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1
bXBFZGl0aW5nQ2FsbGJhY2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVt
cEFzVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEFzVGV4
dCgpOworfQorCit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZER1bXBBc1RleHQoYm9vbCB2
YWx1ZSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldFNob3VsZER1bXBBc1RleHQodmFsdWUpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cygpOwor
fQorCit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJv
b2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0
cyh2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6
c2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5zaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVu
bmVyOjpzaG91bGREdW1wQXNBdWRpbygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
c2hvdWxkRHVtcEFzQXVkaW8oKTsKK30KKworY29uc3QgV2ViQXJyYXlCdWZmZXJWaWV3KiBXZWJU
ZXN0UnVubmVyOjphdWRpb0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmF1
ZGlvRGF0YSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVyOjpzZXRTaG91bGREdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91
bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKHZhbHVlKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVy
OjpzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxs
YmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxv
YWRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdG9wUHJvdmlzaW9uYWxGcmFt
ZUxvYWRzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFRpdGxlQ2hhbmdl
cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDcmVhdGVWaWV3KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wQ3JlYXRlVmlldygpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OmNhbk9wZW5XaW5kb3dzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5jYW5PcGVuV2luZG93cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6
OnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKK30KKworYm9vbCBX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJh
Y2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9u
c2VNSU1FVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7Cit9CisKK1dlYlBlcm1pc3Npb25DbGllbnQqIFdl
YlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT53ZWJQZXJtaXNzaW9ucygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1
bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3Vs
ZER1bXBTdGF0dXNDYWxsYmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5zaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCk7Cit9CisKK2Jvb2wgV2Vi
VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpOworfQorCitib29sIFdl
YlRlc3RSdW5uZXI6OmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKTsKK30KKworYm9vbCBX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKTsKK30KKworYm9vbCBXZWJU
ZXN0UnVubmVyOjp0ZXN0UmVwYWludCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
dGVzdFJlcGFpbnQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxs
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3dlZXBIb3Jpem9udGFsbHkoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5pc1ByaW50aW5nKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
KCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5lcjo6c2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYlRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIG1fcHJpdmF0ZS0+c2V0VGl0bGVUZXh0RGly
ZWN0aW9uKGRpcmVjdGlvbik7Cit9CisKK2NvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogV2Vi
VGVzdFJ1bm5lcjo6aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5odHRwSGVhZGVyc1RvQ2xlYXIoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpz
aG91bGRCbG9ja1JlZGlyZWN0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hv
dWxkQmxvY2tSZWRpcmVjdHMoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjp3aWxsU2VuZFJl
cXVlc3RTaG91bGRSZXR1cm5OdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT53
aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsKCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5l
cjo6c2V0VG9wTG9hZGluZ0ZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgYm9vbCBjbGVhcikKK3sKKyAg
ICBtX3ByaXZhdGUtPnNldFRvcExvYWRpbmdGcmFtZShmcmFtZSwgY2xlYXIpOworfQorCitXZWJG
cmFtZSogV2ViVGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT50b3BMb2FkaW5nRnJhbWUoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVy
Ojpwb2xpY3lEZWxlZ2F0ZURvbmUoKQoreworICAgIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVE
b25lKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdhdGVFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUo
KTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURv
bmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBvbGljeURlbGVnYXRlU2hvdWxk
Tm90aWZ5RG9uZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBv
c3RNZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRJbnRlcmNl
cHRQb3N0TWVzc2FnZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRhZjljMGU3OWI3MTFkMDc2
NTllYzEwZmEzZmM4NzEzYzFjNTljMzkuLjdiZTdlZjFjOGQwMTYzZTlmYmVjYjQyZGVlOTYzZmYy
ZjQ2ODgzNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNw
cApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgorI2luY2x1
ZGUgIldlYlRlc3RSdW5uZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2Vi
Vmlld0hvc3QuaCIKICNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKQEAgLTE2
MSw5ICsxNjIsNiBAQCB2b2lkIFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgbV90ZXN0
SW50ZXJmYWNlcyA9IGFkb3B0UHRyKG5ldyBXZWJUZXN0SW50ZXJmYWNlcygpKTsKICAgICBtX2Rl
dlRvb2xzVGVzdEludGVyZmFjZXMgPSBhZG9wdFB0cihuZXcgV2ViVGVzdEludGVyZmFjZXMoKSk7
Ci0gICAgbV90ZXN0UnVubmVyID0gYWRvcHRQdHIobmV3IFRlc3RSdW5uZXIoKSk7Ci0gICAgbV90
ZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkpOwotICAgIG1f
ZGV2VG9vbHNUZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkp
OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCiAgICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIgPSBhZG9wdFB0cihuZXcgTm90aWZpY2F0
aW9uUHJlc2VudGVyKHRoaXMpKTsKICNlbmRpZgpAQCAtMTg3LDggKzE4NSw2IEBAIHZvaWQgVGVz
dFNoZWxsOjpjcmVhdGVNYWluV2luZG93KCkKICAgICBtX3dlYlZpZXcgPSBtX3dlYlZpZXdIb3N0
LT53ZWJWaWV3KCk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0RGVsZWdhdGUobV93ZWJWaWV3
SG9zdC5nZXQoKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0V2ViVmlldyhtX3dlYlZpZXcp
OwotICAgIG1fdGVzdFJ1bm5lci0+c2V0RGVsZWdhdGUobV93ZWJWaWV3SG9zdC5nZXQoKSk7Ci0g
ICAgbV90ZXN0UnVubmVyLT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiAgICAgbV9kcnREZXZUb29s
c0FnZW50LT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiB9CiAKQEAgLTE5OCw4ICsxOTQsNiBAQCBU
ZXN0U2hlbGw6On5UZXN0U2hlbGwoKQogICAgIG1fdGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXco
MCk7CiAgICAgbV9kZXZUb29sc1Rlc3RJbnRlcmZhY2VzLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBt
X2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7Ci0gICAgbV90ZXN0UnVubmVy
LT5zZXREZWxlZ2F0ZSgwKTsKLSAgICBtX3Rlc3RSdW5uZXItPnNldFdlYlZpZXcoMCk7CiAgICAg
bV9kcnREZXZUb29sc0FnZW50LT5zZXRXZWJWaWV3KDApOwogICAgIGlmIChtX3dlYlZpZXdIb3N0
KQogICAgICAgICBtX3dlYlZpZXdIb3N0LT5zaHV0ZG93bigpOwpAQCAtMjM1LDYgKzIyOSw4IEBA
IHZvaWQgVGVzdFNoZWxsOjpjbG9zZURldlRvb2xzKCkKICAgICAgICAgbV9kZXZUb29scy0+d2Vi
VmlldygpLT5zZXR0aW5ncygpLT5zZXRNZW1vcnlJbmZvRW5hYmxlZChmYWxzZSk7CiAgICAgICAg
IG1fZHJ0RGV2VG9vbHNBZ2VudC0+cmVzZXQoKTsKICAgICAgICAgbV9kcnREZXZUb29sc0NsaWVu
dC5jbGVhcigpOworICAgICAgICBtX2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldERlbGVnYXRl
KDApOworICAgICAgICBtX2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7CiAg
ICAgICAgIGNsb3NlV2luZG93KG1fZGV2VG9vbHMpOwogICAgICAgICBtX2RldlRvb2xzID0gMDsK
ICAgICB9CkBAIC0yNjYsMTEgKzI2MiwxMSBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRlc3Qo
Y29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAgbV9w
YXJhbXMgPSBwYXJhbXM7CiAgICAgc3RyaW5nIHRlc3RVcmwgPSBtX3BhcmFtcy50ZXN0VXJsLnNw
ZWMoKTsKIAotICAgIG1fdGVzdFJ1bm5lci0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMo
c2hvdWxkRHVtcFBpeGVscyk7CisgICAgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5z
ZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhzaG91bGREdW1wUGl4ZWxzKTsKIAogICAgIGlm
ICh0ZXN0VXJsLmZpbmQoImxvYWRpbmcvIikgIT0gc3RyaW5nOjpucG9zCiAgICAgICAgIHx8IHRl
c3RVcmwuZmluZCgibG9hZGluZ1xcIikgIT0gc3RyaW5nOjpucG9zKQotICAgICAgICBtX3Rlc3RS
dW5uZXItPnNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3ModHJ1ZSk7CisgICAgICAgIG1f
dGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxi
YWNrcyh0cnVlKTsKIAogICAgIGlmICh0ZXN0VXJsLmZpbmQoImNvbXBvc2l0aW5nLyIpICE9IHN0
cmluZzo6bnBvcyB8fCB0ZXN0VXJsLmZpbmQoImNvbXBvc2l0aW5nXFwiKSAhPSBzdHJpbmc6Om5w
b3MpIHsKICAgICAgICAgaWYgKCFtX3NvZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVkKQpAQCAtMjgz
LDggKzI3OSw4IEBAIHZvaWQgVGVzdFNoZWxsOjpydW5GaWxlVGVzdChjb25zdCBUZXN0UGFyYW1z
JiBwYXJhbXMsIGJvb2wgc2hvdWxkRHVtcFBpeGVscykKIAogICAgIGlmICh0ZXN0VXJsLmZpbmQo
Ii9kdW1wQXNUZXh0LyIpICE9IHN0cmluZzo6bnBvcwogICAgICAgICB8fCB0ZXN0VXJsLmZpbmQo
IlxcZHVtcEFzVGV4dFxcIikgIT0gc3RyaW5nOjpucG9zKSB7Ci0gICAgICAgIG1fdGVzdFJ1bm5l
ci0+c2V0U2hvdWxkRHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgbV90ZXN0UnVubmVyLT5zZXRT
aG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhmYWxzZSk7CisgICAgICAgIG1fdGVzdEludGVyZmFj
ZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hvdWxkRHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgbV90
ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0
cyhmYWxzZSk7CiAgICAgfQogCiAgICAgaWYgKHRlc3RVcmwuZmluZCgiL2luc3BlY3Rvci8iKSAh
PSBzdHJpbmc6Om5wb3MKQEAgLTMyNSw3ICszMjEsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cmVzZXRU
ZXN0Q29udHJvbGxlcigpCiAgICAgcmVzZXRXZWJTZXR0aW5ncygqd2ViVmlldygpKTsKICAgICBt
X3Rlc3RJbnRlcmZhY2VzLT5yZXNldEFsbCgpOwogICAgIG1fZGV2VG9vbHNUZXN0SW50ZXJmYWNl
cy0+cmVzZXRBbGwoKTsKLSAgICBtX3Rlc3RSdW5uZXItPnJlc2V0KCk7CiAgICAgbV93ZWJWaWV3
SG9zdC0+cmVzZXQoKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQogICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5yZXNldCgpOwpA
QCAtNTc5LDE0ICs1NzQsMTQgQEAgdm9pZCBUZXN0U2hlbGw6OmR1bXAoKQogICAgIFdlYkZyYW1l
KiBmcmFtZSA9IG1fd2ViVmlldy0+bWFpbkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCA9IG1fdGVzdFJ1bm5lci0+c2hv
dWxkRHVtcEFzVGV4dCgpOwotICAgIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8gPSBtX3Rlc3RSdW5u
ZXItPnNob3VsZER1bXBBc0F1ZGlvKCk7Ci0gICAgYm9vbCBzaG91bGRHZW5lcmF0ZVBpeGVsUmVz
dWx0cyA9IG1fdGVzdFJ1bm5lci0+c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKTsKLSAgICBi
b29sIHNob3VsZER1bXBBc1ByaW50ZWQgPSBtX3Rlc3RSdW5uZXItPmlzUHJpbnRpbmcoKTsKKyAg
ICBib29sIHNob3VsZER1bXBBc1RleHQgPSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkt
PnNob3VsZER1bXBBc1RleHQoKTsKKyAgICBib29sIHNob3VsZER1bXBBc0F1ZGlvID0gbV90ZXN0
SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQXNBdWRpbygpOworICAgIGJvb2wg
c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVy
KCktPnNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCk7CisgICAgYm9vbCBzaG91bGREdW1wQXNQ
cmludGVkID0gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1ByaW50aW5nKCk7CiAg
ICAgYm9vbCBkdW1wZWRBbnl0aGluZyA9IGZhbHNlOwogCiAgICAgaWYgKHNob3VsZER1bXBBc0F1
ZGlvKSB7Ci0gICAgICAgIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiB3ZWJBcnJh
eUJ1ZmZlclZpZXcgPSBtX3Rlc3RSdW5uZXItPmF1ZGlvRGF0YSgpOworICAgICAgICBjb25zdCBX
ZWJLaXQ6OldlYkFycmF5QnVmZmVyVmlldyogd2ViQXJyYXlCdWZmZXJWaWV3ID0gbV90ZXN0SW50
ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5hdWRpb0RhdGEoKTsKICAgICAgICAgbV9wcmludGVyLmhh
bmRsZUF1ZGlvKHdlYkFycmF5QnVmZmVyVmlldy0+YmFzZUFkZHJlc3MoKSwgd2ViQXJyYXlCdWZm
ZXJWaWV3LT5ieXRlTGVuZ3RoKCkpOwogICAgICAgICBtX3ByaW50ZXIuaGFuZGxlQXVkaW9Gb290
ZXIoKTsKICAgICAgICAgbV9wcmludGVyLmhhbmRsZVRlc3RGb290ZXIodHJ1ZSk7CkBAIC02MTAs
NyArNjA1LDcgQEAgdm9pZCBUZXN0U2hlbGw6OmR1bXAoKQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGlmIChzaG91bGREdW1wQXNUZXh0KSB7Ci0gICAgICAgICAgICBib29sIHJl
Y3Vyc2l2ZSA9IG1fdGVzdFJ1bm5lci0+c2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICBib29sIHJlY3Vyc2l2ZSA9IG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIo
KS0+c2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAgICAgICAgICAgICBzdHJpbmcgZGF0
YVV0ZjggPSBzaG91bGREdW1wQXNQcmludGVkID8gZHVtcEZyYW1lc0FzUHJpbnRlZFRleHQoZnJh
bWUsIHJlY3Vyc2l2ZSkgOiBkdW1wRnJhbWVzQXNUZXh0KGZyYW1lLCByZWN1cnNpdmUpOwogICAg
ICAgICAgICAgaWYgKGZ3cml0ZShkYXRhVXRmOC5jX3N0cigpLCAxLCBkYXRhVXRmOC5zaXplKCks
IHN0ZG91dCkgIT0gZGF0YVV0Zjguc2l6ZSgpKQogICAgICAgICAgICAgICAgIEZBVEFMKCJTaG9y
dCB3cml0ZSB0byBzdGRvdXQsIGRpc2sgZnVsbD9cbiIpOwpAQCAtNjIxLDEwICs2MTYsMTAgQEAg
dm9pZCBUZXN0U2hlbGw6OmR1bXAoKQogICAgICAgICAgICAgaWYgKG1fcGFyYW1zLmRlYnVnUmVu
ZGVyVHJlZSkKICAgICAgICAgICAgICAgICByZW5kZXJUZXh0QmVoYXZpb3IgfD0gV2ViRnJhbWU6
OlJlbmRlckFzVGV4dERlYnVnOwogICAgICAgICAgICAgcHJpbnRmKCIlcyIsIGZyYW1lLT5yZW5k
ZXJUcmVlQXNUZXh0KHJlbmRlclRleHRCZWhhdmlvcikudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
ICAgICBib29sIHJlY3Vyc2l2ZSA9IG1fdGVzdFJ1bm5lci0+c2hvdWxkRHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnMoKTsKKyAgICAgICAgICAgIGJvb2wgcmVjdXJzaXZlID0gbV90ZXN0SW50
ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9u
cygpOwogICAgICAgICAgICAgZHVtcEZyYW1lU2Nyb2xsUG9zaXRpb24oZnJhbWUsIHJlY3Vyc2l2
ZSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG1fdGVzdFJ1bm5lci0+c2hvdWxkRHVtcEJhY2tG
b3J3YXJkTGlzdCgpKQorICAgICAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KCkpCiAgICAgICAgICAgICBwcmludGYoIiVzIiwg
ZHVtcEFsbEJhY2tGb3J3YXJkTGlzdHMoKS5jX3N0cigpKTsKICAgICB9CiAgICAgaWYgKGR1bXBl
ZEFueXRoaW5nICYmIG1fcGFyYW1zLnByaW50U2VwYXJhdG9ycykKQEAgLTYzNiwxOCArNjMxLDE4
IEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKICAgICAgICAgLy8gc3Rkb3V0LgogICAgICAgICBk
dW1wZWRBbnl0aGluZyA9IHRydWU7CiAgICAgICAgIG1fd2ViVmlldy0+bGF5b3V0KCk7Ci0gICAg
ICAgIGlmIChtX3Rlc3RSdW5uZXItPnRlc3RSZXBhaW50KCkpIHsKKyAgICAgICAgaWYgKG1fdGVz
dEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+dGVzdFJlcGFpbnQoKSkgewogICAgICAgICAgICAg
V2ViU2l6ZSB2aWV3U2l6ZSA9IG1fd2ViVmlldy0+c2l6ZSgpOwogICAgICAgICAgICAgaW50IHdp
ZHRoID0gdmlld1NpemUud2lkdGg7CiAgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gdmlld1NpemUu
aGVpZ2h0OwotICAgICAgICAgICAgaWYgKG1fdGVzdFJ1bm5lci0+c3dlZXBIb3Jpem9udGFsbHko
KSkgeworICAgICAgICAgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c3dl
ZXBIb3Jpem9udGFsbHkoKSkgewogICAgICAgICAgICAgICAgIGZvciAoV2ViUmVjdCBjb2x1bW4o
MCwgMCwgMSwgaGVpZ2h0KTsgY29sdW1uLnggPCB3aWR0aDsgY29sdW1uLngrKykKICAgICAgICAg
ICAgICAgICAgICAgbV93ZWJWaWV3SG9zdC0+cGFpbnRSZWN0KGNvbHVtbik7CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGZvciAoV2ViUmVjdCBsaW5lKDAsIDAsIHdpZHRo
LCAxKTsgbGluZS55IDwgaGVpZ2h0OyBsaW5lLnkrKykKICAgICAgICAgICAgICAgICAgICAgbV93
ZWJWaWV3SG9zdC0+cGFpbnRSZWN0KGxpbmUpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgaWYgKG1fdGVzdFJ1bm5lci0+aXNQcmludGluZygpKQorICAgICAgICB9IGVsc2UgaWYgKG1f
dGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNQcmludGluZygpKQogICAgICAgICAgICAg
bV93ZWJWaWV3SG9zdC0+cGFpbnRQYWdlc1dpdGhCb3VuZGFyaWVzKCk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG1fd2ViVmlld0hvc3QtPnBhaW50SW52YWxpZGF0ZWRSZWdpb24oKTsKQEAg
LTY1NSw3ICs2NTAsNyBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAgICAgICAgIC8vIFNlZSBp
ZiB3ZSBuZWVkIHRvIGRyYXcgdGhlIHNlbGVjdGlvbiBib3VuZHMgcmVjdC4gU2VsZWN0aW9uIGJv
dW5kcwogICAgICAgICAvLyByZWN0IGlzIHRoZSByZWN0IGVuY2xvc2luZyB0aGUgKHBvc3NpYmx5
IHRyYW5zZm9ybWVkKSBzZWxlY3Rpb24uCiAgICAgICAgIC8vIFRoZSByZWN0IHNob3VsZCBiZSBk
cmF3biBhZnRlciBldmVyeXRoaW5nIGlzIGxhaWQgb3V0IGFuZCBwYWludGVkLgotICAgICAgICBp
ZiAobV90ZXN0UnVubmVyLT5zaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpKSB7CisgICAgICAgIGlm
IChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBTZWxlY3Rpb25SZWN0
KCkpIHsKICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgc2VsZWN0aW9uIHJlY3QgLSBkcmF3
IGEgcmVkIDFweCBib3JkZXIgZW5jbG9zaW5nIHJlY3QKICAgICAgICAgICAgIFdlYlJlY3Qgd3Ig
PSBmcmFtZS0+c2VsZWN0aW9uQm91bmRzUmVjdCgpOwogICAgICAgICAgICAgaWYgKCF3ci5pc0Vt
cHR5KCkpIHsKQEAgLTc1Miw4ICs3NDcsNiBAQCB2b2lkIFRlc3RTaGVsbDo6YmluZEpTT2JqZWN0
c1RvV2luZG93KFdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9kZXZUb29sc1Rlc3RJbnRlcmZh
Y2VzLT5iaW5kVG8oZnJhbWUpOwogICAgIGVsc2UKICAgICAgICAgbV90ZXN0SW50ZXJmYWNlcy0+
YmluZFRvKGZyYW1lKTsKLSAgICBtX3Rlc3RSdW5uZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUs
IFdlYlN0cmluZzo6ZnJvbVVURjgoInRlc3RSdW5uZXIiKSk7Ci0gICAgbV90ZXN0UnVubmVyLT5i
aW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJsYXlvdXRUZXN0Q29u
dHJvbGxlciIpKTsKIH0KIAogV2ViVmlld0hvc3QqIFRlc3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93
KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5oCmluZGV4IDM4OTg5YmQzZGNiMjU0YTVmYjZhNDAxMTljOWExOWVhNjFkYzM4
NWYuLjZmOGJiOTE5ZmNiZDA2ZTYyNWZjNDcxMjI5NTExMmQwYTc0ZmQyZmIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCkBAIC0zMyw3ICszMyw2IEBACiAKICNp
bmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKICNpbmNsdWRlICJUZXN0RXZlbnRQcmlu
dGVyLmgiCi0jaW5jbHVkZSAiVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUg
IldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViVGVzdEludGVyZmFjZXMuaCIKICNpbmNs
dWRlICJXZWJWaWV3SG9zdC5oIgpAQCAtODQsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgV2ViS2l0
OjpXZWJWaWV3KiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV93ZWJWaWV3OyB9CiAgICAgLy8g
UmV0dXJucyB0aGUgaG9zdCBmb3IgdGhlIG1haW4gV2ViVmlldy4KICAgICBXZWJWaWV3SG9zdCog
d2ViVmlld0hvc3QoKSBjb25zdCB7IHJldHVybiBtX3dlYlZpZXdIb3N0LmdldCgpOyB9Ci0gICAg
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIGNvbnN0IHsgcmV0dXJu
IG1fdGVzdFJ1bm5lci5nZXQoKTsgfQorICAgIFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXIq
IHRlc3RSdW5uZXIoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVy
KCk7IH0KICAgICBXZWJUZXN0UnVubmVyOjpXZWJFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKSBj
b25zdCB7IHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT5ldmVudFNlbmRlcigpOyB9CiAgICAgV2Vi
VGVzdFJ1bm5lcjo6V2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+YWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKTsgfQogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTA4LDkgKzEwNyw2
IEBAIHB1YmxpYzoKICAgICBpbnQgbmF2aWdhdGlvbkVudHJ5Q291bnQoKSBjb25zdDsKIAogICAg
IHZvaWQgc2V0Rm9jdXMoV2ViS2l0OjpXZWJXaWRnZXQqLCBib29sIGVuYWJsZSk7Ci0gICAgYm9v
bCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gKG1f
dGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91
bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCk7IH0KLSAgICBib29sIHNob3VsZER1bXBS
ZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCAgeyByZXR1cm4gKG1fdGVzdElzUHJlcGFyaW5n
IHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKCk7IH0KLSAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzKCkgY29uc3QgIHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJc1Bl
bmRpbmcpICYmIHRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMoKTsgfQogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBEUlRUZXN0UnVubmVyIHRvIHNpZ25hbCB0
ZXN0IGNvbXBsZXRpb24uCiAgICAgdm9pZCB0ZXN0RmluaXNoZWQoKTsKQEAgLTIwOSw3ICsyMDUs
NiBAQCBwcml2YXRlOgogICAgIE93blB0cjxEUlREZXZUb29sc0NsaWVudD4gbV9kcnREZXZUb29s
c0NsaWVudDsKICAgICBPd25QdHI8V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM+IG1f
dGVzdEludGVyZmFjZXM7CiAgICAgT3duUHRyPFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZh
Y2VzPiBtX2RldlRvb2xzVGVzdEludGVyZmFjZXM7Ci0gICAgT3duUHRyPFdlYlRlc3RSdW5uZXI6
OlRlc3RSdW5uZXI+IG1fdGVzdFJ1bm5lcjsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIE93blB0cjxOb3RpZmljYXRpb25QcmVz
ZW50ZXI+IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186027</attachid>
            <date>2013-02-01 06:01:24 -0800</date>
            <delta_ts>2013-02-01 08:03:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108464-20130201145806.patch</filename>
            <type>text/plain</type>
            <size>59895</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZmYWE3MmQzNmMxYWI2M2IxMTM5MzU1YjVlNGVhMjEz
YWUzNTk4Zi4uY2NiYzNiYTE2NGIwNjdiYzkxYmI5ZThlYzM1YjlmNDdlZTEwYmI0MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
MiBAQAorMjAxMy0wMS0zMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIG1vdmUgb3duZXJzaGlwIG9mIFRlc3RSdW5uZXIgb2JqZWN0
IHRvIFRlc3RJbnRlcmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgIEJlZm9yZSwgVGVzdFNoZWxsIG93bmVkIHRoZSBjbGFzcy4gVGhpcyBhbHNvIHJlbW92
ZXMgdGhlIGxhc3QgaW5jbHVkZQorICAgICAgICBmcm9tIER1bXBSZW5kZXJUcmVlIHRvIFRlc3RS
dW5uZXIvc3JjLgorCisgICAgICAgIFRoaXMgYWxzbyBkZWxldGVzIFRlc3REZWxlZ2F0ZSBhbmQg
dXNlcyBXZWJUZXN0RGVsZWdhdGUgZXZlcnl3aGVyZQorICAgICAgICBpbnN0ZWFkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5o
OgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVt
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRE
ZWxlZ2F0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjptYWtlTWVu
dUl0ZW1TdHJpbmdzRm9yKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9FdmVudFNlbmRlci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
RXZlbnRTZW5kZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Okdh
bWVwYWRDb250cm9sbGVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXIpOgorICAgICAgICAoR2FtZXBhZENvbnRyb2xsZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNl
czo6flRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZh
Y2VzOjpzZXRXZWJWaWV3KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2Vz
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJmYWNlczo6
YmluZFRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpyZXNldEFs
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RJbnRlcmZhY2VzOjpzZXRUZXN0SXNSdW5uaW5nKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RJbnRlcmZhY2VzOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcik6CisgICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OlRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjp0ZXN0UnVubmVyKToKKyAgICAgICAgKFdl
YlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0RGVsZWdhdGUpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRUZXN0SXNSdW5u
aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0UnVubmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXIpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFj
a3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEFz
VGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzZXRTaG91bGRE
dW1wQXNUZXh0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3Vs
ZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RS
dW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25z
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDaGls
ZEZyYW1lc0FzVGV4dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpz
aG91bGREdW1wQXNBdWRpbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjphdWRpb0RhdGEpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0UnVubmVyOjpzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnN0
b3BQcm92aXNpb25hbEZyYW1lTG9hZHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wQ3JlYXRlVmlldyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpjYW5PcGVuV2luZG93cyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJj
ZVJlcXVlc3RDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5l
cjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6d2ViUGVybWlzc2lvbnMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcyk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUHJvZ3Jlc3NGaW5p
c2hlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNo
b3VsZER1bXBCYWNrRm9yd2FyZExpc3QpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFJ1bm5lcjo6ZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjp0ZXN0UmVwYWludCk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxseSk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNldFRp
dGxlVGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVy
OjpodHRwSGVhZGVyc1RvQ2xlYXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1
bm5lcjo6c2hvdWxkQmxvY2tSZWRpcmVjdHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6d2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCk6CisgICAgICAgIChX
ZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzZXRUb3BMb2FkaW5nRnJhbWUpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnBvbGljeURlbGVnYXRlRG9uZSk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdh
dGVJc1Blcm1pc3NpdmUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6
cG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChU
ZXN0U2hlbGw6OmNyZWF0ZU1haW5XaW5kb3cpOgorICAgICAgICAoVGVzdFNoZWxsOjp+VGVzdFNo
ZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QpOgorICAgICAgICAoVGVzdFNo
ZWxsOjpyZXNldFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKFRlc3RTaGVsbDo6ZHVtcCk6Cisg
ICAgICAgIChUZXN0U2hlbGw6OmJpbmRKU09iamVjdHNUb1dpbmRvdyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGw6OnRl
c3RSdW5uZXIpOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMy0wMS0zMSAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYktpdDI6IHByb3ZpZGUgbmV3
IGJ1bmRsZSBBUElzIHRvIGFsbG93IGJ1bmRsZSBjbGllbnRzIHRvIGJlIG5vdGlmaWVkIG9mIHBh
c3RlYm9hcmQgYWNjZXNzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkK
aW5kZXggZTdlN2EyNzJjMDE0ZDNmZjY5MTFmZGZkYzQ2MmExNTQxMGMwM2JkMS4uMTM5YjhlYWZk
OTA2NmExZDEyODAxZjdhNThmMzJjM2RkMDNjMWZhMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5neXBpCkBAIC05Niw2ICs5Niw3IEBACiAgICAgICAgICAgICAnY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UGx1Z2luLmNwcCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFJ1bm5lci5jcHAnLAogICAgICAgICBdLAog
ICAgICAgICAndGVzdF9wbHVnaW5fZmlsZXMnOiBbCiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBl
UGx1Z0luL1BsdWdpbk9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFjZXMuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RJbnRlcmZh
Y2VzLmgKaW5kZXggNGVhYzQyYzZkMGNiZjY5OWE3ZWMwODcyODM1MmI0YzA3NTI0NTU3MC4uOTVk
ZWE2ZDgzYmYyZTkzZTY2ZDE2MzRkM2M5NzcxYWI5NWVkODBlMyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFj
ZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0SW50ZXJmYWNlcy5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICBXZWJB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKTsKICAgICBX
ZWJFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKICAgICBXZWJUZXN0UnVubmVyKiB0ZXN0UnVu
bmVyKCk7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgVGVzdFJ1bm5lciBpcyBjb21w
bGV0ZS4KLSAgICB2b2lkIHNldFRlc3RSdW5uZXIoV2ViVGVzdFJ1bm5lciopOwogCiBwcml2YXRl
OgogICAgIGNsYXNzIEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCmluZGV4
IDRhZTYzNDkwZmRiNzIzM2QxZTQ5NzdmZDJhMWU5OGIwODQ2MjVmNmMuLmE5N2I5MDdiZTk4YmUy
NGI2MWJhZmUwODkxNGE4YjgzODU1NjdlYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVy
LmgKQEAgLTM4LDU3ICszOCw2NCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJBcnJh
eUJ1ZmZlclZpZXc7CiBjbGFzcyBXZWJQZXJtaXNzaW9uQ2xpZW50OworY2xhc3MgV2ViRnJhbWU7
CiB9CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAotLy8gRklYTUU6IE9uY2UgdGhlIFRl
c3RSdW5uZXIgY2xhc3MgaXMgY29tcGxldGUsIHRoaXMgY2xhc3Mgc2hvdWxkIHRha2UgYQotLy8g
VGVzdFJ1bm5lciogYXMgY3RvciBhcmd1bWVudCwgYW5kIG5vdCBoYXZlIGRlZmF1bHQgaW1wbGVt
ZW50YXRpb25zLgorY2xhc3MgVGVzdFJ1bm5lcjsKKwogY2xhc3MgV2ViVGVzdFJ1bm5lciB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCkgeyB9Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9vbCkg
eyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkR2VuZXJhdGVQaXhl
bFJlc3VsdHMoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBDaGlsZEZyYW1l
U2Nyb2xsUG9zaXRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlv
RGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCkgeyB9Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3RvcFByb3Zpc2lvbmFsRnJhbWVM
b2FkcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1
bXBUaXRsZUNoYW5nZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREdW1wQ3JlYXRlVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlcXVlc3RD
YWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25z
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wU3RhdHVz
Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWZlck1haW5SZXNvdXJjZURhdGFMb2Fk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNl
bGVjdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCB0
ZXN0UmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHN3
ZWVwSG9yaXpvbnRhbGx5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNQcmludGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYktp
dDo6V2ViVGV4dERpcmVjdGlvbikgeyB9Ci0gICAgdmlydHVhbCBjb25zdCBzdGQ6OnNldDxzdGQ6
OnN0cmluZz4qIGh0dHBIZWFkZXJzVG9DbGVhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQmxvY2tSZWRpcmVjdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCB3aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKSB7IH0KLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJh
bWUqIHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcG9saWN5RGVsZWdhdGVEb25lKCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHBvbGljeURlbGVn
YXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNpZiBXRUJURVNUUlVOTkVSX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGljaXQgV2ViVGVz
dFJ1bm5lcihUZXN0UnVubmVyKik7CisjZW5kaWYKKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
QXNUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9v
bCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
cygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgdGVzdFJlcGFpbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFs
bHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oV2ViS2l0OjpXZWJU
ZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiog
aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEJsb2Nr
UmVkaXJlY3RzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3Vs
ZFJldHVybk51bGwoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViRnJhbWUq
IHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBwb2xpY3lEZWxlZ2F0
ZURvbmUoKTsKKyAgICB2aXJ0dWFsIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHBvbGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBUZXN0UnVubmVyKiBtX3ByaXZhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlckNocm9taXVtLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uY3BwCmluZGV4
IGQ5ZGJhMzNhYTMyNDI5OGRiMDBjYjg3OTA1M2YwMDM0Njg3ZTkxMzkuLjkwM2QyOWNjMWIwYjRi
YjU5ZjViMWI2NDE2MTcxMDk1ZjkzYmZiODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21p
dW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uY3BwCkBAIC0zMSwxMSArMzEsMTEgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNo
cm9taXVtLmgiCiAKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIKICNpbmNsdWRlICJXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0
ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViQ1N0cmluZy5o
PgogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9t
aXVtLmgKaW5kZXggYTk3MjhjNjE1YmI0ZjUwNWZlMWVjYTZhMmY2NGNmZmFlOTRhMTU1Yi4uOTEz
MDA1ODAzOGFjZDZiMjdkNTRjOWFjMzM4MjFkMjE2MTE3YTQ3MyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJDaHJvbWl1bS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaApAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKLWNsYXNz
IFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3MgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CkBAIC02MSw3
ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90aWZpY2F0aW9uUmVjZWl2ZWQoY29uc3Qg
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiB0YXJnZXQsIGNvbnN0IGNoYXIqIG5vdGlm
aWNhdGlvbk5hbWUpOwogCi0gICAgdm9pZCBzZXREZWxlZ2F0ZShUZXN0RGVsZWdhdGUqIGRlbGVn
YXRlKSB7IG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsgfQorICAgIHZvaWQgc2V0RGVsZWdhdGUoV2Vi
VGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KICAgICB2
b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmlldyA9IHdl
YlZpZXc7IH0KIAogcHJpdmF0ZToKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dmVjdG9yPENwcFZhcmlhbnQ+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzOwogCi0gICAgVGVz
dERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsK
ICAgICBXZWJLaXQ6OldlYlZpZXcqIG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcAppbmRleCBkNTZhMWE4NDY4MzljNWI5N2IwMjVhMTQ4MTc1NDE2ZDc2MWI2NjA1Li41NjBl
YThlMjQzOWNiODEyNWU5MzViM2QwMmY2YzFiOWMxMmQ2ZTNiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5k
ZXIuY3BwCkBAIC00NSwxMCArNDUsMTAgQEAKIAogI2luY2x1ZGUgIktleUNvZGVNYXBwaW5nLmgi
CiAjaW5jbHVkZSAiTW9ja1NwZWxsQ2hlY2suaCIKLSNpbmNsdWRlICJUZXN0RGVsZWdhdGUuaCIK
ICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKKyNpbmNsdWRlICJXZWJUZXN0RGVs
ZWdhdGUuaCIKICNpbmNsdWRlICJXZWJUb3VjaFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgogI2luY2x1ZGUgPHB1YmxpYy9XZWJEcmFnRGF0YS5oPgpAQCAtMTI3LDcgKzEyNyw3IEBAIGlu
bGluZSBib29sIG91dHNpZGVNdWx0aUNsaWNrUmFkaXVzKGNvbnN0IFdlYlBvaW50JiBhLCBjb25z
dCBXZWJQb2ludCYgYikKIC8vIGRlcGVuZGVudCAoZS5nLiwgZHJhZ2dpbmcgaGFzIGEgdGltZW91
dCB2cyBzZWxlY3Rpb24pLgogdWludDMyIHRpbWVPZmZzZXRNcyA9IDA7CiAKLWRvdWJsZSBnZXRD
dXJyZW50RXZlbnRUaW1lU2VjKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCitkb3VibGUgZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYyhXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIHJldHVy
biAoZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpICsgdGltZU9mZnNldE1z
KSAvIDEwMDAuMDsKIH0KQEAgLTgxMiw3ICs4MTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBs
YXlTYXZlZEV2ZW50cygpCiAvLyAgIGFsc28gbWFrZXMgc2Vuc2UuIFRoaXMgZnVuY3Rpb24gaXMg
ZG9pbmcgc3VjaCBmb3Igc29tZSBmbGFncy4KIC8vIC0gU29tZSB0ZXN0IGV2ZW4gY2hlY2tzIGFj
dHVhbCBzdHJpbmcgY29udGVudC4gU28gcHJvdmlkaW5nIGl0IHdvdWxkIGJlIGFsc28gaGVscGZ1
bC4KIC8vCi1zdGF0aWMgVmVjdG9yPFdlYlN0cmluZz4gbWFrZU1lbnVJdGVtU3RyaW5nc0ZvcihX
ZWJDb250ZXh0TWVudURhdGEqIGNvbnRleHRNZW51LCBUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQor
c3RhdGljIFZlY3RvcjxXZWJTdHJpbmc+IG1ha2VNZW51SXRlbVN0cmluZ3NGb3IoV2ViQ29udGV4
dE1lbnVEYXRhKiBjb250ZXh0TWVudSwgV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKICAg
ICAvLyBUaGVzZSBjb25zdGFudHMgYXJlIGJhc2VkIG9uIFNhZmFyaSdzIGNvbnRleHQgbWVudSBi
ZWNhdXNlIHRlc3RzIGFyZSBtYWRlIGZvciBpdC4KICAgICBzdGF0aWMgY29uc3QgY2hhciogbm9u
RWRpdGFibGVNZW51U3RyaW5nc1tdID0geyAiQmFjayIsICJSZWxvYWQgUGFnZSIsICJPcGVuIGlu
IERhc2hiYW9yZCIsICI8c2VwYXJhdG9yPiIsICJWaWV3IFNvdXJjZSIsICJTYXZlIFBhZ2UgQXMi
LCAiUHJpbnQgUGFnZSIsICJJbnNwZWN0IEVsZW1lbnQiLCAwIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIu
aAppbmRleCAzYzIxZWY5Zjg0ODA1MmFjNzY4MTU1NThkODZiYTlhNzM5MDg3NjM1Li40YmYyODdl
NjNjMDEzZGM5ZDBhMDRjNDBmYzE0YWEyNzVjOTUyNjgxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgK
QEAgLTUwLDEzICs1MCwxMyBAQCBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1
bm5lciB7CiAKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAog
Y2xhc3MgRXZlbnRTZW5kZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CiAgICAg
RXZlbnRTZW5kZXIoKTsKIAotICAgIHZvaWQgc2V0RGVsZWdhdGUoVGVzdERlbGVnYXRlKiBkZWxl
Z2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KKyAgICB2b2lkIHNldERlbGVnYXRlKFdl
YlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9CiAgICAg
dm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcgPSB3
ZWJWaWV3OyB9CiAKICAgICAvLyBSZXNldHMgc29tZSBzdGF0aWMgdmFyaWFibGUgc3RhdGUuCkBA
IC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlRhc2tMaXN0IG1fdGFza0xpc3Q7
CiAKLSAgICBUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CisgICAgV2ViVGVzdERlbGVnYXRlKiBt
X2RlbGVnYXRlOwogICAgIFdlYktpdDo6V2ViVmlldyogbV93ZWJWaWV3OwogCiAgICAgLy8gTG9j
YXRpb24gb2YgdGhlIHRvdWNoIHBvaW50IHRoYXQgaW5pdGlhdGVkIGEgZ2VzdHVyZS4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVw
YWRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcAppbmRleCBlOWMyNDZhZjI1ZGRjZTg4OGY2ZWZl
ZWJmNWYwNjAyY2QyZTdlZDdmLi4yNjU0NDAwZWU0M2EzMzQ0ZDNiODRmNmEyN2VmNTc1YTcxMDNj
M2VhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHYW1lcGFkQ29udHJvbGxlci5o
IgotI2luY2x1ZGUgIlRlc3REZWxlZ2F0ZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5o
IgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgR2Ft
ZXBhZENvbnRyb2xsZXI6OmJpbmRUb0phdmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBX
ZWJTdHJpbmcmIGNsYXNzCiAgICAgQ3BwQm91bmRDbGFzczo6YmluZFRvSmF2YXNjcmlwdChmcmFt
ZSwgY2xhc3NuYW1lKTsKIH0KIAotdm9pZCBHYW1lcGFkQ29udHJvbGxlcjo6c2V0RGVsZWdhdGUo
VGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKK3ZvaWQgR2FtZXBhZENvbnRyb2xsZXI6OnNldERlbGVn
YXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiAgICAgbV9kZWxlZ2F0ZSA9IGRlbGVn
YXRlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmgKaW5kZXggZDMwZDUwNjc5YWJi
ZTZiZjJhZWEwN2JmYTI2OTNjYTkxMmMxMmJiMi4uNWRjYWI2Y2Y0NmYxMjM2ZmY1Mzc3MDFjYjMz
YzkwOGQyMGQ5ODU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oCkBAIC00MSwx
NCArNDEsMTQgQEAgY2xhc3MgV2ViRnJhbWU7CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsK
IAotY2xhc3MgVGVzdERlbGVnYXRlOworY2xhc3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBH
YW1lcGFkQ29udHJvbGxlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBH
YW1lcGFkQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBiaW5kVG9KYXZhc2NyaXB0KFdlYktpdDo6
V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgY2xhc3NuYW1lKTsKLSAgICB2b2lk
IHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVz
dERlbGVnYXRlKik7CiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgpAQCAtNjQsNyArNjQs
NyBAQCBwcml2YXRlOgogCiAgICAgV2ViS2l0OjpXZWJHYW1lcGFkcyBtX2dhbWVwYWRzOwogCi0g
ICAgVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxl
Z2F0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDljZDlhZWY2NWU1MmUxYjY1ZTA5Y2E2ZGJkYzZhNDY1ZTVhZDJhZTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXN0RGVsZWdhdGVfaAotI2RlZmluZSBUZXN0RGVs
ZWdhdGVfaAotCi0jaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgotI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJWZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1zdHJ1Y3QgV2ViQ29udGV4dE1l
bnVEYXRhOwotY2xhc3MgV2ViR2FtZXBhZHM7Ci19Ci0KLW5hbWVzcGFjZSBXZWJUZXN0UnVubmVy
IHsKLQotY2xhc3MgV2ViVGFzazsKLQotY2xhc3MgVGVzdERlbGVnYXRlIHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZXh0TWVudURhdGEoKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGNsZWFyRWRpdENvbW1hbmQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRDb21t
YW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpID0g
MDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1l
bnVEYXRhKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRHYW1lcGFkRGF0YShjb25z
dCBXZWJLaXQ6OldlYkdhbWVwYWRzJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcmludE1lc3Nh
Z2UoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soV2ViVGFzayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdl
YlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5n
IHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktp
dDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpID0gMDsKLSAgICB2aXJ0dWFsIGxvbmcg
bG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJL
aXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6
OnN0cmluZyYgcGF0aCkgPSAwOwotfTsKLQotfQotCi0jZW5kaWYgLy8gVGVzdERlbGVnYXRlX2gK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA1MDQwNzY1NDFhYzU2OTQyYjhmODdj
MWIxNDAwOThlYWNlNTY2NDkwLi4wN2M0NzY2YzE1YjViOTZkNjEwZmJhNzQyNWU3YTI4MzQ0NTkz
Zjg3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkV2
ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiR2FtZXBhZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJU
ZXN0UnVubmVyLmgiCiAjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJTdHJpbmcuaD4KIApAQCAtNDksNiArNTAsNyBAQCBUZXN0SW50ZXJmYWNlczo6
VGVzdEludGVyZmFjZXMoKQogICAgIG1fZXZlbnRTZW5kZXIgPSBhZG9wdFB0cihuZXcgRXZlbnRT
ZW5kZXIoKSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBHYW1lcGFk
Q29udHJvbGxlcigpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcg
VGV4dElucHV0Q29udHJvbGxlcigpKTsKKyAgICBtX3Rlc3RSdW5uZXIgPSBhZG9wdFB0cihuZXcg
VGVzdFJ1bm5lcigpKTsKIH0KIAogVGVzdEludGVyZmFjZXM6On5UZXN0SW50ZXJmYWNlcygpCkBA
IC01NywxMSArNTksMTMgQEAgVGVzdEludGVyZmFjZXM6On5UZXN0SW50ZXJmYWNlcygpCiAgICAg
bV9ldmVudFNlbmRlci0+c2V0V2ViVmlldygwKTsKICAgICAvLyBtX2dhbWVwYWRDb250cm9sbGVy
IGRvZXNuJ3QgZGVwZW5kIG9uIFdlYlZpZXcuCiAgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyLT5z
ZXRXZWJWaWV3KDApOworICAgIG1fdGVzdFJ1bm5lci0+c2V0V2ViVmlldygwKTsKIAogICAgIG1f
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldERlbGVnYXRlKDApOwogICAgIG1fZXZlbnRTZW5k
ZXItPnNldERlbGVnYXRlKDApOwogICAgIG1fZ2FtZXBhZENvbnRyb2xsZXItPnNldERlbGVnYXRl
KDApOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBUZXN0
RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5kIG9u
IFdlYlRlc3REZWxlZ2F0ZS4KKyAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKDApOwogfQog
CiB2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCkBAIC03
MCwxNCArNzQsMTYgQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0V2ViVmlldyhXZWJWaWV3KiB3
ZWJWaWV3KQogICAgIG1fZXZlbnRTZW5kZXItPnNldFdlYlZpZXcod2ViVmlldyk7CiAgICAgLy8g
bV9nYW1lcGFkQ29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBXZWJWaWV3LgogICAgIG1fdGV4
dElucHV0Q29udHJvbGxlci0+c2V0V2ViVmlldyh3ZWJWaWV3KTsKKyAgICBtX3Rlc3RSdW5uZXIt
PnNldFdlYlZpZXcod2ViVmlldyk7CiB9CiAKLXZvaWQgVGVzdEludGVyZmFjZXM6OnNldERlbGVn
YXRlKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCit2b2lkIFRlc3RJbnRlcmZhY2VzOjpzZXREZWxl
Z2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewogICAgIG1fYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXItPnNldERlbGVnYXRlKGRlbGVnYXRlKTsKICAgICBtX2V2ZW50U2VuZGVyLT5zZXRE
ZWxlZ2F0ZShkZWxlZ2F0ZSk7CiAgICAgbV9nYW1lcGFkQ29udHJvbGxlci0+c2V0RGVsZWdhdGUo
ZGVsZWdhdGUpOwotICAgIC8vIG1fdGV4dElucHV0Q29udHJvbGxlciBkb2Vzbid0IGRlcGVuZCBv
biBUZXN0RGVsZWdhdGUuCisgICAgLy8gbV90ZXh0SW5wdXRDb250cm9sbGVyIGRvZXNuJ3QgZGVw
ZW5kIG9uIFdlYlRlc3REZWxlZ2F0ZS4KKyAgICBtX3Rlc3RSdW5uZXItPnNldERlbGVnYXRlKGRl
bGVnYXRlKTsKIH0KIAogdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRvKFdlYkZyYW1lKiBmcmFt
ZSkKQEAgLTg2LDYgKzkyLDggQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRvKFdlYkZyYW1l
KiBmcmFtZSkKICAgICBtX2V2ZW50U2VuZGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJT
dHJpbmc6OmZyb21VVEY4KCJldmVudFNlbmRlciIpKTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVy
LT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJnYW1lcGFkQ29u
dHJvbGxlciIpKTsKICAgICBtX3RleHRJbnB1dENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQo
ZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoInRleHRJbnB1dENvbnRyb2xsZXIiKSk7CisgICAg
bV90ZXN0UnVubmVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4
KCJ0ZXN0UnVubmVyIikpOworICAgIG1fdGVzdFJ1bm5lci0+YmluZFRvSmF2YXNjcmlwdChmcmFt
ZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7CiB9CiAKIHZv
aWQgVGVzdEludGVyZmFjZXM6OnJlc2V0QWxsKCkKQEAgLTk0LDYgKzEwMiwxMiBAQCB2b2lkIFRl
c3RJbnRlcmZhY2VzOjpyZXNldEFsbCgpCiAgICAgbV9ldmVudFNlbmRlci0+cmVzZXQoKTsKICAg
ICBtX2dhbWVwYWRDb250cm9sbGVyLT5yZXNldCgpOwogICAgIC8vIG1fdGV4dElucHV0Q29udHJv
bGxlciBkb2Vzbid0IGhhdmUgYW55IHN0YXRlIHRvIHJlc2V0LgorICAgIG1fdGVzdFJ1bm5lci0+
cmVzZXQoKTsKK30KKwordm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0VGVzdElzUnVubmluZyhib29s
IHJ1bm5pbmcpCit7CisgICAgbV90ZXN0UnVubmVyLT5zZXRUZXN0SXNSdW5uaW5nKHJ1bm5pbmcp
OwogfQogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogVGVzdEludGVyZmFjZXM6OmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKCkKQEAgLTEwNiw0ICsxMjAsOSBAQCBFdmVudFNlbmRlciogVGVzdElu
dGVyZmFjZXM6OmV2ZW50U2VuZGVyKCkKICAgICByZXR1cm4gbV9ldmVudFNlbmRlci5nZXQoKTsK
IH0KIAorVGVzdFJ1bm5lciogVGVzdEludGVyZmFjZXM6OnRlc3RSdW5uZXIoKQoreworICAgIHJl
dHVybiBtX3Rlc3RSdW5uZXIuZ2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5o
CmluZGV4IGE3ZGE0MzI4MzcxNzRkMmVlYTE2ODVhZmZlMTJhY2M5MzJiYjYwNTcuLjk5NmYzZDc4
ODM2ZDUwMTYzYjdlZDgwOTU1MTA3MDA2NDg4NjBhZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFj
ZXMuaApAQCAtNDMsOCArNDMsOSBAQCBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKIGNsYXNzIEV2ZW50U2VuZGVyOwogY2xhc3MgR2FtZXBh
ZENvbnRyb2xsZXI7Ci1jbGFzcyBUZXN0RGVsZWdhdGU7CitjbGFzcyBUZXN0UnVubmVyOwogY2xh
c3MgVGV4dElucHV0Q29udHJvbGxlcjsKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3Mg
VGVzdEludGVyZmFjZXMgewogcHVibGljOgpAQCAtNTIsMTggKzUzLDIxIEBAIHB1YmxpYzoKICAg
ICB+VGVzdEludGVyZmFjZXMoKTsKIAogICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6OldlYlZp
ZXcqKTsKLSAgICB2b2lkIHNldERlbGVnYXRlKFRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0
RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7CiAgICAgdm9pZCBiaW5kVG8oV2ViS2l0OjpXZWJG
cmFtZSopOwogICAgIHZvaWQgcmVzZXRBbGwoKTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmco
Ym9vbCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKTsKICAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKKyAgICBUZXN0UnVubmVy
KiB0ZXN0UnVubmVyKCk7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOwogICAgIE93blB0cjxFdmVudFNlbmRl
cj4gbV9ldmVudFNlbmRlcjsKICAgICBPd25QdHI8R2FtZXBhZENvbnRyb2xsZXI+IG1fZ2FtZXBh
ZENvbnRyb2xsZXI7CiAgICAgT3duUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1fdGV4dElucHV0
Q29udHJvbGxlcjsKKyAgICBPd25QdHI8VGVzdFJ1bm5lcj4gbV90ZXN0UnVubmVyOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAwOWY1ZDk2NzFkZjM2MTRkZDk5NjI3MTVlMDE1
ZmFhMDJkNjU3MmU5Li4yMTk3YjRmNDYwMjdjOTgzYjk0NDgyZTU1ZWE5Y2ZiYjcxZjY2OWE2IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMTUzLDExICsxNTMsOSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OldvcmtRdWV1ZTo6YWRkV29yayhXb3JrSXRlbSogd29yaykKIAogVGVzdFJ1bm5lcjo6VGVz
dFJ1bm5lcigpCiAgICAgOiBtX3Rlc3RJc1J1bm5pbmcoZmFsc2UpCi0gICAgLCBtX2Nsb3NlUmVt
YWluaW5nV2luZG93cyh0cnVlKQogICAgICwgbV93b3JrUXVldWUodGhpcykKICAgICAsIG1fZGVs
ZWdhdGUoMCkKICAgICAsIG1fd2ViVmlldygwKQotICAgICwgbV90b3BMb2FkaW5nRnJhbWUoMCkK
ICAgICAsIG1faW50ZW50Q2xpZW50KGFkb3B0UHRyKG5ldyBFbXB0eVdlYkRlbGl2ZXJlZEludGVu
dENsaWVudCkpCiAgICAgLCBtX3dlYlBlcm1pc3Npb25zKGFkb3B0UHRyKG5ldyBXZWJQZXJtaXNz
aW9ucykpCiB7CkBAIC0zODYsMTEgKzM4NCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkK
ICAgICBXZWJGb250UmVuZGVyaW5nOjpzZXRTdWJwaXhlbFBvc2l0aW9uaW5nKGZhbHNlKTsKICNl
bmRpZgogCi0gICAgLy8gUmVzZXQgdGhlIGRlZmF1bHQgcXVvdGEgZm9yIGVhY2ggb3JpZ2luIHRv
IDVNQgotICAgIG1fZGVsZWdhdGUtPnNldERhdGFiYXNlUXVvdGEoNSAqIDEwMjQgKiAxMDI0KTsK
LSAgICBtX2RlbGVnYXRlLT5zZXREZXZpY2VTY2FsZUZhY3RvcigxKTsKLSAgICBtX2RlbGVnYXRl
LT5zZXRBY2NlcHRBbGxDb29raWVzKGZhbHNlKTsKLSAgICBtX2RlbGVnYXRlLT5zZXRMb2NhbGUo
IiIpOworICAgIGlmIChtX2RlbGVnYXRlKSB7CisgICAgICAgIC8vIFJlc2V0IHRoZSBkZWZhdWx0
IHF1b3RhIGZvciBlYWNoIG9yaWdpbiB0byA1TUIKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0RGF0
YWJhc2VRdW90YSg1ICogMTAyNCAqIDEwMjQpOworICAgICAgICBtX2RlbGVnYXRlLT5zZXREZXZp
Y2VTY2FsZUZhY3RvcigxKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+c2V0QWNjZXB0QWxsQ29va2ll
cyhmYWxzZSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnNldExvY2FsZSgiIik7CisgICAgfQogCiAg
ICAgbV9kdW1wRWRpdGluZ0NhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fZHVtcEFzVGV4dCA9IGZh
bHNlOwpAQCAtNDQwLDcgKzQ0MCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1f
dGFza0xpc3QucmV2b2tlQWxsKCk7CiAgICAgbV93b3JrUXVldWUucmVzZXQoKTsKIAotICAgIGlm
IChtX2Nsb3NlUmVtYWluaW5nV2luZG93cykKKyAgICBpZiAobV9jbG9zZVJlbWFpbmluZ1dpbmRv
d3MgJiYgbV9kZWxlZ2F0ZSkKICAgICAgICAgbV9kZWxlZ2F0ZS0+Y2xvc2VSZW1haW5pbmdXaW5k
b3dzKCk7CiAgICAgZWxzZQogICAgICAgICBtX2Nsb3NlUmVtYWluaW5nV2luZG93cyA9IHRydWU7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMjEzZmJmNGI5YWQxNWMxYWMxODRiYTNmNjMxZmFkZDYy
OTY5ODAzMC4uODI4ZmI0YmIwZjc5MjE1ZGQ1OGY3ODk0YzE3YzY4YTQ1ZmIwMDRlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuaApAQCAtMzcsMTEgKzM3LDE1IEBACiAjaW5jbHVkZSAiV2ViQXJyYXlCdWZm
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViVGFzay5oIgotI2luY2x1ZGUgIldlYlRlc3RSdW5uZXIuaCIKKyNpbmNsdWRlICJXZWJU
ZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgorI2luY2x1ZGUgPHNl
dD4KKyNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgeworY2xhc3MgV2ViQXJyYXlCdWZmZXJWaWV3OworY2xhc3MgV2ViUGVybWlzc2lv
bkNsaWVudDsKIGNsYXNzIFdlYlZpZXc7CiB9CiAKQEAgLTUwLDEyICs1NCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViVGVzdFJ1bm5lciB7CiBjbGFzcyBXZWJQZXJtaXNzaW9uczsKIGNsYXNzIFdlYlRlc3RE
ZWxlZ2F0ZTsKIAotY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzLCBwdWJs
aWMgV2ViVGVzdFJ1bm5lciB7CitjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENwcEJvdW5kQ2xh
c3MgewogcHVibGljOgogICAgIFRlc3RSdW5uZXIoKTsKICAgICB2aXJ0dWFsIH5UZXN0UnVubmVy
KCk7CiAKLSAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgbWV0aG9kIHRvIHRha2UgYSBUZXN0RGVs
ZWdhdGUqIGluc3RlYWQuCiAgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsK
ICAgICB2b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmll
dyA9IHdlYlZpZXc7IH0KIApAQCAtNjMsNTAgKzY2LDQ5IEBAIHB1YmxpYzoKIAogICAgIFdlYlRh
c2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKLSAgICAvLyBXZWJU
ZXN0UnVubmVyIGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXN0SXNSdW5u
aW5nKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wRWRpdGluZ0Nh
bGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQXNU
ZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1Rl
eHQoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxS
ZXN1bHRzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZEdlbmVy
YXRlUGl4ZWxSZXN1bHRzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
dW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzQXVkaW8oKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNr
cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
VXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tz
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJLaXQ6Oldl
YlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wQmFja0ZvcndhcmRMaXN0
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRlZmVyTWFpblJlc291cmNlRGF0
YUxvYWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFNlbGVj
dGlvblJlY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdGVzdFJlcGFpbnQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHkoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmludGluZygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZVRleHRE
aXJlY3Rpb24oV2ViS2l0OjpXZWJUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEJsb2NrUmVkaXJlY3RzKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHdpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51
bGwoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1l
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6
V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBwb2xpY3lEZWxlZ2F0ZURvbmUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcG9s
aWN5RGVsZWdhdGVFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBv
bGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCk7Cisg
ICAgYm9vbCBzaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hv
dWxkRHVtcEFzVGV4dCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2hvdWxkRHVtcEFzVGV4dChib29s
KTsKKyAgICBib29sIHNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sKTsKKyAgICBib29sIHNob3VsZER1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBBc0F1ZGlvKCkg
Y29uc3Q7CisgICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcqIGF1ZGlvRGF0YSgp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sKTsKKyAgICBib29s
IHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3Q7CisgICAg
Ym9vbCBzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRE
dW1wVGl0bGVDaGFuZ2VzKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGREdW1wQ3JlYXRlVmlldygp
IGNvbnN0OworICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdDsKKyAgICBib29sIHNob3Vs
ZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBS
ZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSBjb25zdDsKKyAgICBib29sIHNob3VsZER1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3Q7CisgICAgV2ViS2l0OjpXZWJQZXJtaXNzaW9u
Q2xpZW50KiB3ZWJQZXJtaXNzaW9ucygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFN0YXR1
c0NhbGxiYWNrcygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjaygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNv
bnN0OworICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0OworICAgIGJv
b2wgc2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKSBjb25zdDsKKyAgICBib29sIHRlc3RSZXBhaW50
KCkgY29uc3Q7CisgICAgYm9vbCBzd2VlcEhvcml6b250YWxseSgpIGNvbnN0OworICAgIGJvb2wg
aXNQcmludGluZygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxp
bmdCZWZvcmVVbmxvYWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihX
ZWJLaXQ6OldlYlRleHREaXJlY3Rpb24pOworICAgIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogaHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRCbG9ja1JlZGly
ZWN0cygpIGNvbnN0OworICAgIGJvb2wgd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCgp
IGNvbnN0OworICAgIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1lKFdlYktpdDo6V2ViRnJhbWUqLCBi
b29sKTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lKiB0b3BMb2FkaW5nRnJhbWUoKSBjb25zdDsKKyAg
ICB2b2lkIHBvbGljeURlbGVnYXRlRG9uZSgpOworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFi
bGVkKCkgY29uc3Q7CisgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0
OworICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CisgICAg
Ym9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OworICAgIGJvb2wgaXNTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogCiAgICAgLy8gQSBzaW5nbGUgaXRlbSBpbiB0aGUg
d29yayBxdWV1ZS4KICAgICBjbGFzcyBXb3JrSXRlbSB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50
ZXJmYWNlcy5jcHAKaW5kZXggYTUzYTA5ZWY4NDVhMjEwNmI0OTU3OTM2MzdlOGM0ZTg5MGNhNGNh
Yy4uMDkzZDdhNjJlMTRiMmZiYTgzMGM4YTI2NzE5N2UyOWI2NGQ4ZDNiMSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVy
ZmFjZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCiAKLSNpbmNsdWRlICJUZXN0
RGVsZWdhdGUuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUgIldlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKQEAg
LTQ3LDcgKzQ2LDcgQEAgdXNpbmcgV2ViS2l0OjpXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViVGVz
dFJ1bm5lciB7CiAKLWNsYXNzIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCA6IHB1YmxpYyBU
ZXN0RGVsZWdhdGUgeworY2xhc3MgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsIHsKIHB1Ymxp
YzoKICAgICBJbnRlcm5hbCgpOwogICAgIHZpcnR1YWwgfkludGVybmFsKCk7CkBAIC01OSwyMSAr
NTgsNyBAQCBwdWJsaWM6CiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1f
d2ViVmlldzsgfQogICAgIFdlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcigpIHsgcmV0dXJuICZtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyOyB9CiAgICAg
V2ViRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKCkgeyByZXR1cm4gJm1fZXZlbnRTZW5kZXI7IH0K
LSAgICBXZWJUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgeyByZXR1cm4gbV90ZXN0UnVubmVyOyB9
Ci0gICAgdm9pZCBzZXRUZXN0UnVubmVyKFdlYlRlc3RSdW5uZXIqIHRlc3RSdW5uZXIpIHsgbV90
ZXN0UnVubmVyID0gdGVzdFJ1bm5lcjsgfQotCi0gICAgLy8gVGVzdERlbGVnYXRlIGltcGxlbWVu
dGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRleHRNZW51RGF0YSgpOwotICAgIHZp
cnR1YWwgdm9pZCBjbGVhckVkaXRDb21tYW5kKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRD
b21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
OwotICAgIHZpcnR1YWwgV2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1lbnVEYXRhKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRz
Jik7Ci0gICAgdmlydHVhbCB2b2lkIHByaW50TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSk7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpOwotICAgIHZpcnR1
YWwgV2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxX
ZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcyk7Ci0gICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0
Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmlu
ZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCk7CisgICAgV2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIHsgcmV0dXJuICZtX3Rlc3RSdW5u
ZXI7IH0KIAogcHJpdmF0ZToKICAgICBUZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFjZXM7CkBAIC04
MSw4ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogICAgIFdlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgV2Vi
RXZlbnRTZW5kZXIgbV9ldmVudFNlbmRlcjsKLSAgICBXZWJUZXN0UnVubmVyKiBtX3Rlc3RSdW5u
ZXI7Ci0gICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworICAgIFdlYlRlc3RSdW5uZXIg
bV90ZXN0UnVubmVyOwogfTsKIAogV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5h
bCgpCkBAIC05MCw4ICs3NCw3IEBAIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6SW50ZXJu
YWwoKQogICAgICwgbV93ZWJWaWV3KDApCiAgICAgLCBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
KG1faW50ZXJmYWNlcy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpKQogICAgICwgbV9ldmVudFNl
bmRlcihtX2ludGVyZmFjZXMuZXZlbnRTZW5kZXIoKSkKLSAgICAsIG1fdGVzdFJ1bm5lcigwKQot
ICAgICwgbV9kZWxlZ2F0ZSgwKQorICAgICwgbV90ZXN0UnVubmVyKG1faW50ZXJmYWNlcy50ZXN0
UnVubmVyKCkpCiB7CiB9CiAKQEAgLTEwMSwxMyArODQsNyBAQCBXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6On5JbnRlcm5hbCgpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewotICAgIGlmIChkZWxl
Z2F0ZSkgewotICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Ci0gICAgICAgIG1faW50ZXJm
YWNlcy5zZXREZWxlZ2F0ZSh0aGlzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2RlbGVnYXRl
ID0gMDsKLSAgICAgICAgbV9pbnRlcmZhY2VzLnNldERlbGVnYXRlKDApOwotICAgIH0KKyAgICBt
X2ludGVyZmFjZXMuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwogfQogCiB2b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6c2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMTE4LDYz
ICs5NSw3IEBAIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdl
YlZpZXcqIHdlYlZpZXcpCiAKIHZvaWQgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRU
ZXN0SXNSdW5uaW5nKGJvb2wgcnVubmluZykKIHsKLSAgICBpZiAobV90ZXN0UnVubmVyKQotICAg
ICAgICBtX3Rlc3RSdW5uZXItPnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7Ci19Ci0KLXZvaWQg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpjbGVhckNvbnRleHRNZW51RGF0YSgpCi17Ci0g
ICAgbV9kZWxlZ2F0ZS0+Y2xlYXJDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0
SW50ZXJmYWNlczo6SW50ZXJuYWw6OmNsZWFyRWRpdENvbW1hbmQoKQotewotICAgIG1fZGVsZWdh
dGUtPmNsZWFyRWRpdENvbW1hbmQoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50
ZXJuYWw6OnNldEVkaXRDb21tYW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUpCi17Ci0gICAgbV9kZWxlZ2F0ZS0+c2V0RWRpdENvbW1hbmQobmFtZSwg
dmFsdWUpOwotfQotCi1XZWJDb250ZXh0TWVudURhdGEqIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRl
cm5hbDo6bGFzdENvbnRleHRNZW51RGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGVsZWdh
dGUtPmxhc3RDb250ZXh0TWVudURhdGEoKTsKLX0KLQotdm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6OnNldEdhbWVwYWREYXRhKGNvbnN0IFdlYkdhbWVwYWRzJiBwYWRzKQotewotICAg
IG1fZGVsZWdhdGUtPnNldEdhbWVwYWREYXRhKHBhZHMpOwotfQotCi12b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6cHJpbnRNZXNzYWdlKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdl
KQotewotICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtZXNzYWdlKTsKLX0KLQotdm9pZCBX
ZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnBvc3RUYXNrKFdlYlRhc2sqIHRhc2spCi17Ci0g
ICAgbV9kZWxlZ2F0ZS0+cG9zdFRhc2sodGFzayk7Ci19Ci0KLXZvaWQgV2ViVGVzdEludGVyZmFj
ZXM6OkludGVybmFsOjpwb3N0RGVsYXllZFRhc2soV2ViVGFzayogdGFzaywgbG9uZyBsb25nIG1z
KQotewotICAgIG1fZGVsZWdhdGUtPnBvc3REZWxheWVkVGFzayh0YXNrLCBtcyk7Ci19Ci0KLVdl
YlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnJlZ2lzdGVySXNvbGF0ZWRGaWxl
U3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykKLXsK
LSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1
dGVGaWxlbmFtZXMpOwotfQotCi1sb25nIGxvbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQotewotICAgIHJldHVybiBtX2RlbGVnYXRl
LT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKLX0KLQotV2ViS2l0OjpXZWJTdHJpbmcg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4
UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKLXsKLSAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+
Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7CisgICAgbV9pbnRlcmZhY2Vz
LnNldFRlc3RJc1J1bm5pbmcocnVubmluZyk7CiB9CiAKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJU
ZXN0SW50ZXJmYWNlcygpCkBAIC0yMzIsOSArMTUzLDQgQEAgV2ViVGVzdFJ1bm5lciogV2ViVGVz
dEludGVyZmFjZXM6OnRlc3RSdW5uZXIoKQogICAgIHJldHVybiBtX2ludGVybmFsLT50ZXN0UnVu
bmVyKCk7CiB9CiAKLXZvaWQgV2ViVGVzdEludGVyZmFjZXM6OnNldFRlc3RSdW5uZXIoV2ViVGVz
dFJ1bm5lciogdGVzdFJ1bm5lcikKLXsKLSAgICBtX2ludGVybmFsLT5zZXRUZXN0UnVubmVyKHRl
c3RSdW5uZXIpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RSdW5uZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEyNjVkNDY4NjBiNDIyNWY0NDhjMzgwMTk1MWVhNWJmNDJmZmM4NWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
UnVubmVyLmNwcApAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJUZXN0UnVubmVyLmgiCisKKyNpbmNsdWRlICJUZXN0UnVubmVyLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFJ1bm5lcihUZXN0UnVubmVyKiB0ZXN0UnVubmVyKQorICAgIDogbV9wcml2
YXRlKHRlc3RSdW5uZXIpCit7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVk
aXRpbmdDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1
bXBFZGl0aW5nQ2FsbGJhY2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVt
cEFzVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEFzVGV4
dCgpOworfQorCit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZER1bXBBc1RleHQoYm9vbCB2
YWx1ZSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldFNob3VsZER1bXBBc1RleHQodmFsdWUpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cygpOwor
fQorCit2b2lkIFdlYlRlc3RSdW5uZXI6OnNldFNob3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJv
b2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0
cyh2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6
c2hvdWxkRHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5zaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVu
bmVyOjpzaG91bGREdW1wQXNBdWRpbygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
c2hvdWxkRHVtcEFzQXVkaW8oKTsKK30KKworY29uc3QgV2ViQXJyYXlCdWZmZXJWaWV3KiBXZWJU
ZXN0UnVubmVyOjphdWRpb0RhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmF1
ZGlvRGF0YSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVyOjpzZXRTaG91bGREdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5zZXRTaG91
bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKHZhbHVlKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVy
OjpzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxs
YmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxv
YWRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdG9wUHJvdmlzaW9uYWxGcmFt
ZUxvYWRzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFRpdGxlQ2hhbmdl
cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBDcmVhdGVWaWV3KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wQ3JlYXRlVmlldygpOworfQor
Citib29sIFdlYlRlc3RSdW5uZXI6OmNhbk9wZW5XaW5kb3dzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5jYW5PcGVuV2luZG93cygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6
OnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKK30KKworYm9vbCBX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJh
Y2tzKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9u
c2VNSU1FVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3VsZER1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7Cit9CisKK1dlYlBlcm1pc3Npb25DbGllbnQqIFdl
YlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT53ZWJQZXJtaXNzaW9ucygpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZER1
bXBTdGF0dXNDYWxsYmFja3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNob3Vs
ZER1bXBTdGF0dXNDYWxsYmFja3MoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5zaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCk7Cit9CisKK2Jvb2wgV2Vi
VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdCgpOworfQorCitib29sIFdl
YlRlc3RSdW5uZXI6OmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmRlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKTsKK30KKworYm9vbCBX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2hvdWxkRHVtcFNlbGVjdGlvblJlY3QoKTsKK30KKworYm9vbCBXZWJU
ZXN0UnVubmVyOjp0ZXN0UmVwYWludCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
dGVzdFJlcGFpbnQoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpzd2VlcEhvcml6b250YWxs
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3dlZXBIb3Jpem9udGFsbHkoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjppc1ByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5pc1ByaW50aW5nKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6c2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
KCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5lcjo6c2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYlRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIG1fcHJpdmF0ZS0+c2V0VGl0bGVUZXh0RGly
ZWN0aW9uKGRpcmVjdGlvbik7Cit9CisKK2NvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogV2Vi
VGVzdFJ1bm5lcjo6aHR0cEhlYWRlcnNUb0NsZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5odHRwSGVhZGVyc1RvQ2xlYXIoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpz
aG91bGRCbG9ja1JlZGlyZWN0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hv
dWxkQmxvY2tSZWRpcmVjdHMoKTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjp3aWxsU2VuZFJl
cXVlc3RTaG91bGRSZXR1cm5OdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT53
aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsKCk7Cit9CisKK3ZvaWQgV2ViVGVzdFJ1bm5l
cjo6c2V0VG9wTG9hZGluZ0ZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgYm9vbCBjbGVhcikKK3sKKyAg
ICBtX3ByaXZhdGUtPnNldFRvcExvYWRpbmdGcmFtZShmcmFtZSwgY2xlYXIpOworfQorCitXZWJG
cmFtZSogV2ViVGVzdFJ1bm5lcjo6dG9wTG9hZGluZ0ZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT50b3BMb2FkaW5nRnJhbWUoKTsKK30KKwordm9pZCBXZWJUZXN0UnVubmVy
Ojpwb2xpY3lEZWxlZ2F0ZURvbmUoKQoreworICAgIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVE
b25lKCk7Cit9CisKK2Jvb2wgV2ViVGVzdFJ1bm5lcjo6cG9saWN5RGVsZWdhdGVFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoKTsK
K30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUo
KTsKK30KKworYm9vbCBXZWJUZXN0UnVubmVyOjpwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURv
bmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBvbGljeURlbGVnYXRlU2hvdWxk
Tm90aWZ5RG9uZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBv
c3RNZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zaG91bGRJbnRlcmNl
cHRQb3N0TWVzc2FnZSgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpOworfQorCitib29sIFdlYlRlc3RSdW5uZXI6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRhZjljMGU3OWI3MTFkMDc2
NTllYzEwZmEzZmM4NzEzYzFjNTljMzkuLmIxYTdlODdiOGFiMzA5MmZlNmRlM2M5MTdiODRjZjYw
ZjMxNmY1NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNw
cApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgorI2luY2x1
ZGUgIldlYlRlc3RSdW5uZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2Vi
Vmlld0hvc3QuaCIKICNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKQEAgLTE2
MSw5ICsxNjIsNiBAQCB2b2lkIFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgbV90ZXN0
SW50ZXJmYWNlcyA9IGFkb3B0UHRyKG5ldyBXZWJUZXN0SW50ZXJmYWNlcygpKTsKICAgICBtX2Rl
dlRvb2xzVGVzdEludGVyZmFjZXMgPSBhZG9wdFB0cihuZXcgV2ViVGVzdEludGVyZmFjZXMoKSk7
Ci0gICAgbV90ZXN0UnVubmVyID0gYWRvcHRQdHIobmV3IFRlc3RSdW5uZXIoKSk7Ci0gICAgbV90
ZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkpOwotICAgIG1f
ZGV2VG9vbHNUZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIuZ2V0KCkp
OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCiAgICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIgPSBhZG9wdFB0cihuZXcgTm90aWZpY2F0
aW9uUHJlc2VudGVyKHRoaXMpKTsKICNlbmRpZgpAQCAtMTg3LDggKzE4NSw2IEBAIHZvaWQgVGVz
dFNoZWxsOjpjcmVhdGVNYWluV2luZG93KCkKICAgICBtX3dlYlZpZXcgPSBtX3dlYlZpZXdIb3N0
LT53ZWJWaWV3KCk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0RGVsZWdhdGUobV93ZWJWaWV3
SG9zdC5nZXQoKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0V2ViVmlldyhtX3dlYlZpZXcp
OwotICAgIG1fdGVzdFJ1bm5lci0+c2V0RGVsZWdhdGUobV93ZWJWaWV3SG9zdC5nZXQoKSk7Ci0g
ICAgbV90ZXN0UnVubmVyLT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiAgICAgbV9kcnREZXZUb29s
c0FnZW50LT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiB9CiAKQEAgLTE5OCw4ICsxOTQsNiBAQCBU
ZXN0U2hlbGw6On5UZXN0U2hlbGwoKQogICAgIG1fdGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXco
MCk7CiAgICAgbV9kZXZUb29sc1Rlc3RJbnRlcmZhY2VzLT5zZXREZWxlZ2F0ZSgwKTsKICAgICBt
X2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7Ci0gICAgbV90ZXN0UnVubmVy
LT5zZXREZWxlZ2F0ZSgwKTsKLSAgICBtX3Rlc3RSdW5uZXItPnNldFdlYlZpZXcoMCk7CiAgICAg
bV9kcnREZXZUb29sc0FnZW50LT5zZXRXZWJWaWV3KDApOwogICAgIGlmIChtX3dlYlZpZXdIb3N0
KQogICAgICAgICBtX3dlYlZpZXdIb3N0LT5zaHV0ZG93bigpOwpAQCAtMjM1LDYgKzIyOSw4IEBA
IHZvaWQgVGVzdFNoZWxsOjpjbG9zZURldlRvb2xzKCkKICAgICAgICAgbV9kZXZUb29scy0+d2Vi
VmlldygpLT5zZXR0aW5ncygpLT5zZXRNZW1vcnlJbmZvRW5hYmxlZChmYWxzZSk7CiAgICAgICAg
IG1fZHJ0RGV2VG9vbHNBZ2VudC0+cmVzZXQoKTsKICAgICAgICAgbV9kcnREZXZUb29sc0NsaWVu
dC5jbGVhcigpOworICAgICAgICBtX2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldERlbGVnYXRl
KDApOworICAgICAgICBtX2RldlRvb2xzVGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7CiAg
ICAgICAgIGNsb3NlV2luZG93KG1fZGV2VG9vbHMpOwogICAgICAgICBtX2RldlRvb2xzID0gMDsK
ICAgICB9CkBAIC0yNjYsMTEgKzI2MiwxMSBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRlc3Qo
Y29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAgbV9w
YXJhbXMgPSBwYXJhbXM7CiAgICAgc3RyaW5nIHRlc3RVcmwgPSBtX3BhcmFtcy50ZXN0VXJsLnNw
ZWMoKTsKIAotICAgIG1fdGVzdFJ1bm5lci0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMo
c2hvdWxkRHVtcFBpeGVscyk7CisgICAgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5z
ZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhzaG91bGREdW1wUGl4ZWxzKTsKIAogICAgIGlm
ICh0ZXN0VXJsLmZpbmQoImxvYWRpbmcvIikgIT0gc3RyaW5nOjpucG9zCiAgICAgICAgIHx8IHRl
c3RVcmwuZmluZCgibG9hZGluZ1xcIikgIT0gc3RyaW5nOjpucG9zKQotICAgICAgICBtX3Rlc3RS
dW5uZXItPnNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3ModHJ1ZSk7CisgICAgICAgIG1f
dGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxi
YWNrcyh0cnVlKTsKIAogICAgIGlmICh0ZXN0VXJsLmZpbmQoImNvbXBvc2l0aW5nLyIpICE9IHN0
cmluZzo6bnBvcyB8fCB0ZXN0VXJsLmZpbmQoImNvbXBvc2l0aW5nXFwiKSAhPSBzdHJpbmc6Om5w
b3MpIHsKICAgICAgICAgaWYgKCFtX3NvZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVkKQpAQCAtMjgz
LDggKzI3OSw4IEBAIHZvaWQgVGVzdFNoZWxsOjpydW5GaWxlVGVzdChjb25zdCBUZXN0UGFyYW1z
JiBwYXJhbXMsIGJvb2wgc2hvdWxkRHVtcFBpeGVscykKIAogICAgIGlmICh0ZXN0VXJsLmZpbmQo
Ii9kdW1wQXNUZXh0LyIpICE9IHN0cmluZzo6bnBvcwogICAgICAgICB8fCB0ZXN0VXJsLmZpbmQo
IlxcZHVtcEFzVGV4dFxcIikgIT0gc3RyaW5nOjpucG9zKSB7Ci0gICAgICAgIG1fdGVzdFJ1bm5l
ci0+c2V0U2hvdWxkRHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgbV90ZXN0UnVubmVyLT5zZXRT
aG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhmYWxzZSk7CisgICAgICAgIG1fdGVzdEludGVyZmFj
ZXMtPnRlc3RSdW5uZXIoKS0+c2V0U2hvdWxkRHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgbV90
ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0
cyhmYWxzZSk7CiAgICAgfQogCiAgICAgaWYgKHRlc3RVcmwuZmluZCgiL2luc3BlY3Rvci8iKSAh
PSBzdHJpbmc6Om5wb3MKQEAgLTMyNSw3ICszMjEsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cmVzZXRU
ZXN0Q29udHJvbGxlcigpCiAgICAgcmVzZXRXZWJTZXR0aW5ncygqd2ViVmlldygpKTsKICAgICBt
X3Rlc3RJbnRlcmZhY2VzLT5yZXNldEFsbCgpOwogICAgIG1fZGV2VG9vbHNUZXN0SW50ZXJmYWNl
cy0+cmVzZXRBbGwoKTsKLSAgICBtX3Rlc3RSdW5uZXItPnJlc2V0KCk7CiAgICAgbV93ZWJWaWV3
SG9zdC0+cmVzZXQoKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQogICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5yZXNldCgpOwpA
QCAtMzkwLDggKzM4NSwxMSBAQCB2b2lkIFRlc3RTaGVsbDo6c2V0Rm9jdXMoV2ViV2lkZ2V0KiB3
aWRnZXQsIGJvb2wgZW5hYmxlKQogICAgIH0KIH0KIAotdm9pZCBUZXN0U2hlbGw6OnRlc3RGaW5p
c2hlZCgpCit2b2lkIFRlc3RTaGVsbDo6dGVzdEZpbmlzaGVkKFdlYlZpZXdIb3N0KiBob3N0KQog
eworICAgIGlmIChob3N0ID09IG1fZGV2VG9vbHMpCisgICAgICAgIHJldHVybjsKKwogICAgIGlm
ICghbV90ZXN0SXNQZW5kaW5nKQogICAgICAgICByZXR1cm47CiAgICAgbV90ZXN0SXNQZW5kaW5n
ID0gZmFsc2U7CkBAIC00MDQsNyArNDAyLDcgQEAgdm9pZCBUZXN0U2hlbGw6OnRlc3RGaW5pc2hl
ZCgpCiB2b2lkIFRlc3RTaGVsbDo6dGVzdFRpbWVkT3V0KCkKIHsKICAgICBtX3ByaW50ZXIuaGFu
ZGxlVGltZWRPdXQoKTsKLSAgICB0ZXN0RmluaXNoZWQoKTsKKyAgICB0ZXN0RmluaXNoZWQod2Vi
Vmlld0hvc3QoKSk7CiB9CiAKIHN0YXRpYyBzdHJpbmcgZHVtcERvY3VtZW50VGV4dChXZWJGcmFt
ZSogZnJhbWUpCkBAIC01NzksMTQgKzU3NywxNCBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAg
ICAgV2ViRnJhbWUqIGZyYW1lID0gbV93ZWJWaWV3LT5tYWluRnJhbWUoKTsKICAgICBpZiAoIWZy
YW1lKQogICAgICAgICByZXR1cm47Ci0gICAgYm9vbCBzaG91bGREdW1wQXNUZXh0ID0gbV90ZXN0
UnVubmVyLT5zaG91bGREdW1wQXNUZXh0KCk7Ci0gICAgYm9vbCBzaG91bGREdW1wQXNBdWRpbyA9
IG1fdGVzdFJ1bm5lci0+c2hvdWxkRHVtcEFzQXVkaW8oKTsKLSAgICBib29sIHNob3VsZEdlbmVy
YXRlUGl4ZWxSZXN1bHRzID0gbV90ZXN0UnVubmVyLT5zaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0
cygpOwotICAgIGJvb2wgc2hvdWxkRHVtcEFzUHJpbnRlZCA9IG1fdGVzdFJ1bm5lci0+aXNQcmlu
dGluZygpOworICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCA9IG1fdGVzdEludGVyZmFjZXMtPnRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcEFzVGV4dCgpOworICAgIGJvb2wgc2hvdWxkRHVtcEFzQXVk
aW8gPSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBBc0F1ZGlvKCk7
CisgICAgYm9vbCBzaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyA9IG1fdGVzdEludGVyZmFjZXMt
PnRlc3RSdW5uZXIoKS0+c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKTsKKyAgICBib29sIHNo
b3VsZER1bXBBc1ByaW50ZWQgPSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzUHJp
bnRpbmcoKTsKICAgICBib29sIGR1bXBlZEFueXRoaW5nID0gZmFsc2U7CiAKICAgICBpZiAoc2hv
dWxkRHVtcEFzQXVkaW8pIHsKLSAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZp
ZXcqIHdlYkFycmF5QnVmZmVyVmlldyA9IG1fdGVzdFJ1bm5lci0+YXVkaW9EYXRhKCk7CisgICAg
ICAgIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiB3ZWJBcnJheUJ1ZmZlclZpZXcg
PSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmF1ZGlvRGF0YSgpOwogICAgICAgICBt
X3ByaW50ZXIuaGFuZGxlQXVkaW8od2ViQXJyYXlCdWZmZXJWaWV3LT5iYXNlQWRkcmVzcygpLCB3
ZWJBcnJheUJ1ZmZlclZpZXctPmJ5dGVMZW5ndGgoKSk7CiAgICAgICAgIG1fcHJpbnRlci5oYW5k
bGVBdWRpb0Zvb3RlcigpOwogICAgICAgICBtX3ByaW50ZXIuaGFuZGxlVGVzdEZvb3Rlcih0cnVl
KTsKQEAgLTYxMCw3ICs2MDgsNyBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZER1bXBBc1RleHQpIHsKLSAgICAgICAg
ICAgIGJvb2wgcmVjdXJzaXZlID0gbV90ZXN0UnVubmVyLT5zaG91bGREdW1wQ2hpbGRGcmFtZXNB
c1RleHQoKTsKKyAgICAgICAgICAgIGJvb2wgcmVjdXJzaXZlID0gbV90ZXN0SW50ZXJmYWNlcy0+
dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKICAgICAgICAgICAg
IHN0cmluZyBkYXRhVXRmOCA9IHNob3VsZER1bXBBc1ByaW50ZWQgPyBkdW1wRnJhbWVzQXNQcmlu
dGVkVGV4dChmcmFtZSwgcmVjdXJzaXZlKSA6IGR1bXBGcmFtZXNBc1RleHQoZnJhbWUsIHJlY3Vy
c2l2ZSk7CiAgICAgICAgICAgICBpZiAoZndyaXRlKGRhdGFVdGY4LmNfc3RyKCksIDEsIGRhdGFV
dGY4LnNpemUoKSwgc3Rkb3V0KSAhPSBkYXRhVXRmOC5zaXplKCkpCiAgICAgICAgICAgICAgICAg
RkFUQUwoIlNob3J0IHdyaXRlIHRvIHN0ZG91dCwgZGlzayBmdWxsP1xuIik7CkBAIC02MjEsMTAg
KzYxOSwxMCBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAgICAgICAgICAgICBpZiAobV9wYXJh
bXMuZGVidWdSZW5kZXJUcmVlKQogICAgICAgICAgICAgICAgIHJlbmRlclRleHRCZWhhdmlvciB8
PSBXZWJGcmFtZTo6UmVuZGVyQXNUZXh0RGVidWc7CiAgICAgICAgICAgICBwcmludGYoIiVzIiwg
ZnJhbWUtPnJlbmRlclRyZWVBc1RleHQocmVuZGVyVGV4dEJlaGF2aW9yKS51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgICAgIGJvb2wgcmVjdXJzaXZlID0gbV90ZXN0UnVubmVyLT5zaG91bGREdW1w
Q2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygpOworICAgICAgICAgICAgYm9vbCByZWN1cnNpdmUg
PSBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBDaGlsZEZyYW1lU2Ny
b2xsUG9zaXRpb25zKCk7CiAgICAgICAgICAgICBkdW1wRnJhbWVTY3JvbGxQb3NpdGlvbihmcmFt
ZSwgcmVjdXJzaXZlKTsKICAgICAgICAgfQotICAgICAgICBpZiAobV90ZXN0UnVubmVyLT5zaG91
bGREdW1wQmFja0ZvcndhcmRMaXN0KCkpCisgICAgICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50
ZXN0UnVubmVyKCktPnNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSkKICAgICAgICAgICAgIHBy
aW50ZigiJXMiLCBkdW1wQWxsQmFja0ZvcndhcmRMaXN0cygpLmNfc3RyKCkpOwogICAgIH0KICAg
ICBpZiAoZHVtcGVkQW55dGhpbmcgJiYgbV9wYXJhbXMucHJpbnRTZXBhcmF0b3JzKQpAQCAtNjM2
LDE4ICs2MzQsMTggQEAgdm9pZCBUZXN0U2hlbGw6OmR1bXAoKQogICAgICAgICAvLyBzdGRvdXQu
CiAgICAgICAgIGR1bXBlZEFueXRoaW5nID0gdHJ1ZTsKICAgICAgICAgbV93ZWJWaWV3LT5sYXlv
dXQoKTsKLSAgICAgICAgaWYgKG1fdGVzdFJ1bm5lci0+dGVzdFJlcGFpbnQoKSkgeworICAgICAg
ICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT50ZXN0UmVwYWludCgpKSB7CiAg
ICAgICAgICAgICBXZWJTaXplIHZpZXdTaXplID0gbV93ZWJWaWV3LT5zaXplKCk7CiAgICAgICAg
ICAgICBpbnQgd2lkdGggPSB2aWV3U2l6ZS53aWR0aDsKICAgICAgICAgICAgIGludCBoZWlnaHQg
PSB2aWV3U2l6ZS5oZWlnaHQ7Ci0gICAgICAgICAgICBpZiAobV90ZXN0UnVubmVyLT5zd2VlcEhv
cml6b250YWxseSgpKSB7CisgICAgICAgICAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1
bm5lcigpLT5zd2VlcEhvcml6b250YWxseSgpKSB7CiAgICAgICAgICAgICAgICAgZm9yIChXZWJS
ZWN0IGNvbHVtbigwLCAwLCAxLCBoZWlnaHQpOyBjb2x1bW4ueCA8IHdpZHRoOyBjb2x1bW4ueCsr
KQogICAgICAgICAgICAgICAgICAgICBtX3dlYlZpZXdIb3N0LT5wYWludFJlY3QoY29sdW1uKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZm9yIChXZWJSZWN0IGxpbmUo
MCwgMCwgd2lkdGgsIDEpOyBsaW5lLnkgPCBoZWlnaHQ7IGxpbmUueSsrKQogICAgICAgICAgICAg
ICAgICAgICBtX3dlYlZpZXdIb3N0LT5wYWludFJlY3QobGluZSk7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSBpZiAobV90ZXN0UnVubmVyLT5pc1ByaW50aW5nKCkpCisgICAgICAgIH0g
ZWxzZSBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1ByaW50aW5nKCkpCiAg
ICAgICAgICAgICBtX3dlYlZpZXdIb3N0LT5wYWludFBhZ2VzV2l0aEJvdW5kYXJpZXMoKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgbV93ZWJWaWV3SG9zdC0+cGFpbnRJbnZhbGlkYXRlZFJl
Z2lvbigpOwpAQCAtNjU1LDcgKzY1Myw3IEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKICAgICAg
ICAgLy8gU2VlIGlmIHdlIG5lZWQgdG8gZHJhdyB0aGUgc2VsZWN0aW9uIGJvdW5kcyByZWN0LiBT
ZWxlY3Rpb24gYm91bmRzCiAgICAgICAgIC8vIHJlY3QgaXMgdGhlIHJlY3QgZW5jbG9zaW5nIHRo
ZSAocG9zc2libHkgdHJhbnNmb3JtZWQpIHNlbGVjdGlvbi4KICAgICAgICAgLy8gVGhlIHJlY3Qg
c2hvdWxkIGJlIGRyYXduIGFmdGVyIGV2ZXJ5dGhpbmcgaXMgbGFpZCBvdXQgYW5kIHBhaW50ZWQu
Ci0gICAgICAgIGlmIChtX3Rlc3RSdW5uZXItPnNob3VsZER1bXBTZWxlY3Rpb25SZWN0KCkpIHsK
KyAgICAgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFNl
bGVjdGlvblJlY3QoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBzZWxlY3Rpb24g
cmVjdCAtIGRyYXcgYSByZWQgMXB4IGJvcmRlciBlbmNsb3NpbmcgcmVjdAogICAgICAgICAgICAg
V2ViUmVjdCB3ciA9IGZyYW1lLT5zZWxlY3Rpb25Cb3VuZHNSZWN0KCk7CiAgICAgICAgICAgICBp
ZiAoIXdyLmlzRW1wdHkoKSkgewpAQCAtNzUyLDggKzc1MCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpi
aW5kSlNPYmplY3RzVG9XaW5kb3coV2ViRnJhbWUqIGZyYW1lKQogICAgICAgICBtX2RldlRvb2xz
VGVzdEludGVyZmFjZXMtPmJpbmRUbyhmcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBtX3Rlc3RJ
bnRlcmZhY2VzLT5iaW5kVG8oZnJhbWUpOwotICAgIG1fdGVzdFJ1bm5lci0+YmluZFRvSmF2YXNj
cmlwdChmcmFtZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgidGVzdFJ1bm5lciIpKTsKLSAgICBtX3Rl
c3RSdW5uZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoImxh
eW91dFRlc3RDb250cm9sbGVyIikpOwogfQogCiBXZWJWaWV3SG9zdCogVGVzdFNoZWxsOjpjcmVh
dGVOZXdXaW5kb3coY29uc3QgV2ViS2l0OjpXZWJVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXggMzg5ODliZDNkY2IyNTRhNWZiNmE0MDExOWM5
YTE5ZWE2MWRjMzg1Zi4uYjU2MDgwNDczMDRjYzQ1MzkwNmZmYTU0MzBjNWFiNTEzMmI1YjZjNyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKQEAgLTMzLDcgKzMz
LDYgQEAKIAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIlRl
c3RFdmVudFByaW50ZXIuaCIKLSNpbmNsdWRlICJUZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgi
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJUZXN0SW50ZXJmYWNl
cy5oIgogI2luY2x1ZGUgIldlYlZpZXdIb3N0LmgiCkBAIC04NCw3ICs4Myw3IEBAIHB1YmxpYzoK
ICAgICBXZWJLaXQ6OldlYlZpZXcqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBtX3dlYlZpZXc7
IH0KICAgICAvLyBSZXR1cm5zIHRoZSBob3N0IGZvciB0aGUgbWFpbiBXZWJWaWV3LgogICAgIFdl
YlZpZXdIb3N0KiB3ZWJWaWV3SG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlld0hvc3QuZ2V0
KCk7IH0KLSAgICBXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgY29u
c3QgeyByZXR1cm4gbV90ZXN0UnVubmVyLmdldCgpOyB9CisgICAgV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMt
PnRlc3RSdW5uZXIoKTsgfQogICAgIFdlYlRlc3RSdW5uZXI6OldlYkV2ZW50U2VuZGVyKiBldmVu
dFNlbmRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPmV2ZW50U2VuZGVyKCk7
IH0KICAgICBXZWJUZXN0UnVubmVyOjpXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcigpOyB9CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0x
MDgsMTIgKzEwNyw5IEBAIHB1YmxpYzoKICAgICBpbnQgbmF2aWdhdGlvbkVudHJ5Q291bnQoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0Rm9jdXMoV2ViS2l0OjpXZWJXaWRnZXQqLCBib29sIGVuYWJs
ZSk7Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3Qg
eyByZXR1cm4gKG1fdGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1
bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCk7IH0KLSAgICBib29s
IHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCAgeyByZXR1cm4gKG1fdGVz
dElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91bGRE
dW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7IH0KLSAgICBib29sIHNob3VsZER1bXBSZXNvdXJj
ZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgIHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8
fCBtX3Rlc3RJc1BlbmRpbmcpICYmIHRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVz
cG9uc2VNSU1FVHlwZXMoKTsgfQogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBEUlRUZXN0UnVubmVy
IHRvIHNpZ25hbCB0ZXN0IGNvbXBsZXRpb24uCi0gICAgdm9pZCB0ZXN0RmluaXNoZWQoKTsKKyAg
ICB2b2lkIHRlc3RGaW5pc2hlZChXZWJWaWV3SG9zdCopOwogICAgIC8vIENhbGxlZCBieSBEUlRU
ZXN0UnVubmVyIHdoZW4gYSB0ZXN0IGhpdHMgdGhlIHRpbWVvdXQsIGJ1dCBkb2VzIG5vdAogICAg
IC8vIGNhdXNlIGEgaGFuZy4gV2UgY2FuIGF2b2lkIGtpbGxpbmcgVGVzdFNoZWxsIGluIHRoaXMg
Y2FzZSBhbmQgc3RpbGwgZHVtcAogICAgIC8vIHRoZSB0ZXN0IHJlc3VsdHMuCkBAIC0yMDksNyAr
MjA1LDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8RFJURGV2VG9vbHNDbGllbnQ+IG1fZHJ0RGV2
VG9vbHNDbGllbnQ7CiAgICAgT3duUHRyPFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2Vz
PiBtX3Rlc3RJbnRlcmZhY2VzOwogICAgIE93blB0cjxXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50
ZXJmYWNlcz4gbV9kZXZUb29sc1Rlc3RJbnRlcmZhY2VzOwotICAgIE93blB0cjxXZWJUZXN0UnVu
bmVyOjpUZXN0UnVubmVyPiBtX3Rlc3RSdW5uZXI7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
IHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBPd25QdHI8Tm90aWZpY2F0aW9u
UHJlc2VudGVyPiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGZjNjVjZGY5NmI4M2U1
NjNhOGNjMWVjNTdhNTE3ZGRkZmZjMzBlYmYuLjMzNGRiZjlhNjgyOWQ1ZWI0Y2M1MTNhZDQwZjYz
MDQ2NDBkZmRiYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5jcHAKQEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaXNwbGF5SW52
YWxpZGF0ZWRSZWdpb24oKQogCiB2b2lkIFdlYlZpZXdIb3N0Ojp0ZXN0RmluaXNoZWQoKQogewot
ICAgIG1fc2hlbGwtPnRlc3RGaW5pc2hlZCgpOworICAgIG1fc2hlbGwtPnRlc3RGaW5pc2hlZCh0
aGlzKTsKIH0KIAogdm9pZCBXZWJWaWV3SG9zdDo6dGVzdFRpbWVkT3V0KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>