<?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>106324</bug_id>
          
          <creation_ts>2013-01-08 07:24:50 -0800</creation_ts>
          <short_desc>[chromium] move dumpFrameLoadCallbacks and friends to the TestRunner library</short_desc>
          <delta_ts>2013-01-08 12:47:36 -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>802237</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-01-08 07:24:50 -0800</bug_when>
    <thetext>[chromium] move dumpFrameLoadCallbacks and friends to the TestRunner library</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802238</commentid>
    <comment_count>1</comment_count>
      <attachid>181690</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-08 07:26:20 -0800</bug_when>
    <thetext>Created attachment 181690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802239</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 07:27:43 -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>802423</commentid>
    <comment_count>3</comment_count>
      <attachid>181690</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-08 11:21:55 -0800</bug_when>
    <thetext>Comment on attachment 181690
Patch

It&apos;s slightly strange to smash the two client interfaces together into one object, but it doesn&apos;t seem harmful.  If we run into a naming collision, we can refactor things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802449</commentid>
    <comment_count>4</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-01-08 11:42:44 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 181690 [details])
&gt; It&apos;s slightly strange to smash the two client interfaces together into one object, but it doesn&apos;t seem harmful.  If we run into a naming collision, we can refactor things.

Both RenderViewImpl and WebViewHost implement both interfaces..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802454</commentid>
    <comment_count>5</comment_count>
      <attachid>181690</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 11:50:56 -0800</bug_when>
    <thetext>Comment on attachment 181690
Patch

Clearing flags on attachment: 181690

Committed r139090: &lt;http://trac.webkit.org/changeset/139090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802455</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 11:51:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802529</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-08 12:47:36 -0800</bug_when>
    <thetext>&gt; Both RenderViewImpl and WebViewHost implement both interfaces..

Then there shouldn&apos;t be a problem down the line.  :o)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181690</attachid>
            <date>2013-01-08 07:26:20 -0800</date>
            <delta_ts>2013-01-08 11:50:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106324-20130108162324.patch</filename>
            <type>text/plain</type>
            <size>63458</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzZlM2FkOTkyNTVjYWE5OGI5ZmJmYzZkYTM2ZmEwY2Mz
NWY3OTM1YS4uZmU3NDk2ZDY3ZDkyNzliZjAxNGJiYzE3MDE4OWIyOTNlZDk0NmI4MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
MCBAQAorMjAxMy0wMS0wOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIG1vdmUgZHVtcEZyYW1lTG9hZENhbGxiYWNrcyBhbmQgZnJp
ZW5kcyB0byB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgZnJhbWUgbG9hZCBjYWxsYmFja3MgYXJl
IHBhcnQgb2YgdGhlIFdlYkZyYW1lQ2xpZW50LCB0aGUKKyAgICAgICAgV2ViVGVzdFByb3h5IGlz
IG5vdyBpbnRlcmNlcHRpbmcgYm90aCBXZWJWaWV3Q2xpZW50IGFuZCBXZWJGcmFtZUNsaWVudAor
ICAgICAgICBtZXRob2RzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
VGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKToK
KyAgICAgICAgKERSVFRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChEUlRUZXN0UnVubmVyKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0
SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRlc3RQcm94eUJhc2UpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6Oldl
YlRlc3RQcm94eSk6CisgICAgICAgIChXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRJbnZhbGlkYXRlUmVjdCk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZFNjcm9sbFJlY3QpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFByb3h5OjpzY2hlZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHk6OnNjaGVkdWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RQcm94eTo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHk6OnNob3cpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFByb3h5OjpkaWRBdXRvUmVzaXplKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eTo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpzdGFydERyYWdnaW5nKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RQcm94eTo6c2hvdWxkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RQcm94eTo6c2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnNob3VsZEluc2VydE5vZGUpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpzaG91bGRJbnNlcnRUZXh0KToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnNob3VsZERlbGV0ZVJhbmdlKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6c2hvdWxkQXBwbHlTdHlsZSk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZEJlZ2luRWRpdGluZyk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZENoYW5nZVNlbGVjdGlv
bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZENoYW5nZUNvbnRl
bnRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkRW5kRWRpdGlu
Zyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnJlZ2lzdGVySW50ZW50
U2VydmljZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpc3BhdGNo
SW50ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6d2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6
OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdFByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkQ29t
bWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94
eTo6ZGlkUmVjZWl2ZVRpdGxlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94
eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eTo6ZGlkSGFuZGxlT25sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eTo6ZGlkRmFpbExvYWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFByb3h5OjpkaWRGaW5pc2hMb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCk6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudCk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZERldGVjdFhTUyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1
bm5lci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2V0VGVzdElz
UnVubmluZyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RS
dW5uZXI6OnNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRD
YWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c3RvcFBy
b3Zpc2lvbmFsRnJhbWVMb2Fkcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVu
bmVyOjpzaG91bGREdW1wVGl0bGVDaGFuZ2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcjo6cmVzZXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6
c2V0VGVzdElzUnVubmluZyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0U2hvdWxkRHVtcEZyYW1lTG9h
ZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpzaG91bGRE
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpUZXN0UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNob3VsZER1bXBUaXRsZUNoYW5nZXMpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpkdW1wVXNlckdlc3R1cmVJbkZyYW1l
TG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpzZXRT
dG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RS
dW5uZXI6OmR1bXBUaXRsZUNoYW5nZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJ
bnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OndlYlZp
ZXcpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpJbnRlcm5hbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6
SW50ZXJuYWw6OnNldFdlYlZpZXcpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnNldFRlc3RJc1J1
bm5pbmcpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OnNldFdl
YlZpZXcpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OnNldFRl
c3RJc1J1bm5pbmcpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6
OndlYlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJv
eHlCYXNlOjp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6ZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFz
ZTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFByb3h5QmFzZTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OmRpZEZhaWxQcm92
aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6
ZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eUJhc2U6OmRpZFJlY2VpdmVUaXRsZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UHJveHlCYXNlOjpkaWRGaW5pc2hEb2N1bWVudExvYWQpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6ZGlkSGFuZGxlT25sb2FkRXZlbnRzKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OmRpZEZhaWxMb2FkKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OmRpZEZpbmlzaExvYWQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6ZGlkQ2hhbmdlTG9jYXRpb25X
aXRoaW5QYWdlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OmRp
ZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFByb3h5QmFzZTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RQcm94eUJhc2U6OmRpZERldGVjdFhTUyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6cnVuRmls
ZVRlc3QpOgorICAgICAgICAoVGVzdFNoZWxsOjp0ZXN0RmluaXNoZWQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAg
ICAgIChXZWJWaWV3SG9zdDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2Vi
Vmlld0hvc3Q6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChX
ZWJWaWV3SG9zdDo6ZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYlZpZXdI
b3N0OjpkaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmRpZEZhaWxMb2Fk
KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkaWRGaW5pc2hMb2FkKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2ViVmlld0hvc3Qp
OgorCiAyMDEzLTAxLTAyICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEFkZCBjaHJvbWl1bS5vcmcgZW1haWwgYWRkcmVzcyBmb3IgU3RldmUgQmxvY2su
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCmlu
ZGV4IDkyY2EyY2U5ZDVjZGViMzliZTlhOTc1MGJiZjUwNzRlZDYxMzUzMWUuLmFlNDAyMWNhMzFj
OTgyZDZmNDJlYjkyMTY2ZDM5NGY1N2ZkOWViM2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCkBAIC0xMTgsMTUgKzExOCwxMiBAQCBEUlRU
ZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhv
ZCgiZGlzcGxheSIsICZEUlRUZXN0UnVubmVyOjpkaXNwbGF5KTsKICAgICBiaW5kTWV0aG9kKCJk
aXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCAmRFJUVGVzdFJ1bm5lcjo6ZGlzcGxheUludmFsaWRh
dGVkUmVnaW9uKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wQmFja0ZvcndhcmRMaXN0IiwgJkRSVFRl
c3RSdW5uZXI6OmR1bXBCYWNrRm9yd2FyZExpc3QpOwotICAgIGJpbmRNZXRob2QoImR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MiLCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyk7
CiAgICAgYmluZE1ldGhvZCgiZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayIsICZEUlRUZXN0
UnVubmVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJk
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1w
VXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFJl
c291cmNlTG9hZENhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzIiwg
JkRSVFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MpOwogICAgIGJpbmRN
ZXRob2QoImR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzIiwgJkRSVFRlc3RSdW5uZXI6OmR1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wU2VsZWN0
aW9uUmVjdCIsICZEUlRUZXN0UnVubmVyOjpkdW1wU2VsZWN0aW9uUmVjdCk7CiAgICAgYmluZE1l
dGhvZCgiZHVtcFN0YXR1c0NhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3Rh
dHVzQ2hhbmdlcyk7Ci0gICAgYmluZE1ldGhvZCgiZHVtcFRpdGxlQ2hhbmdlcyIsICZEUlRUZXN0
UnVubmVyOjpkdW1wVGl0bGVDaGFuZ2VzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUGVybWlzc2lv
bkNsaWVudENhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENh
bGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcENyZWF0ZVZpZXciLCAmRFJUVGVzdFJ1bm5l
cjo6ZHVtcENyZWF0ZVZpZXcpOwogICAgIGJpbmRNZXRob2QoImVuYWJsZUF1dG9SZXNpemVNb2Rl
IiwgJkRSVFRlc3RSdW5uZXI6OmVuYWJsZUF1dG9SZXNpemVNb2RlKTsKQEAgLTE2Niw3ICsxNjMs
NiBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAg
YmluZE1ldGhvZCgic2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZEUlRUZXN0
UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRCYWNraW5nU2NhbGVGYWN0b3IiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0QmFja2luZ1Nj
YWxlRmFjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQi
LCAmRFJUVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKLSAgICBiaW5k
TWV0aG9kKCJzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzIiwgJkRSVFRlc3RSdW5uZXI6OnNl
dFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMpOwogICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5k
UmVxdWVzdENsZWFySGVhZGVyIiwgJkRSVFRlc3RSdW5uZXI6OnNldFdpbGxTZW5kUmVxdWVzdENs
ZWFySGVhZGVyKTsKICAgICBiaW5kTWV0aG9kKCJzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVs
bCIsICZEUlRUZXN0UnVubmVyOjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbCk7CiAgICAg
YmluZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0IiwgJkRS
VFRlc3RSdW5uZXI6OnNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCk7CkBA
IC0yNTEsMjQgKzI0NywxMiBAQCB2b2lkIERSVFRlc3RSdW5uZXI6OmR1bXBCYWNrRm9yd2FyZExp
c3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdQogICAgIHJlc3VsdC0+
c2V0TnVsbCgpOwogfQogCi12b2lkIERSVFRlc3RSdW5uZXI6OmR1bXBGcmFtZUxvYWRDYWxsYmFj
a3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIG1f
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IHRydWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19
Ci0KIHZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9kdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gdHJ1ZTsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0K
IAotdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
cyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgbV9k
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyA9IHRydWU7Ci0gICAgcmVzdWx0LT5z
ZXROdWxsKCk7Ci19Ci0KIHZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAg
bV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKQEAgLTI5MywxMiArMjc3LDYgQEAg
dm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyhjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50KgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCi12b2lk
IERSVFRlc3RSdW5uZXI6OmR1bXBUaXRsZUNoYW5nZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIG1fZHVtcFRpdGxlQ2hhbmdlcyA9IHRydWU7Ci0g
ICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFBlcm1p
c3Npb25DbGllbnRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCog
cmVzdWx0KQogewogICAgIG1fZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MgPSB0cnVlOwpA
QCAtNDk2LDIyICs0NzQsMTggQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgaWYg
KG1fc2hlbGwpCiAgICAgICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPnNldERldmljZVNjYWxl
RmFjdG9yKDEpOwogICAgIG1fZHVtcENyZWF0ZVZpZXcgPSBmYWxzZTsKLSAgICBtX2R1bXBGcmFt
ZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKICAgICBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2sgPSBmYWxzZTsKLSAgICBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzID0g
ZmFsc2U7CiAgICAgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CiAgICAgbV9k
dW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzID0gZmFsc2U7CiAgICAgbV9kdW1wUmVzb3VyY2VS
ZXNwb25zZU1JTUVUeXBlcyA9IGZhbHNlOwogICAgIG1fZHVtcEJhY2tGb3J3YXJkTGlzdCA9IGZh
bHNlOwogICAgIG1fZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXMgPSBmYWxzZTsKICAgICBtX2R1bXBT
ZWxlY3Rpb25SZWN0ID0gZmFsc2U7Ci0gICAgbV9kdW1wVGl0bGVDaGFuZ2VzID0gZmFsc2U7CiAg
ICAgbV9kdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fd2FpdFVu
dGlsRG9uZSA9IGZhbHNlOwogICAgIG1fY2FuT3BlbldpbmRvd3MgPSBmYWxzZTsKICAgICBtX3Rl
c3RSZXBhaW50ID0gZmFsc2U7CiAgICAgbV9zd2VlcEhvcml6b250YWxseSA9IGZhbHNlOwotICAg
IG1fc3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyA9IGZhbHNlOwogICAgIG1fZGVmZXJNYWluUmVz
b3VyY2VEYXRhTG9hZCA9IHRydWU7CiAgICAgbV93ZWJIaXN0b3J5SXRlbUNvdW50LnNldCgwKTsK
ICAgICBtX3RpdGxlVGV4dERpcmVjdGlvbi5zZXQoImx0ciIpOwpAQCAtNzA1LDEyICs2NzksNiBA
QCB2b2lkIERSVFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcgogICAgIHJlc3VsdC0+c2V0KHdlYmtpdF9zdXBwb3J0
OjpSZXdyaXRlTGF5b3V0VGVzdHNVUkwodXJsKS5zcGVjKCkpOwogfQogCi12b2lkIERSVFRlc3RS
dW5uZXI6OnNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotICAgIG1f
c3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyA9IHRydWU7Ci19Ci0KIHZvaWQgRFJUVGVzdFJ1bm5l
cjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0RSVFRlc3RSdW5uZXIuaAppbmRleCA1YjMwNGYzMDIwOTI0MTMyYzlhN2E4NjY5OGNm
NDlmNjBhMjBlMjg3Li40ODMwZDU1ODdkN2FkNGU4MmVmZmQ4YjNjOWM0MzRhYzQwNmNiZDQxIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCkBAIC03
NiwyMCArNzYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkRSVFRlc3RSdW5uZXIoKTsKIAog
ICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVs
bCB0byBwcmludCBhIGxpbmUgb2YKLSAgICAvLyBkZXNjcmlwdGl2ZSB0ZXh0IGZvciBlYWNoIGZy
YW1lIGxvYWQgY2FsbGJhY2suIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kCi0gICAgLy8gaWdu
b3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KLSAgICB2b2lkIGR1bXBGcmFtZUxvYWRDYWxs
YmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCi0gICAgLy8gVGhp
cyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50
IGEgbGluZSBvZgogICAgIC8vIGRlc2NyaXB0aXZlIHRleHQgZm9yIHRoZSBwcm9ncmVzcyBmaW5p
c2hlZCBjYWxsYmFjay4gSXQgdGFrZXMgbm8KICAgICAvLyBhcmd1bWVudHMsIGFuZCBpZ25vcmVz
IGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgogICAgIHZvaWQgZHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLyBU
aGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJp
bnQgYSBsaW5lIG9mCi0gICAgLy8gdXNlciBnZXN0dXJlIHN0YXR1cyB0ZXh0IGZvciBzb21lIGZy
YW1lIGxvYWQgY2FsbGJhY2tzLiBJdCB0YWtlcyBubwotICAgIC8vIGFyZ3VtZW50cywgYW5kIGln
bm9yZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCi0gICAgdm9pZCBkdW1wVXNlckdlc3R1cmVJ
bkZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
Ci0KICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rf
c2hlbGwgdG8gcHJpbnQgb3V0IGEgdGV4dAogICAgIC8vIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBi
YWNrL2ZvcndhcmQgbGlzdC4gSXQgaWdub3JlcyBhbGwgYXJndW1lbnRzLgogICAgIHZvaWQgZHVt
cEJhY2tGb3J3YXJkTGlzdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBA
IC0xNzAsMTAgKzE2MCw2IEBAIHB1YmxpYzoKICAgICAvLyBDb252ZXJ0cyBhIFVSTCBzdGFydGlu
ZyB3aXRoIGZpbGU6Ly8vdG1wLyB0byB0aGUgbG9jYWwgbWFwcGluZy4KICAgICB2b2lkIHBhdGhU
b0xvY2FsUmVzb3VyY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0g
ICAgLy8gSWYgdHJ1ZSwgY2F1c2VzIHByb3Zpc2lvbmFsIGZyYW1lIGxvYWRzIHRvIGJlIHN0b3Bw
ZWQgZm9yIHRoZSByZW1haW5kZXIgb2YKLSAgICAvLyB0aGUgdGVzdC4KLSAgICB2b2lkIHNldFN0
b3BQcm92aXNpb25hbEZyYW1lTG9hZHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwotCiAgICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQgaW5zZXJ0L2RlbGV0ZS4gVGhp
cyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkBAIC0xOTIsNyAr
MTc4LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2Fk
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIHZvaWQgZHVtcFRp
dGxlQ2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCBkaXNwbGF5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lk
IGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CiAgICAgdm9pZCB0ZXN0UmVwYWludChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CkBAIC0yNjIsMTIgKzI0Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93
aW5nIG1ldGhvZHMgYXJlIG5vdCBleHBvc2VkIHRvIEphdmFTY3JpcHQuCiAgICAgdm9pZCBzZXRX
b3JrUXVldWVGcm96ZW4oYm9vbCBmcm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3pl
bik7IH0KIAotICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIHsgcmV0dXJu
IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQotICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1l
TG9hZENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IHZh
bHVlOyB9CiAgICAgYm9vbCBzaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgeyBy
ZXR1cm4gbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOyB9CiAgICAgdm9pZCBzZXRTaG91
bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wgdmFsdWUpIHsgbV9kdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrID0gdmFsdWU7IH0KLSAgICBib29sIHNob3VsZER1bXBVc2VyR2Vz
dHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wVXNlckdlc3R1cmVJbkZy
YW1lTG9hZENhbGxiYWNrczsgfQotICAgIHZvaWQgc2V0U2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5G
cmFtZUxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkgeyBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzID0gdmFsdWU7IH0KICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRD
YWxsYmFja3MoKSB7cmV0dXJuIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsgfQogICAgIHZv
aWQgc2V0U2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1f
ZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGRE
dW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wUmVzb3VyY2VSZXF1
ZXN0Q2FsbGJhY2tzOyB9CkBAIC0yNzYsMTEgKzI1Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIHNo
b3VsZER1bXBTdGF0dXNDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBXaW5kb3dTdGF0dXNDaGFu
Z2VzOyB9CiAgICAgYm9vbCBzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIHsgcmV0dXJuIG1fZHVt
cFNlbGVjdGlvblJlY3Q7IH0KICAgICBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSB7
IHJldHVybiBtX2R1bXBCYWNrRm9yd2FyZExpc3Q7IH0KLSAgICBib29sIHNob3VsZER1bXBUaXRs
ZUNoYW5nZXMoKSB7IHJldHVybiBtX2R1bXBUaXRsZUNoYW5nZXM7IH0KICAgICBib29sIHNob3Vs
ZER1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wUGVybWlzc2lv
bkNsaWVudENhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSB7IHJl
dHVybiBtX2R1bXBDcmVhdGVWaWV3OyB9CiAgICAgYm9vbCBjYW5PcGVuV2luZG93cygpIHsgcmV0
dXJuIG1fY2FuT3BlbldpbmRvd3M7IH0KLSAgICBib29sIHN0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHMoKSB7IHJldHVybiBtX3N0b3BQcm92aXNpb25hbEZyYW1lTG9hZHM7IH0KICAgICBib29sIGRl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSB7IHJldHVybiBtX2RlZmVyTWFpblJlc291cmNlRGF0
YUxvYWQ7IH0KICAgICB2b2lkIHNldFNob3dEZWJ1Z0xheWVyVHJlZShib29sIHZhbHVlKSB7IG1f
c2hvd0RlYnVnTGF5ZXJUcmVlID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVj
dGlvbihXZWJLaXQ6OldlYlRleHREaXJlY3Rpb24gZGlyKQpAQCAtMzc0LDE4ICszNTMsMTAgQEAg
cHJpdmF0ZToKICAgICAvLyB0YWtpbmcgcG9zc2libGUgdHJhbnNmb3JtcyBvZiB0aGUgc2VsZWN0
aW9uIHJlY3QgaW50byBhY2NvdW50LgogICAgIGJvb2wgbV9kdW1wU2VsZWN0aW9uUmVjdDsKIAot
ICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgb3V0cHV0IGEgZGVzY3JpcHRpdmUg
bGluZSBmb3IgZWFjaCBmcmFtZQotICAgIC8vIGxvYWQgY2FsbGJhY2suCi0gICAgYm9vbCBtX2R1
bXBGcmFtZUxvYWRDYWxsYmFja3M7Ci0KICAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3
aWxsIG91dHB1dCBhIGRlc2NyaXB0aXZlIGxpbmUgZm9yIHRoZSBwcm9ncmVzcwogICAgIC8vIGZp
bmlzaGVkIGNhbGxiYWNrLgogICAgIGJvb2wgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNr
OwogCi0gICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBsaW5lIG9m
IHRoZSB1c2VyIGdlc3R1cmUgc3RhdHVzCi0gICAgLy8gdGV4dCBmb3Igc29tZSBmcmFtZSBsb2Fk
IGNhbGxiYWNrcy4KLSAgICBib29sIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFj
a3M7Ci0KICAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCBhIGRlc2Ny
aXB0aXZlIGxpbmUgZm9yIGVhY2ggcmVzb3VyY2UKICAgICAvLyBsb2FkIGNhbGxiYWNrLgogICAg
IGJvb2wgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwpAQCAtNDA1LDkgKzM3Niw2IEBAIHBy
aXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBkdW1wIGFsbCBjaGFu
Z2VzIHRvIHdpbmRvdy5zdGF0dXMuCiAgICAgYm9vbCBtX2R1bXBXaW5kb3dTdGF0dXNDaGFuZ2Vz
OwogCi0gICAgLy8gSWYgdHJ1ZSwgb3V0cHV0IGEgbWVzc2FnZSB3aGVuIHRoZSBwYWdlIHRpdGxl
IGlzIGNoYW5nZWQuCi0gICAgYm9vbCBtX2R1bXBUaXRsZUNoYW5nZXM7Ci0KICAgICAvLyBJZiB0
cnVlLCBvdXRwdXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGVhY2ggdGltZSBhIHBlcm1pc3Npb24gY2xp
ZW50CiAgICAgLy8gY2FsbGJhY2sgaXMgaW52b2tlZC4gQ3VycmVudGx5IG9ubHkgaW1wbGVtZW50
ZWQgZm9yIGFsbG93SW1hZ2UuCiAgICAgYm9vbCBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJh
Y2tzOwpAQCAtNDMzLDEwICs0MDEsNiBAQCBwcml2YXRlOgogICAgIC8vIGEgc2VyaWVzIG9mIDFw
eC13aWRlLCB2aWV3LXRhbGwgcGFpbnRzIGFjcm9zcyB0aGUgd2lkdGggb2YgdGhlIHZpZXcuCiAg
ICAgYm9vbCBtX3N3ZWVwSG9yaXpvbnRhbGx5OwogCi0gICAgLy8gSWYgdHJ1ZSwgc3RvcHMgcHJv
dmlzaW9uYWwgZnJhbWUgbG9hZHMgZHVyaW5nIHRoZQotICAgIC8vIERpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUgY2FsbGJhY2suCi0gICAgYm9vbCBtX3N0b3BQcm92aXNpb25hbEZyYW1l
TG9hZHM7Ci0KICAgICAvLyBJZiB0cnVlLCBkb24ndCBkdW1wIG91dHB1dCB1bnRpbCBub3RpZnlE
b25lIGlzIGNhbGxlZC4KICAgICBib29sIG1fd2FpdFVudGlsRG9uZTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdElu
dGVyZmFjZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3RJbnRlcmZhY2VzLmgKaW5kZXggZDhkOGIzZmQ3YTA0MThhNDIxMTBmZTllODVm
M2I3ZjM2NjZlMDdkMC4uNGVhYzQyYzZkMGNiZjY5OWE3ZWMwODcyODM1MmI0YzA3NTI0NTU3MCAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGVzdEludGVyZmFjZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNlcy5oCkBAIC01Miw3ICs1Miw5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSopOwogICAgIHZv
aWQgYmluZFRvKFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2b2lkIHJlc2V0QWxsKCk7CisgICAg
dm9pZCBzZXRUZXN0SXNSdW5uaW5nKGJvb2wpOwogCisgICAgV2ViS2l0OjpXZWJWaWV3KiB3ZWJW
aWV3KCkgY29uc3Q7CiAgICAgV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKCk7CiAgICAgV2ViRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKCk7CiAgICAg
V2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApp
bmRleCA4MDZkZTA4NjQ2NGVhNGQyNzNkMDNjNDQwOWViMDM2OGM2M2U1NDZmLi5lZGZjZGIyY2E0
NmFlMDE2NTIyYTNlNmQ4NGZkM2RhNTU4NGNiY2VjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJv
eHkuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
TmF2aWdhdGlvblBvbGljeS5oIgogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VGV4dEFmZmluaXR5LmgiCisjaW5jbHVkZSAiV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUZXh0
RGlyZWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQWNjZXNzaWJpbGl0
eU9iamVjdDsKQEAgLTQ3LDEwICs0OCwxMyBAQCBjbGFzcyBXZWJJbnRlbnRSZXF1ZXN0OwogY2xh
c3MgV2ViSW50ZW50U2VydmljZUluZm87CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViUmFuZ2U7
CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKIGNsYXNzIFdlYlN0cmluZzsKK2NsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJQb2ludDsKLWNs
YXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIHN0cnVjdCBXZWJTaXplOworc3RydWN0IFdl
YlVSTEVycm9yOwogfQogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CkBAIC05Myw2ICs5Nywy
MSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkaWRFbmRFZGl0aW5nKCk7CiAgICAgdm9pZCByZWdp
c3RlckludGVudFNlcnZpY2UoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViSW50
ZW50U2VydmljZUluZm8mKTsKICAgICB2b2lkIGRpc3BhdGNoSW50ZW50KFdlYktpdDo6V2ViRnJh
bWUqIHNvdXJjZSwgY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0Jik7CisgICAgdm9pZCB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6
OldlYlVSTCYgZnJvbSwgY29uc3QgV2ViS2l0OjpXZWJVUkwmIHRvLCBkb3VibGUgaW50ZXJ2YWws
IGRvdWJsZSBmaXJlX3RpbWUpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoV2Vi
S2l0OjpXZWJGcmFtZSopOworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWQoV2ViS2l0
OjpXZWJGcmFtZSopOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkKFdlYktpdDo6V2ViRnJhbWUqKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25h
bExvYWQoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKTsKKyAg
ICB2b2lkIGRpZENvbW1pdFByb3Zpc2lvbmFsTG9hZChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBp
c05ld05hdmlnYXRpb24pOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlKFdlYktpdDo6V2ViRnJh
bWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgdGl0bGUsIFdlYktpdDo6V2ViVGV4dERpcmVj
dGlvbik7CisgICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWQoV2ViS2l0OjpXZWJGcmFtZSop
OworICAgIHZvaWQgZGlkSGFuZGxlT25sb2FkRXZlbnRzKFdlYktpdDo6V2ViRnJhbWUqKTsKKyAg
ICB2b2lkIGRpZEZhaWxMb2FkKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlVS
TEVycm9yJik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkKFdlYktpdDo6V2ViRnJhbWUqKTsKKyAg
ICB2b2lkIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZShXZWJLaXQ6OldlYkZyYW1lKik7Cisg
ICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJhbWUqKTsKKyAg
ICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiBpbnNlY3VyZVVS
TCk7CisgICAgdm9pZCBkaWREZXRlY3RYU1MoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktp
dDo6V2ViVVJMJiBpbnNlY3VyZVVSTCwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpOwogCiBwcml2
YXRlOgogICAgIFdlYlRlc3RJbnRlcmZhY2VzKiBtX3Rlc3RJbnRlcmZhY2VzOwpAQCAtMTAxLDEy
NyArMTIwLDIwNSBAQCBwcml2YXRlOgogICAgIFdlYktpdDo6V2ViUmVjdCBtX3BhaW50UmVjdDsK
IH07CiAKLS8vIFVzZSB0aGlzIHRlbXBsYXRlIHRvIGluamVjdCBtZXRob2RzIGludG8geW91ciBX
ZWJWaWV3Q2xpZW50IGltcGxlbWVudGF0aW9uCi0vLyByZXF1aXJlZCBmb3IgdGhlIHJ1bm5pbmcg
bGF5b3V0IHRlc3RzLgotdGVtcGxhdGU8Y2xhc3MgV2ViVmlld0NsaWVudEltcGwsIHR5cGVuYW1l
IFQ+Ci1jbGFzcyBXZWJUZXN0UHJveHkgOiBwdWJsaWMgV2ViVmlld0NsaWVudEltcGwsIHB1Ymxp
YyBXZWJUZXN0UHJveHlCYXNlIHsKKy8vIFVzZSB0aGlzIHRlbXBsYXRlIHRvIGluamVjdCBtZXRo
b2RzIGludG8geW91ciBXZWJWaWV3Q2xpZW50L1dlYkZyYW1lQ2xpZW50CisvLyBpbXBsZW1lbnRh
dGlvbiByZXF1aXJlZCBmb3IgdGhlIHJ1bm5pbmcgbGF5b3V0IHRlc3RzLgordGVtcGxhdGU8Y2xh
c3MgQmFzZSwgdHlwZW5hbWUgVD4KK2NsYXNzIFdlYlRlc3RQcm94eSA6IHB1YmxpYyBCYXNlLCBw
dWJsaWMgV2ViVGVzdFByb3h5QmFzZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViVGVzdFBy
b3h5KFQgdCkKLSAgICAgICAgOiBXZWJWaWV3Q2xpZW50SW1wbCh0KQorICAgICAgICA6IEJhc2Uo
dCkKICAgICB7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViVGVzdFByb3h5KCkgeyB9CiAKKyAg
ICAvLyBXZWJWaWV3Q2xpZW50IGltcGxlbWVudGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBkaWRJ
bnZhbGlkYXRlUmVjdChjb25zdCBXZWJLaXQ6OldlYlJlY3QmIHJlY3QpCiAgICAgewogICAgICAg
ICBXZWJUZXN0UHJveHlCYXNlOjpkaWRJbnZhbGlkYXRlUmVjdChyZWN0KTsKLSAgICAgICAgV2Vi
Vmlld0NsaWVudEltcGw6OmRpZEludmFsaWRhdGVSZWN0KHJlY3QpOworICAgICAgICBCYXNlOjpk
aWRJbnZhbGlkYXRlUmVjdChyZWN0KTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFNjcm9s
bFJlY3QoaW50IGR4LCBpbnQgZHksIGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgY2xpcFJlY3QpCiAg
ICAgewogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRTY3JvbGxSZWN0KGR4LCBkeSwgY2xp
cFJlY3QpOwotICAgICAgICBXZWJWaWV3Q2xpZW50SW1wbDo6ZGlkU2Nyb2xsUmVjdChkeCwgZHks
IGNsaXBSZWN0KTsKKyAgICAgICAgQmFzZTo6ZGlkU2Nyb2xsUmVjdChkeCwgZHksIGNsaXBSZWN0
KTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCkKICAgICB7CiAg
ICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0gICAgICAgIFdl
YlZpZXdDbGllbnRJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSgpOworICAgICAgICBCYXNlOjpzY2hl
ZHVsZUNvbXBvc2l0ZSgpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRp
b24oKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2NoZWR1bGVBbmltYXRpb24o
KTsKLSAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OnNjaGVkdWxlQW5pbWF0aW9uKCk7CisgICAg
ICAgIEJhc2U6OnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRXaW5kb3dSZWN0KGNvbnN0IFdlYktpdDo6V2ViUmVjdCYgcmVjdCkKICAgICB7CiAgICAgICAg
IFdlYlRlc3RQcm94eUJhc2U6OnNldFdpbmRvd1JlY3QocmVjdCk7Ci0gICAgICAgIFdlYlZpZXdD
bGllbnRJbXBsOjpzZXRXaW5kb3dSZWN0KHJlY3QpOworICAgICAgICBCYXNlOjpzZXRXaW5kb3dS
ZWN0KHJlY3QpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvdyhXZWJLaXQ6OldlYk5hdmln
YXRpb25Qb2xpY3kgcG9saWN5KQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2hv
dyhwb2xpY3kpOwotICAgICAgICBXZWJWaWV3Q2xpZW50SW1wbDo6c2hvdyhwb2xpY3kpOworICAg
ICAgICBCYXNlOjpzaG93KHBvbGljeSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRBdXRv
UmVzaXplKGNvbnN0IFdlYktpdDo6V2ViU2l6ZSYgbmV3U2l6ZSkKICAgICB7CiAgICAgICAgIFdl
YlRlc3RQcm94eUJhc2U6OmRpZEF1dG9SZXNpemUobmV3U2l6ZSk7Ci0gICAgICAgIFdlYlZpZXdD
bGllbnRJbXBsOjpkaWRBdXRvUmVzaXplKG5ld1NpemUpOworICAgICAgICBCYXNlOjpkaWRBdXRv
UmVzaXplKG5ld1NpemUpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb24oY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmpl
Y3QsIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCiAg
ICAgewogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbihvYmplY3QsIG5vdGlmaWNhdGlvbik7Ci0gICAgICAgIFdlYlZpZXdDbGllbnRJbXBsOjpw
b3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihvYmplY3QsIG5vdGlmaWNhdGlvbik7CisgICAg
ICAgIEJhc2U6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKG9iamVjdCwgbm90aWZpY2F0
aW9uKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZ2dpbmcoV2ViS2l0OjpXZWJG
cmFtZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViRHJhZ0RhdGEmIGRhdGEsIFdlYktpdDo6V2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG1hc2ssIGNvbnN0IFdlYktpdDo6V2ViSW1hZ2UmIGltYWdlLCBj
b25zdCBXZWJLaXQ6OldlYlBvaW50JiBwb2ludCkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94
eUJhc2U6OnN0YXJ0RHJhZ2dpbmcoZnJhbWUsIGRhdGEsIG1hc2ssIGltYWdlLCBwb2ludCk7Ci0g
ICAgICAgIFdlYlZpZXdDbGllbnRJbXBsOjpzdGFydERyYWdnaW5nKGZyYW1lLCBkYXRhLCBtYXNr
LCBpbWFnZSwgcG9pbnQpOworICAgICAgICBCYXNlOjpzdGFydERyYWdnaW5nKGZyYW1lLCBkYXRh
LCBtYXNrLCBpbWFnZSwgcG9pbnQpOwogICAgIH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVn
aW5FZGl0aW5nKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHJhbmdlKQogICAgIHsKICAgICAgICAg
V2ViVGVzdFByb3h5QmFzZTo6c2hvdWxkQmVnaW5FZGl0aW5nKHJhbmdlKTsKLSAgICAgICAgcmV0
dXJuIFdlYlZpZXdDbGllbnRJbXBsOjpzaG91bGRCZWdpbkVkaXRpbmcocmFuZ2UpOworICAgICAg
ICByZXR1cm4gQmFzZTo6c2hvdWxkQmVnaW5FZGl0aW5nKHJhbmdlKTsKICAgICB9CiAgICAgdmly
dHVhbCBib29sIHNob3VsZEVuZEVkaXRpbmcoY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYgcmFuZ2Up
CiAgICAgewogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpzaG91bGRFbmRFZGl0aW5nKHJhbmdl
KTsKLSAgICAgICAgcmV0dXJuIFdlYlZpZXdDbGllbnRJbXBsOjpzaG91bGRFbmRFZGl0aW5nKHJh
bmdlKTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OnNob3VsZEVuZEVkaXRpbmcocmFuZ2UpOwogICAg
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShjb25zdCBXZWJLaXQ6OldlYk5v
ZGUmIG5vZGUsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHJhbmdlLCBXZWJLaXQ6OldlYkVkaXRp
bmdBY3Rpb24gYWN0aW9uKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2hvdWxk
SW5zZXJ0Tm9kZShub2RlLCByYW5nZSwgYWN0aW9uKTsKLSAgICAgICAgcmV0dXJuIFdlYlZpZXdD
bGllbnRJbXBsOjpzaG91bGRJbnNlcnROb2RlKG5vZGUsIHJhbmdlLCBhY3Rpb24pOworICAgICAg
ICByZXR1cm4gQmFzZTo6c2hvdWxkSW5zZXJ0Tm9kZShub2RlLCByYW5nZSwgYWN0aW9uKTsKICAg
ICB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmIHRleHQsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHJhbmdlLCBXZWJLaXQ6OldlYkVk
aXRpbmdBY3Rpb24gYWN0aW9uKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2hv
dWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZSwgYWN0aW9uKTsKLSAgICAgICAgcmV0dXJuIFdlYlZp
ZXdDbGllbnRJbXBsOjpzaG91bGRJbnNlcnRUZXh0KHRleHQsIHJhbmdlLCBhY3Rpb24pOworICAg
ICAgICByZXR1cm4gQmFzZTo6c2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZSwgYWN0aW9uKTsK
ICAgICB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoY29uc3Qg
V2ViS2l0OjpXZWJSYW5nZSYgZnJvbVJhbmdlLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiB0b1Jh
bmdlLCBXZWJLaXQ6OldlYlRleHRBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGlu
ZykKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoZnJvbVJhbmdlLCB0b1JhbmdlLCBhZmZpbml0eSwgc3RpbGxTZWxlY3RpbmcpOwotICAg
ICAgICByZXR1cm4gV2ViVmlld0NsaWVudEltcGw6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2Uo
ZnJvbVJhbmdlLCB0b1JhbmdlLCBhZmZpbml0eSwgc3RpbGxTZWxlY3RpbmcpOworICAgICAgICBy
ZXR1cm4gQmFzZTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShmcm9tUmFuZ2UsIHRvUmFuZ2Us
IGFmZmluaXR5LCBzdGlsbFNlbGVjdGluZyk7CiAgICAgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREZWxldGVSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiByYW5nZSkKICAgICB7CiAgICAg
ICAgIFdlYlRlc3RQcm94eUJhc2U6OnNob3VsZERlbGV0ZVJhbmdlKHJhbmdlKTsKLSAgICAgICAg
cmV0dXJuIFdlYlZpZXdDbGllbnRJbXBsOjpzaG91bGREZWxldGVSYW5nZShyYW5nZSk7CisgICAg
ICAgIHJldHVybiBCYXNlOjpzaG91bGREZWxldGVSYW5nZShyYW5nZSk7CiAgICAgfQogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBzdHls
ZSwgY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYgcmFuZ2UpCiAgICAgewogICAgICAgICBXZWJUZXN0
UHJveHlCYXNlOjpzaG91bGRBcHBseVN0eWxlKHN0eWxlLCByYW5nZSk7Ci0gICAgICAgIHJldHVy
biBXZWJWaWV3Q2xpZW50SW1wbDo6c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgcmFuZ2UpOworICAg
ICAgICByZXR1cm4gQmFzZTo6c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgcmFuZ2UpOwogICAgIH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkKICAgICB7CiAgICAgICAgIFdlYlRl
c3RQcm94eUJhc2U6OmRpZEJlZ2luRWRpdGluZygpOwotICAgICAgICBXZWJWaWV3Q2xpZW50SW1w
bDo6ZGlkQmVnaW5FZGl0aW5nKCk7CisgICAgICAgIEJhc2U6OmRpZEJlZ2luRWRpdGluZygpOwog
ICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2VsZWN0aW9uKGJvb2wgaXNFbXB0eVNl
bGVjdGlvbikKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZENoYW5nZVNlbGVj
dGlvbihpc0VtcHR5U2VsZWN0aW9uKTsKLSAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OmRpZENo
YW5nZVNlbGVjdGlvbihpc0VtcHR5U2VsZWN0aW9uKTsKKyAgICAgICAgQmFzZTo6ZGlkQ2hhbmdl
U2VsZWN0aW9uKGlzRW1wdHlTZWxlY3Rpb24pOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2hhbmdlQ29udGVudHMoKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkQ2hh
bmdlQ29udGVudHMoKTsKLSAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OmRpZENoYW5nZUNvbnRl
bnRzKCk7CisgICAgICAgIEJhc2U6OmRpZENoYW5nZUNvbnRlbnRzKCk7CiAgICAgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJh
c2U6OmRpZEVuZEVkaXRpbmcoKTsKLSAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OmRpZEVuZEVk
aXRpbmcoKTsKKyAgICAgICAgQmFzZTo6ZGlkRW5kRWRpdGluZygpOwogICAgIH0KICAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCBj
b25zdCBXZWJLaXQ6OldlYkludGVudFNlcnZpY2VJbmZvJiBzZXJ2aWNlKQogICAgIHsKICAgICAg
ICAgV2ViVGVzdFByb3h5QmFzZTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKGZyYW1lLCBzZXJ2aWNl
KTsKLSAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OnJlZ2lzdGVySW50ZW50U2VydmljZShmcmFt
ZSwgc2VydmljZSk7CisgICAgICAgIEJhc2U6OnJlZ2lzdGVySW50ZW50U2VydmljZShmcmFtZSwg
c2VydmljZSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChXZWJLaXQ6
OldlYkZyYW1lKiBzb3VyY2UsIGNvbnN0IFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCYgcmVxdWVz
dCkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpc3BhdGNoSW50ZW50KHNvdXJj
ZSwgcmVxdWVzdCk7Ci0gICAgICAgIFdlYlZpZXdDbGllbnRJbXBsOjpkaXNwYXRjaEludGVudChz
b3VyY2UsIHJlcXVlc3QpOworICAgICAgICBCYXNlOjpkaXNwYXRjaEludGVudChzb3VyY2UsIHJl
cXVlc3QpOworICAgIH0KKworICAgIC8vIFdlYkZyYW1lQ2xpZW50IGltcGxlbWVudGF0aW9uLgor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYgZnJvbSwgY29uc3QgV2ViS2l0OjpXZWJV
UkwmIHRvLCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlVGltZSkKKyAgICB7CisgICAgICAg
IFdlYlRlc3RQcm94eUJhc2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoZnJhbWUsIGZyb20s
IHRvLCBpbnRlcnZhbCwgZmlyZVRpbWUpOworICAgICAgICBCYXNlOjp3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KGZyYW1lLCBmcm9tLCB0bywgaW50ZXJ2YWwsIGZpcmVUaW1lKTsKKyAgICB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViRnJhbWUq
IGZyYW1lKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QoZnJhbWUpOworICAgICAgICBCYXNlOjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdChm
cmFtZSk7CisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZChX
ZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6
OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKGZyYW1lKTsKKyAgICAgICAgQmFzZTo6ZGlkU3RhcnRQ
cm92aXNpb25hbExvYWQoZnJhbWUpOworICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1l
KQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKGZyYW1lKTsKKyAgICAgICAgQmFzZTo6ZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKGZyYW1lKTsKKyAgICB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWQoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImIGVycm9yKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFBy
b3h5QmFzZTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZChmcmFtZSwgZXJyb3IpOworICAgICAgICBC
YXNlOjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGZyYW1lLCBlcnJvcik7CisgICAgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21taXRQcm92aXNpb25hbExvYWQoV2ViS2l0OjpXZWJGcmFtZSogZnJh
bWUsIGJvb2wgaXNOZXdOYXZpZ2F0aW9uKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFz
ZTo6ZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkKGZyYW1lLCBpc05ld05hdmlnYXRpb24pOworICAg
ICAgICBCYXNlOjpkaWRDb21taXRQcm92aXNpb25hbExvYWQoZnJhbWUsIGlzTmV3TmF2aWdhdGlv
bik7CisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlVGl0bGUoV2ViS2l0OjpXZWJG
cmFtZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiB0aXRsZSwgV2ViS2l0OjpXZWJU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKKyAgICB7CisgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6
OmRpZFJlY2VpdmVUaXRsZShmcmFtZSwgdGl0bGUsIGRpcmVjdGlvbik7CisgICAgICAgIEJhc2U6
OmRpZFJlY2VpdmVUaXRsZShmcmFtZSwgdGl0bGUsIGRpcmVjdGlvbik7CisgICAgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWQoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUp
CisgICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRGaW5pc2hEb2N1bWVudExvYWQo
ZnJhbWUpOworICAgICAgICBCYXNlOjpkaWRGaW5pc2hEb2N1bWVudExvYWQoZnJhbWUpOworICAg
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlT25sb2FkRXZlbnRzKFdlYktpdDo6V2ViRnJh
bWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkSGFuZGxlT25s
b2FkRXZlbnRzKGZyYW1lKTsKKyAgICAgICAgQmFzZTo6ZGlkSGFuZGxlT25sb2FkRXZlbnRzKGZy
YW1lKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkKFdlYktpdDo6V2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJiBlcnJvcikKKyAgICB7CisgICAg
ICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZEZhaWxMb2FkKGZyYW1lLCBlcnJvcik7CisgICAgICAg
IEJhc2U6OmRpZEZhaWxMb2FkKGZyYW1lLCBlcnJvcik7CisgICAgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAg
V2ViVGVzdFByb3h5QmFzZTo6ZGlkRmluaXNoTG9hZChmcmFtZSk7CisgICAgICAgIEJhc2U6OmRp
ZEZpbmlzaExvYWQoZnJhbWUpOworICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAg
V2ViVGVzdFByb3h5QmFzZTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKGZyYW1lKTsKKyAg
ICAgICAgQmFzZTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKGZyYW1lKTsKKyAgICB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJGcmFt
ZSogZnJhbWUpCisgICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50KGZyYW1lKTsKKyAgICAgICAgQmFzZTo6ZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudChmcmFtZSk7CisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRl
bnQoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmIGluc2VjdXJlVVJMKQorICAgIHsKKyAg
ICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KGZyYW1lLCBvcmln
aW4sIGluc2VjdXJlVVJMKTsKKyAgICAgICAgQmFzZTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KGZy
YW1lLCBvcmlnaW4sIGluc2VjdXJlVVJMKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGRpZERl
dGVjdFhTUyhXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViS2l0OjpXZWJVUkwmIGlu
c2VjdXJlVVJMLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkKKyAgICB7CisgICAgICAgIFdlYlRl
c3RQcm94eUJhc2U6OmRpZERldGVjdFhTUyhmcmFtZSwgaW5zZWN1cmVVUkwsIGRpZEJsb2NrRW50
aXJlUGFnZSk7CisgICAgICAgIEJhc2U6OmRpZERldGVjdFhTUyhmcmFtZSwgaW5zZWN1cmVVUkws
IGRpZEJsb2NrRW50aXJlUGFnZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1
bm5lci5oCmluZGV4IDE3NDU3NTNiZThiOTRhYjVjMjBjZDE5OWU0NWVlYzFiNzc4NDliMWYuLjNm
MWIxNmQ5MWU3NzNiZjdkM2EyMTU2NjMxOTEwOTI1ZDZkZjg1OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJUZXN0UnVubmVyLmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIg
ewogLy8gVGVzdFJ1bm5lciogYXMgY3RvciBhcmd1bWVudCwgYW5kIG5vdCBoYXZlIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zLgogY2xhc3MgV2ViVGVzdFJ1bm5lciB7CiBwdWJsaWM6CisgICAgdmly
dHVhbCB2b2lkIHNldFRlc3RJc1J1bm5pbmcoYm9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldFNob3VsZER1bXBBc1RleHQoYm9vbCkgeyB9CkBAIC01MCw2ICs1
MSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBDaGlsZEZyYW1lc0Fz
VGV4dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1
bXBBc0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFdl
YktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25zdCB7IHJldHVybiAwOyB9
CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1
cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIHN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVGl0bGVDaGFuZ2VzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggYTI3NzFk
ZmY4NTZjMTlkZjQ1ZGI3MTJjODZiY2RhNTdjNmJkMzBhOS4uZDc2NjZjOWE5MmNlNzFhNzljOGQ2
NjNmZDc4YjY5NDJkNTRkY2ZlMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTc4LDcgKzc4
LDggQEAgcHVibGljOgogfQogCiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKLSAgICA6IG1fZGVs
ZWdhdGUoMCkKKyAgICA6IG1fdGVzdElzUnVubmluZyhmYWxzZSkKKyAgICAsIG1fZGVsZWdhdGUo
MCkKICAgICAsIG1fd2ViVmlldygwKQogICAgICwgbV9pbnRlbnRDbGllbnQoYWRvcHRQdHIobmV3
IEVtcHR5V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KSkKIHsKQEAgLTEzNyw2ICsxMzgsMTAgQEAg
VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgYmluZE1ldGhvZCgiZHVtcENoaWxkRnJhbWVz
QXNUZXh0IiwgJlRlc3RSdW5uZXI6OmR1bXBDaGlsZEZyYW1lc0FzVGV4dCk7CiAgICAgYmluZE1l
dGhvZCgiZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMiLCAmVGVzdFJ1bm5lcjo6ZHVtcENo
aWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMpOwogICAgIGJpbmRNZXRob2QoInNldEF1ZGlvRGF0YSIs
ICZUZXN0UnVubmVyOjpzZXRBdWRpb0RhdGEpOworICAgIGJpbmRNZXRob2QoImR1bXBGcmFtZUxv
YWRDYWxsYmFja3MiLCAmVGVzdFJ1bm5lcjo6ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyk7CisgICAg
YmluZE1ldGhvZCgiZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MiLCAmVGVzdFJ1
bm5lcjo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MpOworICAgIGJpbmRNZXRo
b2QoInNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMiLCAmVGVzdFJ1bm5lcjo6c2V0U3RvcFBy
b3Zpc2lvbmFsRnJhbWVMb2Fkcyk7CisgICAgYmluZE1ldGhvZCgiZHVtcFRpdGxlQ2hhbmdlcyIs
ICZUZXN0UnVubmVyOjpkdW1wVGl0bGVDaGFuZ2VzKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcg
bWV0aG9kcyBpbnRlcmFjdCB3aXRoIHRoZSBXZWJUZXN0UHJveHkuCiAgICAgYmluZE1ldGhvZCgi
c2VuZFdlYkludGVudFJlc3BvbnNlIiwgJlRlc3RSdW5uZXI6OnNlbmRXZWJJbnRlbnRSZXNwb25z
ZSk7CkBAIC0yMDcsNiArMjEyLDEwIEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1f
ZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMgPSBmYWxzZTsKICAgICBtX2R1bXBDaGlsZEZy
YW1lc0FzVGV4dCA9IGZhbHNlOwogICAgIG1fZHVtcEFzQXVkaW8gPSBmYWxzZTsKKyAgICBtX2R1
bXBGcmFtZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBtX2R1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgbV9zdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRz
ID0gZmFsc2U7CisgICAgbV9kdW1wVGl0bGVDaGFuZ2VzID0gZmFsc2U7CiAKICAgICBtX2dsb2Jh
bEZsYWcuc2V0KGZhbHNlKTsKICAgICBtX3BsYXRmb3JtTmFtZS5zZXQoImNocm9taXVtIik7CkBA
IC0yMTQsNiArMjIzLDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1fdXNlclN0
eWxlU2hlZXRMb2NhdGlvbiA9IFdlYlVSTCgpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFRl
c3RJc1J1bm5pbmcoYm9vbCBydW5uaW5nKQoreworICAgIG1fdGVzdElzUnVubmluZyA9IHJ1bm5p
bmc7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3MoKSBj
b25zdAogewogICAgIHJldHVybiBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzOwpAQCAtMjU5LDYgKzI3
MywzMSBAQCBjb25zdCBXZWJBcnJheUJ1ZmZlclZpZXcqIFRlc3RSdW5uZXI6OmF1ZGlvRGF0YSgp
IGNvbnN0CiAgICAgcmV0dXJuICZtX2F1ZGlvRGF0YTsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjpz
aG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90ZXN0
SXNSdW5uaW5nICYmIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsKK30KKwordm9pZCBUZXN0UnVu
bmVyOjpzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpCit7CisgICAg
bV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzID0gdmFsdWU7Cit9CisKK2Jvb2wgVGVzdFJ1bm5lcjo6
c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdAoreworICAg
IHJldHVybiBtX3Rlc3RJc1J1bm5pbmcgJiYgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENh
bGxiYWNrczsKK30KKworYm9vbCBUZXN0UnVubmVyOjpzdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRz
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzOworfQor
Citib29sIFRlc3RSdW5uZXI6OnNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2R1bXBUaXRsZUNoYW5nZXM7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGFi
S2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYm
IGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKQEAgLTEwMDAsNiArMTAzOSwzMCBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldEF1ZGlvRGF0YShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdQogICAgIG1fZHVtcEFzQXVkaW8gPSB0cnVlOwogfQogCit2b2lkIFRlc3RS
dW5uZXI6OmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCogcmVzdWx0KQoreworICAgIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IHRydWU7
CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFVzZXJH
ZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCogcmVzdWx0KQoreworICAgIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFj
a3MgPSB0cnVlOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RSdW5uZXI6
OnNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIG1fc3RvcFBy
b3Zpc2lvbmFsRnJhbWVMb2FkcyA9IHRydWU7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFRp
dGxlQ2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7
CisgICAgbV9kdW1wVGl0bGVDaGFuZ2VzID0gdHJ1ZTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsK
K30KKwogdm9pZCBUZXN0UnVubmVyOjp3b3JrZXJUaHJlYWRDb3VudChDcHBWYXJpYW50KiByZXN1
bHQpCiB7CiAgICAgcmVzdWx0LT5zZXQoc3RhdGljX2Nhc3Q8aW50PihXZWJXb3JrZXJJbmZvOjpk
ZWRpY2F0ZWRXb3JrZXJDb3VudCgpKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggNDY0ZGRiNzNj
ZTYyZWNhNTg0NTZlZDRiYTNlZWFmZjc0MjVmMDE5MC4uNThkMDZiOTI1ZDUyN2Y2YjkwYWE4ZDA3
ZDQwOTBkOTFiYjAwZDA1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtNTksNiArNTksNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgLy8gV2ViVGVzdFJ1bm5lciBpbXBsZW1l
bnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGVzdElzUnVubmluZyhib29sKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3MoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wQXNUZXh0KGJvb2wpIE9WRVJSSURF
OwpAQCAtNjgsNiArNjksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRHVtcEFzQXVkaW8oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFdlYktp
dDo6V2ViQXJyYXlCdWZmZXJWaWV3KiBhdWRpb0RhdGEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1l
TG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdG9wUHJv
dmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCBPVkVSUklERTsKIAogcHJvdGVjdGVkOgogICAg
IC8vIEZJWE1FOiBtYWtlIHRoZXNlIHByaXZhdGUgb25jZSB0aGUgbW92ZSBmcm9tIERSVFRlc3RS
dW5uZXIgdG8gVGVzdFJ1bm5lcgpAQCAtMjEwLDYgKzIxNiwyMiBAQCBwcml2YXRlOgogICAgIC8v
IERlYWxzIHdpdGggV2ViIEF1ZGlvIFdBViBmaWxlIGRhdGEuCiAgICAgdm9pZCBzZXRBdWRpb0Rh
dGEoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgLy8gVGhpcyBm
dW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IGEg
bGluZSBvZgorICAgIC8vIGRlc2NyaXB0aXZlIHRleHQgZm9yIGVhY2ggZnJhbWUgbG9hZCBjYWxs
YmFjay4gSXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQKKyAgICAvLyBpZ25vcmVzIGFueSB0aGF0
IG1heSBiZSBwcmVzZW50LgorICAgIHZvaWQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHNl
dHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lIG9mCisg
ICAgLy8gdXNlciBnZXN0dXJlIHN0YXR1cyB0ZXh0IGZvciBzb21lIGZyYW1lIGxvYWQgY2FsbGJh
Y2tzLiBJdCB0YWtlcyBubworICAgIC8vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55IHRoYXQg
bWF5IGJlIHByZXNlbnQuCisgICAgdm9pZCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxi
YWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKKyAgICAvLyBJZiB0
cnVlLCBjYXVzZXMgcHJvdmlzaW9uYWwgZnJhbWUgbG9hZHMgdG8gYmUgc3RvcHBlZCBmb3IgdGhl
IHJlbWFpbmRlciBvZgorICAgIC8vIHRoZSB0ZXN0LgorICAgIHZvaWQgc2V0U3RvcFByb3Zpc2lv
bmFsRnJhbWVMb2Fkcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKKyAg
ICB2b2lkIGR1bXBUaXRsZUNoYW5nZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworCiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8gTWV0aG9kcyBpbnRlcmFjdGlu
ZyB3aXRoIHRoZSBXZWJUZXN0UHJveHkKIApAQCAtMjQ0LDYgKzI2Niw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBlbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgV2Vi
S2l0OjpXZWJTdHJpbmcmKTsKICAgICBpbnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAK
KyAgICBib29sIG1fdGVzdElzUnVubmluZzsKKwogICAgIFdlYktpdDo6V2ViVVJMIG1fdXNlclN0
eWxlU2hlZXRMb2NhdGlvbjsKIAogICAgIC8vIGdsb2JhbEZsYWcgaXMgdXNlZCBieSBhIG51bWJl
ciBvZiBsYXlvdXQgdGVzdHMgaW4gaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJMLgpAQCAtMjc0
LDYgKzI5OCwyMSBAQCBwcml2YXRlOgogICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdp
bGwgb3V0cHV0IGEgYmFzZTY0IGVuY29kZWQgV0FWRSBmaWxlLgogICAgIGJvb2wgbV9kdW1wQXNB
dWRpbzsKIAorICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgb3V0cHV0IGEgZGVz
Y3JpcHRpdmUgbGluZSBmb3IgZWFjaCBmcmFtZQorICAgIC8vIGxvYWQgY2FsbGJhY2suCisgICAg
Ym9vbCBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7CisKKyAgICAvLyBJZiB0cnVlLCB0aGUgdGVz
dF9zaGVsbCB3aWxsIG91dHB1dCBhIGxpbmUgb2YgdGhlIHVzZXIgZ2VzdHVyZSBzdGF0dXMKKyAg
ICAvLyB0ZXh0IGZvciBzb21lIGZyYW1lIGxvYWQgY2FsbGJhY2tzLgorICAgIGJvb2wgbV9kdW1w
VXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrczsKKworICAgIC8vIElmIHRydWUsIHN0b3Bz
IHByb3Zpc2lvbmFsIGZyYW1lIGxvYWRzIGR1cmluZyB0aGUKKyAgICAvLyBEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lIGNhbGxiYWNrLgorICAgIGJvb2wgbV9zdG9wUHJvdmlzaW9uYWxG
cmFtZUxvYWRzOworCisgICAgLy8gSWYgdHJ1ZSwgb3V0cHV0IGEgbWVzc2FnZSB3aGVuIHRoZSBw
YWdlIHRpdGxlIGlzIGNoYW5nZWQuCisgICAgYm9vbCBtX2R1bXBUaXRsZUNoYW5nZXM7CisKICAg
ICAvLyBXQVYgYXVkaW8gZGF0YSBpcyBzdG9yZWQgaGVyZS4KICAgICBXZWJLaXQ6OldlYkFycmF5
QnVmZmVyVmlldyBtX2F1ZGlvRGF0YTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMu
Y3BwCmluZGV4IDQzZmVlYWMzNmEyOWQ3ZmM5ODNhNGJmNDdiMTM2YWJiNTJmMjcyZjYuLmY1OTZl
MzhhZTE4MmU5ZGY2MWM5NTBjNTlhNWMzM2ZlMzIxNTg5YmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJU
ZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViVGVzdERlbGVnYXRlLmgiCisjaW5jbHVkZSAiV2ViVGVzdFJ1bm5lci5oIgogCiB1c2lu
ZyBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YTsKIHVzaW5nIFdlYktpdDo6V2ViRnJhbWU7CkBA
IC01Myw2ICs1NCw5IEBAIHB1YmxpYzoKIAogICAgIFRlc3RJbnRlcmZhY2VzKiB0ZXN0SW50ZXJm
YWNlcygpIHsgcmV0dXJuICZtX2ludGVyZmFjZXM7IH0KICAgICB2b2lkIHNldERlbGVnYXRlKFdl
YlRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0V2ViVmlldyhXZWJWaWV3Kik7CisgICAgdm9p
ZCBzZXRUZXN0SXNSdW5uaW5nKGJvb2wpOworICAgIFdlYlZpZXcqIHdlYlZpZXcoKSBjb25zdCB7
IHJldHVybiBtX3dlYlZpZXc7IH0KICAgICBXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSB7IHJldHVybiAmbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjsgfQogICAgIFdlYkV2ZW50U2VuZGVyKiBldmVudFNlbmRlcigpIHsgcmV0dXJuICZtX2V2ZW50
U2VuZGVyOyB9CiAgICAgV2ViVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIHsgcmV0dXJuIG1fdGVz
dFJ1bm5lcjsgfQpAQCAtNzQsNiArNzgsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVGVz
dEludGVyZmFjZXMgbV9pbnRlcmZhY2VzOworICAgIGJvb2wgbV90ZXN0SXNSdW5uaW5nOworICAg
IFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICBXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBtX2Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOwogICAgIFdlYkV2ZW50U2VuZGVyIG1fZXZlbnRTZW5kZXI7
CiAgICAgV2ViVGVzdFJ1bm5lciogbV90ZXN0UnVubmVyOwpAQCAtODEsNyArODcsOSBAQCBwcml2
YXRlOgogfTsKIAogV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpJbnRlcm5hbCgpCi0gICAg
OiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyKG1faW50ZXJmYWNlcy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcigpKQorICAgIDogbV90ZXN0SXNSdW5uaW5nKGZhbHNlKQorICAgICwgbV93ZWJWaWV3
KDApCisgICAgLCBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyKG1faW50ZXJmYWNlcy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcigpKQogICAgICwgbV9ldmVudFNlbmRlcihtX2ludGVyZmFjZXMuZXZl
bnRTZW5kZXIoKSkKICAgICAsIG1fdGVzdFJ1bm5lcigwKQogICAgICwgbV9kZWxlZ2F0ZSgwKQpA
QCAtMTAzLDYgKzExMSwxOCBAQCB2b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6c2V0
RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICB9CiB9CiAKK3ZvaWQgV2Vi
VGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCit7
CisgICAgbV93ZWJWaWV3ID0gd2ViVmlldzsKKyAgICBtX2ludGVyZmFjZXMuc2V0V2ViVmlldyh3
ZWJWaWV3KTsKK30KKwordm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OnNldFRlc3RJ
c1J1bm5pbmcoYm9vbCBydW5uaW5nKQoreworICAgIGlmIChtX3Rlc3RSdW5uZXIpCisgICAgICAg
IG1fdGVzdFJ1bm5lci0+c2V0VGVzdElzUnVubmluZyhydW5uaW5nKTsKK30KKwogdm9pZCBXZWJU
ZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OmNsZWFyQ29udGV4dE1lbnVEYXRhKCkKIHsKICAgICBt
X2RlbGVnYXRlLT5jbGVhckNvbnRleHRNZW51RGF0YSgpOwpAQCAtMTc1LDcgKzE5NSw3IEBAIFdl
YlRlc3RJbnRlcmZhY2VzOjp+V2ViVGVzdEludGVyZmFjZXMoKQogCiB2b2lkIFdlYlRlc3RJbnRl
cmZhY2VzOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgbV9pbnRlcm5hbC0+
dGVzdEludGVyZmFjZXMoKS0+c2V0V2ViVmlldyh3ZWJWaWV3KTsKKyAgICBtX2ludGVybmFsLT5z
ZXRXZWJWaWV3KHdlYlZpZXcpOwogfQogCiB2b2lkIFdlYlRlc3RJbnRlcmZhY2VzOjpzZXREZWxl
Z2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQpAQCAtMTkzLDYgKzIxMywxNiBAQCB2b2lk
IFdlYlRlc3RJbnRlcmZhY2VzOjpyZXNldEFsbCgpCiAgICAgbV9pbnRlcm5hbC0+dGVzdEludGVy
ZmFjZXMoKS0+cmVzZXRBbGwoKTsKIH0KIAordm9pZCBXZWJUZXN0SW50ZXJmYWNlczo6c2V0VGVz
dElzUnVubmluZyhib29sIHJ1bm5pbmcpCit7CisgICAgbV9pbnRlcm5hbC0+c2V0VGVzdElzUnVu
bmluZyhydW5uaW5nKTsKK30KKworV2ViVmlldyogV2ViVGVzdEludGVyZmFjZXM6OndlYlZpZXco
KSBjb25zdAoreworICAgIHJldHVybiBtX2ludGVybmFsLT53ZWJWaWV3KCk7Cit9CisKIFdlYkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKiBXZWJUZXN0SW50ZXJmYWNlczo6YWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKQogewogICAgIHJldHVybiBtX2ludGVybmFsLT5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggZDUwMWMyOGFiOTkxNGIzNWEx
MWMwMTVmZTQxNTIzYTVhNGJjMGNmNi4uMTNjZTk2NGM0ZDc5YjEwZDRmZGE1N2E0OWU0OGMyZDYy
MjIzNjRkNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQu
aCIKICNpbmNsdWRlICJXZWJFdmVudFNlbmRlci5oIgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAj
aW5jbHVkZSAiV2ViSW50ZW50LmgiCiAjaW5jbHVkZSAiV2ViSW50ZW50UmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIldlYkludGVudFNlcnZpY2VJbmZvLmgiCkBAIC00NCw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiV2ViVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViVGVzdEludGVyZmFjZXMuaCIKICNp
bmNsdWRlICJXZWJUZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUg
InBsYXRmb3JtL1dlYkNTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAK
QEAgLTExNCw2ICsxMTYsMzAgQEAgc3RyaW5nIHRleHRBZmZpbml0eURlc2NyaXB0aW9uKFdlYlRl
eHRBZmZpbml0eSBhZmZpbml0eSkKICAgICByZXR1cm4gIihVTktOT1dOIEFGRklOSVRZKSI7CiB9
CiAKK3ZvaWQgcHJpbnRGcmFtZURlc2NyaXB0aW9uKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUs
IFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBzdHJpbmcgbmFtZTggPSBmcmFtZS0+dW5pcXVlTmFt
ZSgpLnV0ZjgoKTsKKyAgICBpZiAoZnJhbWUgPT0gZnJhbWUtPnZpZXcoKS0+bWFpbkZyYW1lKCkp
IHsKKyAgICAgICAgaWYgKCFuYW1lOC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZGVsZWdhdGUt
PnByaW50TWVzc2FnZSgibWFpbiBmcmFtZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGRlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5nKCJtYWluIGZyYW1lIFwi
IikgKyBuYW1lOCArICJcIiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghbmFt
ZTgubGVuZ3RoKCkpIHsKKyAgICAgICAgZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiZnJhbWUgKGFu
b255bW91cykiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkZWxlZ2F0ZS0+cHJpbnRN
ZXNzYWdlKHN0cmluZygiZnJhbWUgXCIiKSArIG5hbWU4ICsgIlwiIik7Cit9CisKK3ZvaWQgcHJp
bnRGcmFtZVVzZXJHZXN0dXJlU3RhdHVzKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUsIFdlYkZy
YW1lKiBmcmFtZSwgY29uc3QgY2hhciogbXNnKQoreworICAgIGJvb2wgaXNVc2VyR2VzdHVyZSA9
IGZyYW1lLT5pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworICAgIGRlbGVnYXRlLT5wcmludE1l
c3NhZ2Uoc3RyaW5nKCJGcmFtZSB3aXRoIHVzZXIgZ2VzdHVyZSBcIiIpICsgKGlzVXNlckdlc3R1
cmUgPyAidHJ1ZSIgOiAiZmFsc2UiKSArICJcIiIgKyBtc2cpOworfQorCiB9CiAKIFdlYlRlc3RQ
cm94eUJhc2U6OldlYlRlc3RQcm94eUJhc2UoKQpAQCAtNDI2LDQgKzQ1MiwxNDQgQEAgdm9pZCBX
ZWJUZXN0UHJveHlCYXNlOjpkaXNwYXRjaEludGVudChXZWJGcmFtZSogc291cmNlLCBjb25zdCBX
ZWJJbnRlbnRSZXF1ZXN0JgogICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5n
KCJIYXZlIHN1Z2dlc3Rpb24gIikgKyBzdWdnZXN0aW9uc1tpXS5zcGVjKCkuZGF0YSgpICsgIlxu
Iik7CiB9CiAKK3ZvaWQgV2ViVGVzdFByb3h5QmFzZTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlVSTCYsIGNvbnN0IFdlYlVSTCYgdG8sIGRvdWJs
ZSwgZG91YmxlKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYg
bV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKCkpIHsKKyAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIGZyYW1l
KTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygiIC0gd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMOiAiKSArIHRvLnNwZWMoKS5kYXRhKCkgKyAiIFxuIik7Cisg
ICAgfQorCisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAmJiBtX3Rlc3RJ
bnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2Fk
Q2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyhtX2RlbGVn
YXRlLCBmcmFtZSwgIiAtIGluIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RcbiIpOworfQorCit2
b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KFdlYkZyYW1lKiBm
cmFtZSkKK3sKKyAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVz
dEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygp
KSB7CisgICAgICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihtX2RlbGVnYXRlLCBmcmFtZSk7Cisg
ICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiIC0gZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZVxuIik7CisgICAgfQorfQorCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkKFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAobV90ZXN0SW50
ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+
c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIHByaW50RnJhbWVEZXNj
cmlwdGlvbihtX2RlbGVnYXRlLCBmcmFtZSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVz
c2FnZSgiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVxuIik7CisgICAgfQorCisg
ICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAmJiBtX3Rlc3RJbnRlcmZhY2Vz
LT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tz
KCkpCisgICAgICAgIHByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyhtX2RlbGVnYXRlLCBmcmFt
ZSwgIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIpOworCisgICAgaWYg
KG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAmJiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPnN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMoKSkgeworICAgICAgICBwcmludEZy
YW1lRGVzY3JpcHRpb24obV9kZWxlZ2F0ZSwgZnJhbWUpOworICAgICAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UoIiAtIHN0b3BwaW5nIGxvYWQgaW4gZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSBjYWxsYmFja1xuIik7CisgICAgICAgIGZyYW1lLT5zdG9wTG9hZGluZygpOworICAg
IH0KK30KKwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWQoV2ViRnJhbWUqIGZyYW1lKQoreworICAgIGlmIChtX3Rlc3RJbnRl
cmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5z
aG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgcHJpbnRGcmFtZURlc2Ny
aXB0aW9uKG1fZGVsZWdhdGUsIGZyYW1lKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNz
YWdlKCIgLSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVxuIik7CisgICAgfQorfQorCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZEZhaWxQcm92aXNp
b25hbExvYWQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJVUkxFcnJvciYpCit7CisgICAgaWYg
KG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAmJiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBwcmlu
dEZyYW1lRGVzY3JpcHRpb24obV9kZWxlZ2F0ZSwgZnJhbWUpOworICAgICAgICBtX2RlbGVnYXRl
LT5wcmludE1lc3NhZ2UoIiAtIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JcbiIpOwor
ICAgIH0KK30KKwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRDb21taXRQcm92aXNpb25hbExv
YWQoV2ViRnJhbWUqIGZyYW1lLCBib29sKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50
ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKG1f
ZGVsZWdhdGUsIGZyYW1lKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSBk
aWRDb21taXRMb2FkRm9yRnJhbWVcbiIpOworICAgIH0KK30KKwordm9pZCBXZWJUZXN0UHJveHlC
YXNlOjpkaWRSZWNlaXZlVGl0bGUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIHRp
dGxlLCBXZWJUZXh0RGlyZWN0aW9uKQoreworICAgIFdlYkNTdHJpbmcgdGl0bGU4ID0gdGl0bGUu
dXRmOCgpOworCisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAmJiBtX3Rl
c3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3Mo
KSkgeworICAgICAgICBwcmludEZyYW1lRGVzY3JpcHRpb24obV9kZWxlZ2F0ZSwgZnJhbWUpOwor
ICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5nKCIgLSBkaWRSZWNlaXZlVGl0
bGU6ICIpICsgdGl0bGU4LmRhdGEoKSArICJcbiIpOworICAgIH0KKworICAgIGlmIChtX3Rlc3RJ
bnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wVGl0bGVDaGFuZ2VzKCkpCisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVz
c2FnZShzdHJpbmcoIlRJVExFIENIQU5HRUQ6ICciKSArIHRpdGxlOC5kYXRhKCkgKyAiJ1xuIik7
CisKK30KKwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRGaW5pc2hEb2N1bWVudExvYWQoV2Vi
RnJhbWUqIGZyYW1lKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkg
JiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkpIHsKKyAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIGZy
YW1lKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSBkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZVxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdW5zaWduZWQgcGVu
ZGluZ1VubG9hZEV2ZW50cyA9IGZyYW1lLT51bmxvYWRMaXN0ZW5lckNvdW50KCk7CisgICAgICAg
IGlmIChwZW5kaW5nVW5sb2FkRXZlbnRzKSB7CisgICAgICAgICAgICBwcmludEZyYW1lRGVzY3Jp
cHRpb24obV9kZWxlZ2F0ZSwgZnJhbWUpOworICAgICAgICAgICAgY2hhciBidWZmZXJbMTAwXTsK
KyAgICAgICAgICAgIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIgLSBoYXMgJXUg
b251bmxvYWQgaGFuZGxlcihzKVxuIiwgcGVuZGluZ1VubG9hZEV2ZW50cyk7CisgICAgICAgICAg
ICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoYnVmZmVyKTsKKyAgICAgICAgfQorICAgIH0KK30K
Kwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRIYW5kbGVPbmxvYWRFdmVudHMoV2ViRnJhbWUq
IGZyYW1lKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90
ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tz
KCkpIHsKKyAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIGZyYW1lKTsK
KyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSBkaWRIYW5kbGVPbmxvYWRFdmVu
dHNGb3JGcmFtZVxuIik7CisgICAgfQorfQorCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZEZh
aWxMb2FkKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViVVJMRXJyb3ImKQoreworICAgIGlmICht
X3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1
bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgcHJpbnRG
cmFtZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIGZyYW1lKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+
cHJpbnRNZXNzYWdlKCIgLSBkaWRGYWlsTG9hZFdpdGhFcnJvclxuIik7CisgICAgfQorfQorCit2
b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZEZpbmlzaExvYWQoV2ViRnJhbWUqIGZyYW1lKQorewor
ICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNl
cy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAg
ICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIGZyYW1lKTsKKyAgICAgICAgbV9k
ZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWVcbiIpOworICAg
IH0KK30KKwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBh
Z2UoV2ViRnJhbWUqIGZyYW1lKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVu
bmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKG1fZGVsZWdh
dGUsIGZyYW1lKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSBkaWRDaGFu
Z2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZVxuIik7CisgICAgfQorfQorCit2b2lkIFdlYlRl
c3RQcm94eUJhc2U6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqKQoreworICAg
IGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+
dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIG1f
ZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiZGlkRGlzcGxheUluc2VjdXJlQ29udGVudFxuIik7Cit9
CisKK3ZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkZyYW1l
KiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJVUkwmKQoreworICAgIGlmICht
X3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1
bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIG1fZGVsZWdh
dGUtPnByaW50TWVzc2FnZSgiZGlkUnVuSW5zZWN1cmVDb250ZW50XG4iKTsKK30KKwordm9pZCBX
ZWJUZXN0UHJveHlCYXNlOjpkaWREZXRlY3RYU1MoV2ViRnJhbWUqLCBjb25zdCBXZWJVUkwmLCBi
b29sKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0
SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkp
CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiZGlkRGV0ZWN0WFNTXG4iKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXgg
NGMzYzk0Y2Y2NDBlNTJjZjQzODQzMTY0ODJhNTgyMTMwOGUxMzY1OC4uMzdkMGI2ZDFiNTRkY2E2
MWUwZjcyZmJkZDkzNzBkNDNhZTY5Nzk1MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0yNTcsNiArMjU3LDcgQEAgdm9pZCBUZXN0U2hlbGw6OnJ1
bkZpbGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmIHBhcmFtcywgYm9vbCBzaG91bGREdW1wUGl4ZWxz
KQogICAgIEFTU0VSVChwYXJhbXMudGVzdFVybC5pc1ZhbGlkKCkpOwogICAgIG1fZHVtcFBpeGVs
c0ZvckN1cnJlbnRUZXN0ID0gc2hvdWxkRHVtcFBpeGVsczsKICAgICBtX3Rlc3RJc1ByZXBhcmlu
ZyA9IHRydWU7CisgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0VGVzdElzUnVubmluZyh0cnVlKTsK
ICAgICBtX3BhcmFtcyA9IHBhcmFtczsKICAgICBzdHJpbmcgdGVzdFVybCA9IG1fcGFyYW1zLnRl
c3RVcmwuc3BlYygpOwogCkBAIC0zODksNiArMzkwLDcgQEAgdm9pZCBUZXN0U2hlbGw6OnRlc3RG
aW5pc2hlZCgpCiAgICAgaWYgKCFtX3Rlc3RJc1BlbmRpbmcpCiAgICAgICAgIHJldHVybjsKICAg
ICBtX3Rlc3RJc1BlbmRpbmcgPSBmYWxzZTsKKyAgICBtX3Rlc3RJbnRlcmZhY2VzLT5zZXRUZXN0
SXNSdW5uaW5nKGZhbHNlKTsKICAgICBpZiAobV9kdW1wV2hlbkZpbmlzaGVkKQogICAgICAgICBk
dW1wKCk7CiAgICAgd2Via2l0X3N1cHBvcnQ6OlF1aXRNZXNzYWdlTG9vcCgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCBiNjQ3ZjJjOWVkZTI4NjRlYzEx
MmM5OWRiMzlhODIyMWFiN2U1YWEyLi4xYzZkZDhmZDdiZGFmZTA2ZGFjZGU0MDU2NDU2YjM2YTQx
ZmRlYTZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAt
MTExLDkgKzExMSw3IEBAIHB1YmxpYzoKICAgICBpbnQgbmF2aWdhdGlvbkVudHJ5Q291bnQoKSBj
b25zdDsKIAogICAgIHZvaWQgc2V0Rm9jdXMoV2ViS2l0OjpXZWJXaWRnZXQqLCBib29sIGVuYWJs
ZSk7Ci0gICAgYm9vbCBzaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1
cm4gKG1fdGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElzUGVuZGluZykgJiYgdGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7IH0KICAgICBib29sIHNob3VsZER1bXBS
ZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiAobV90ZXN0SXNQcmVwYXJp
bmcgfHwgbV90ZXN0SXNQZW5kaW5nKSAmJiB0ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJj
ZVJlcXVlc3RDYWxsYmFja3MoKTsgfQotICAgIGJvb2wgc2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5G
cmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiAobV90ZXN0SXNQcmVwYXJpbmcgfHwg
bV90ZXN0SXNQZW5kaW5nKSAmJiB0ZXN0UnVubmVyKCktPnNob3VsZER1bXBVc2VyR2VzdHVyZUlu
RnJhbWVMb2FkQ2FsbGJhY2tzKCk7IH0KICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRD
YWxsYmFja3MoKSBjb25zdCAgeyByZXR1cm4gKG1fdGVzdElzUHJlcGFyaW5nIHx8IG1fdGVzdElz
UGVuZGluZykgJiYgdGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
KCk7IH0KICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29u
c3QgIHsgcmV0dXJuIChtX3Rlc3RJc1ByZXBhcmluZyB8fCBtX3Rlc3RJc1BlbmRpbmcpICYmIHRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKTsgfQogICAg
IHZvaWQgc2V0SXNMb2FkaW5nKGJvb2wgZmxhZykgeyBtX2lzTG9hZGluZyA9IGZsYWc7IH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCA3YjQz
ZmVlYmVkNzVjZDhlYjI3YzlkNjI2MTI1YzI2Y2E5Nzk0ODljLi4yNDUwMGNmZDYzYjczN2MyOWY5
ODk1YzUwNzVhMGY3YjJlNTY1NjJkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCkBAIC04NTQsMjYgKzg1NCw2IEBAIHZvaWQgV2ViVmlld0hvc3Q6
OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5V2l0aEVycm9yKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qg
V2ViVVJMCiAgICAgICAgICAgICBlcnJvci5kb21haW4udXRmOCgpLmRhdGEoKSwgZXJyb3IucmVh
c29uLCBmcmFtZS0+dW5pcXVlTmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIFdlYlZp
ZXdIb3N0Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qg
V2ViVVJMJiBmcm9tLCBjb25zdCBXZWJVUkwmIHRvLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlX3RpbWUpCi17
Ci0gICAgaWYgKG1fc2hlbGwtPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewotICAg
ICAgICBwcmludEZyYW1lRGVzY3JpcHRpb24oZnJhbWUpOwotICAgICAgICBwcmludGYoIiAtIHdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogJXMgXG4iLCB0by5zcGVjKCkuZGF0YSgpKTsK
LSAgICB9Ci0KLSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxv
YWRDYWxsYmFja3MoKSkKLSAgICAgICAgcHJpbnRGcmFtZVVzZXJHZXN0dXJlU3RhdHVzKGZyYW1l
LCAiIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFxuIik7Ci19Ci0KLXZvaWQgV2ViVmll
d0hvc3Q6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBp
ZiAoIW1fc2hlbGwtPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKLSAgICAgICAgcmV0
dXJuOwotICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7Ci0gICAgZnB1dHMoIiAtIGRp
ZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWVcbiIsIHN0ZG91dCk7Ci19Ci0KIHZvaWQgV2Vi
Vmlld0hvc3Q6OmRpZENyZWF0ZURhdGFTb3VyY2UoV2ViRnJhbWUqLCBXZWJEYXRhU291cmNlKiBk
cykKIHsKICAgICBkcy0+c2V0RXh0cmFEYXRhKG1fcGVuZGluZ0V4dHJhRGF0YS5sZWFrUHRyKCkp
OwpAQCAtODgzLDQxICs4NjMsMTkgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZGlkQ3JlYXRlRGF0YVNv
dXJjZShXZWJGcmFtZSosIFdlYkRhdGFTb3VyY2UqIGRzKQogCiB2b2lkIFdlYlZpZXdIb3N0Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZChXZWJGcmFtZSogZnJhbWUpCiB7Ci0gICAgaWYgKG1fc2hl
bGwtPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewotICAgICAgICBwcmludEZyYW1l
RGVzY3JpcHRpb24oZnJhbWUpOwotICAgICAgICBmcHV0cygiIC0gZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZVxuIiwgc3Rkb3V0KTsKLSAgICB9Ci0KLSAgICBpZiAobV9zaGVsbC0+c2hv
dWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSkKLSAgICAgICAgcHJpbnRG
cmFtZVVzZXJHZXN0dXJlU3RhdHVzKGZyYW1lLCAiIC0gaW4gZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZVxuIik7Ci0KICAgICBpZiAoIW1fdG9wTG9hZGluZ0ZyYW1lKQogICAgICAgICBt
X3RvcExvYWRpbmdGcmFtZSA9IGZyYW1lOwogCi0gICAgaWYgKHRlc3RSdW5uZXIoKS0+c3RvcFBy
b3Zpc2lvbmFsRnJhbWVMb2FkcygpKSB7Ci0gICAgICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihm
cmFtZSk7Ci0gICAgICAgIGZwdXRzKCIgLSBzdG9wcGluZyBsb2FkIGluIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUgY2FsbGJhY2tcbiIsIHN0ZG91dCk7Ci0gICAgICAgIGZyYW1lLT5z
dG9wTG9hZGluZygpOwotICAgIH0KICAgICB1cGRhdGVBZGRyZXNzQmFyKGZyYW1lLT52aWV3KCkp
OwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWQoV2ViRnJhbWUqIGZyYW1lKQogewotICAgIGlmIChtX3NoZWxsLT5zaG91bGRE
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKLSAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9u
KGZyYW1lKTsKLSAgICAgICAgZnB1dHMoIiAtIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lXG4iLCBzdGRvdXQpOwotICAgIH0KICAgICB1cGRhdGVBZGRy
ZXNzQmFyKGZyYW1lLT52aWV3KCkpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViVVJMRXJyb3ImIGVycm9yKQog
ewotICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKLSAg
ICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKLSAgICAgICAgZnB1dHMoIiAtIGRp
ZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JcbiIsIHN0ZG91dCk7Ci0gICAgfQotCiAgICAg
bG9jYXRpb25DaGFuZ2VEb25lKGZyYW1lKTsKIAogICAgIC8vIERvbid0IGRpc3BsYXkgYW4gZXJy
b3IgcGFnZSBpZiB3ZSdyZSBydW5uaW5nIGxheW91dCB0ZXN0cywgYmVjYXVzZQpAQCAtOTI2LDEw
ICs4ODQsNiBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkKFdlYkZy
YW1lKiBmcmFtZSwgY29uc3QgV2ViVVJMRXJyb3ImIGVycgogCiB2b2lkIFdlYlZpZXdIb3N0Ojpk
aWRDb21taXRQcm92aXNpb25hbExvYWQoV2ViRnJhbWUqIGZyYW1lLCBib29sIGlzTmV3TmF2aWdh
dGlvbikKIHsKLSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygp
KSB7Ci0gICAgICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7Ci0gICAgICAgIGZwdXRz
KCIgLSBkaWRDb21taXRMb2FkRm9yRnJhbWVcbiIsIHN0ZG91dCk7Ci0gICAgfQogICAgIHVwZGF0
ZUZvckNvbW1pdHRlZExvYWQoZnJhbWUsIGlzTmV3TmF2aWdhdGlvbik7CiB9CiAKQEAgLTk0MCw1
NyArODk0LDE3IEBAIHZvaWQgV2ViVmlld0hvc3Q6OmRpZENsZWFyV2luZG93T2JqZWN0KFdlYkZy
YW1lKiBmcmFtZSkKIAogdm9pZCBXZWJWaWV3SG9zdDo6ZGlkUmVjZWl2ZVRpdGxlKFdlYkZyYW1l
KiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiB0aXRsZSwgV2ViVGV4dERpcmVjdGlvbiBkaXJlY3Rp
b24pCiB7Ci0gICAgV2ViQ1N0cmluZyB0aXRsZTggPSB0aXRsZS51dGY4KCk7Ci0KLSAgICBpZiAo
bV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7Ci0gICAgICAgIHByaW50
RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7Ci0gICAgICAgIHByaW50ZigiIC0gZGlkUmVjZWl2ZVRp
dGxlOiAlc1xuIiwgdGl0bGU4LmRhdGEoKSk7Ci0gICAgfQotCi0gICAgaWYgKHRlc3RSdW5uZXIo
KS0+c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpKQotICAgICAgICBwcmludGYoIlRJVExFIENIQU5H
RUQ6ICclcydcbiIsIHRpdGxlOC5kYXRhKCkpOwotCiAgICAgc2V0UGFnZVRpdGxlKHRpdGxlKTsK
ICAgICB0ZXN0UnVubmVyKCktPnNldFRpdGxlVGV4dERpcmVjdGlvbihkaXJlY3Rpb24pOwogfQog
Ci12b2lkIFdlYlZpZXdIb3N0OjpkaWRGaW5pc2hEb2N1bWVudExvYWQoV2ViRnJhbWUqIGZyYW1l
KQotewotICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsK
LSAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKLSAgICAgICAgZnB1dHMoIiAt
IGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lXG4iLCBzdGRvdXQpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHVuc2lnbmVkIHBlbmRpbmdVbmxvYWRFdmVudHMgPSBmcmFtZS0+dW5sb2FkTGlz
dGVuZXJDb3VudCgpOwotICAgICAgICBpZiAocGVuZGluZ1VubG9hZEV2ZW50cykgewotICAgICAg
ICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKLSAgICAgICAgICAgIHByaW50Zigi
IC0gaGFzICV1IG9udW5sb2FkIGhhbmRsZXIocylcbiIsIHBlbmRpbmdVbmxvYWRFdmVudHMpOwot
ICAgICAgICB9Ci0gICAgfQotfQotCi12b2lkIFdlYlZpZXdIb3N0OjpkaWRIYW5kbGVPbmxvYWRF
dmVudHMoV2ViRnJhbWUqIGZyYW1lKQotewotICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJh
bWVMb2FkQ2FsbGJhY2tzKCkpIHsKLSAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1l
KTsKLSAgICAgICAgZnB1dHMoIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lXG4iLCBz
dGRvdXQpOwotICAgIH0KLX0KLQogdm9pZCBXZWJWaWV3SG9zdDo6ZGlkRmFpbExvYWQoV2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBXZWJVUkxFcnJvciYgZXJyb3IpCiB7Ci0gICAgaWYgKG1fc2hlbGwt
PnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewotICAgICAgICBwcmludEZyYW1lRGVz
Y3JpcHRpb24oZnJhbWUpOwotICAgICAgICBmcHV0cygiIC0gZGlkRmFpbExvYWRXaXRoRXJyb3Jc
biIsIHN0ZG91dCk7Ci0gICAgfQogICAgIGxvY2F0aW9uQ2hhbmdlRG9uZShmcmFtZSk7CiB9CiAK
IHZvaWQgV2ViVmlld0hvc3Q6OmRpZEZpbmlzaExvYWQoV2ViRnJhbWUqIGZyYW1lKQogewotICAg
IGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKLSAgICAgICAg
cHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKLSAgICAgICAgZnB1dHMoIiAtIGRpZEZpbmlz
aExvYWRGb3JGcmFtZVxuIiwgc3Rkb3V0KTsKLSAgICB9CiAgICAgdXBkYXRlQWRkcmVzc0Jhcihm
cmFtZS0+dmlldygpKTsKICAgICBsb2NhdGlvbkNoYW5nZURvbmUoZnJhbWUpOwogfQpAQCAtMTAw
MiwxNCArOTE2LDYgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZGlkTmF2aWdhdGVXaXRoaW5QYWdlKFdl
YkZyYW1lKiBmcmFtZSwgYm9vbCBpc05ld05hdmlnYXRpb24pCiAgICAgdXBkYXRlRm9yQ29tbWl0
dGVkTG9hZChmcmFtZSwgaXNOZXdOYXZpZ2F0aW9uKTsKIH0KIAotdm9pZCBXZWJWaWV3SG9zdDo6
ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBpZiAo
bV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7Ci0gICAgICAgIHByaW50
RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7Ci0gICAgICAgIGZwdXRzKCIgLSBkaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2VGb3JGcmFtZVxuIiwgc3Rkb3V0KTsKLSAgICB9Ci19Ci0KIHZvaWQgV2Vi
Vmlld0hvc3Q6OmFzc2lnbklkZW50aWZpZXJUb1JlcXVlc3QoV2ViRnJhbWUqLCB1bnNpZ25lZCBp
ZGVudGlmaWVyLCBjb25zdCBXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgICBpZiAoIW1f
c2hlbGwtPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkKQEAgLTExNDMsMjQgKzEw
NDksNiBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWRGYWlsUmVzb3VyY2VMb2FkKFdlYkZyYW1lKiwg
dW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViVQogICAgIHJlbW92ZUlkZW50aWZpZXJGb3JS
ZXF1ZXN0KGlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlZpZXdIb3N0OjpkaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50KFdlYkZyYW1lKikKLXsKLSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpKQotICAgICAgICBmcHV0cygiZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudFxuIiwgc3Rkb3V0KTsKLX0KLQotdm9pZCBXZWJWaWV3SG9zdDo6ZGlkUnVuSW5zZWN1cmVD
b250ZW50KFdlYkZyYW1lKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3Qg
V2ViVVJMJiBpbnNlY3VyZVVSTCkKLXsKLSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpKQotICAgICAgICBmcHV0cygiZGlkUnVuSW5zZWN1cmVDb250ZW50XG4i
LCBzdGRvdXQpOwotfQotCi12b2lkIFdlYlZpZXdIb3N0OjpkaWREZXRlY3RYU1MoV2ViRnJhbWUq
LCBjb25zdCBXZWJVUkwmLCBib29sKQotewotICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJh
bWVMb2FkQ2FsbGJhY2tzKCkpCi0gICAgICAgIGZwdXRzKCJkaWREZXRlY3RYU1NcbiIsIHN0ZG91
dCk7Ci19Ci0KIHZvaWQgV2ViVmlld0hvc3Q6Om9wZW5GaWxlU3lzdGVtKFdlYkZyYW1lKiBmcmFt
ZSwgV2ViRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBjcmVhdGUs
IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MqIGNhbGxiYWNrcykKIHsKICAgICB3ZWJraXRfc3VwcG9y
dDo6T3BlbkZpbGVTeXN0ZW0oZnJhbWUsIHR5cGUsIHNpemUsIGNyZWF0ZSwgY2FsbGJhY2tzKTsK
QEAgLTE1ODksMTIgKzE0NzcsNiBAQCB2b2lkIFdlYlZpZXdIb3N0OjpwcmludEZyYW1lRGVzY3Jp
cHRpb24oV2ViRnJhbWUqIHdlYmZyYW1lKQogICAgIHByaW50ZigiZnJhbWUgXCIlc1wiIiwgbmFt
ZTguY19zdHIoKSk7CiB9CiAKLXZvaWQgV2ViVmlld0hvc3Q6OnByaW50RnJhbWVVc2VyR2VzdHVy
ZVN0YXR1cyhXZWJGcmFtZSogd2ViZnJhbWUsIGNvbnN0IGNoYXIqIG1zZykKLXsKLSAgICBib29s
IGlzVXNlckdlc3R1cmUgPSB3ZWJmcmFtZS0+aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKLSAg
ICBwcmludGYoIkZyYW1lIHdpdGggdXNlciBnZXN0dXJlIFwiJXNcIiVzIiwgaXNVc2VyR2VzdHVy
ZSA/ICJ0cnVlIiA6ICJmYWxzZSIsIG1zZyk7Ci19Ci0KIHZvaWQgV2ViVmlld0hvc3Q6OnByaW50
UmVzb3VyY2VEZXNjcmlwdGlvbih1bnNpZ25lZCBpZGVudGlmaWVyKQogewogICAgIFJlc291cmNl
TWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmZpbmQoaWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCA3
NjkyZTk5MTZmMjA0N2YzMjg1NDk4MmJjNDllOTg1NGYzNDA2NDdiLi40NjVlZmVkMTA4MjE0OTBl
YTJmZDljOWU1NjU2N2VhYWViYmQwZTY3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmgKQEAgLTI0NCwxMCArMjQ0LDYgQEAgY2xhc3MgV2ViVmlld0hvc3Qg
OiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNs
aWVudCwKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViVVJMRXJyb3IgY2Fubm90SGFuZGxlUmVxdWVz
dEVycm9yKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlcXVlc3QmKTsK
ICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViVVJMRXJyb3IgY2FuY2VsbGVkRXJyb3IoV2ViS2l0OjpX
ZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeVdpdGhFcnJvcihXZWJLaXQ6OldlYkZyYW1lKiwgY29u
c3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0KAotICAgICAgICBXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpX
ZWJVUkwmIGZyb20sIGNvbnN0IFdlYktpdDo6V2ViVVJMJiB0bywKLSAgICAgICAgZG91YmxlIGlu
dGVydmFsLCBkb3VibGUgZmlyZVRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdChXZWJLaXQ6OldlYkZyYW1lKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0
ZURhdGFTb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSosIFdlYktpdDo6V2ViRGF0YVNvdXJjZSopOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZChXZWJLaXQ6OldlYkZyYW1l
Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZChXZWJLaXQ6OldlYkZyYW1lKik7CkBAIC0yNTUsMTIgKzI1MSw5IEBAIGNsYXNzIFdl
YlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6
V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFByb3Zpc2lvbmFsTG9h
ZChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBpc05ld05hdmlnYXRpb24pOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRDbGVhcldpbmRvd09iamVjdChXZWJLaXQ6OldlYkZyYW1lKik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVUaXRsZShXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpX
ZWJTdHJpbmcmLCBXZWJLaXQ6OldlYlRleHREaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hEb2N1bWVudExvYWQoV2ViS2l0OjpXZWJGcmFtZSopOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRIYW5kbGVPbmxvYWRFdmVudHMoV2ViS2l0OjpXZWJGcmFtZSopOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsTG9hZChXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJVUkxF
cnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKFdlYktpdDo6V2ViRnJhbWUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTmF2aWdhdGVXaXRoaW5QYWdlKFdlYktpdDo6V2ViRnJh
bWUqLCBib29sIGlzTmV3TmF2aWdhdGlvbik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZShXZWJLaXQ6OldlYkZyYW1lKik7CiAgICAgdmlydHVhbCB2b2lkIGFz
c2lnbklkZW50aWZpZXJUb1JlcXVlc3QoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50
aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVJZGVudGlmaWVyRm9yUmVxdWVzdCh1bnNpZ25lZCBpZGVudGlmaWVyKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2Vi
S2l0OjpXZWJDYWNoZWRVUkxSZXF1ZXN0Jik7CkBAIC0yNjgsOSArMjYxLDYgQEAgY2xhc3MgV2Vi
Vmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpX
ZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktp
dDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJl
c3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9hZChXZWJLaXQ6
OldlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWxSZXNvdXJjZUxvYWQoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNv
bnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJ1
bkluc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTZWN1
cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJik7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZERldGVjdFhTUyhXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmLCBib29s
IGRpZEJsb2NrRW50aXJlUGFnZSk7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5GaWxlU3lzdGVtKFdl
YktpdDo6V2ViRnJhbWUqLCBXZWJLaXQ6OldlYkZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBz
aXplLCBib29sIGNyZWF0ZSwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZUZpbGVTeXN0ZW0oV2ViS2l0OjpXZWJGcmFtZSosIFdlYktpdDo6
V2ViRmlsZVN5c3RlbTo6VHlwZSwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKik7CiAg
ICAgdmlydHVhbCBib29sIHdpbGxDaGVja0FuZERpc3BhdGNoTWVzc2FnZUV2ZW50KApAQCAtMzM0
LDkgKzMyNCw2IEBAIHByaXZhdGU6CiAgICAgLy8gRHVtcGluZyBhIGZyYW1lIHRvIHRoZSBjb25z
b2xlLgogICAgIHZvaWQgcHJpbnRGcmFtZURlc2NyaXB0aW9uKFdlYktpdDo6V2ViRnJhbWUqKTsK
IAotICAgIC8vIER1bXBpbmcgdGhlIHVzZXIgZ2VzdHVyZSBzdGF0dXMgdG8gdGhlIGNvbnNvbGUu
Ci0gICAgdm9pZCBwcmludEZyYW1lVXNlckdlc3R1cmVTdGF0dXMoV2ViS2l0OjpXZWJGcmFtZSos
IGNvbnN0IGNoYXIqKTsKLQogICAgIGJvb2wgaGFzV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9o
YXNXaW5kb3c7IH0KICAgICB2b2lkIHJlc2V0U2Nyb2xsUmVjdCgpOwogICAgIHZvaWQgZGlzY2Fy
ZEJhY2tpbmdTdG9yZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>