<?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>219823</bug_id>
          
          <creation_ts>2020-12-11 22:18:37 -0800</creation_ts>
          <short_desc>[WebAuthn][iOS] Turn on modern WebAuthn for default browsers</short_desc>
          <delta_ts>2021-01-13 15:14:50 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>sam</cc>
    
    <cc>uwolfer</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1714232</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-12-11 22:18:37 -0800</bug_when>
    <thetext>Turn on modern WebAuthn for default browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714233</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-11 22:18:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/72250436&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714238</commentid>
    <comment_count>2</comment_count>
      <attachid>416093</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-12-11 22:29:44 -0800</bug_when>
    <thetext>Created attachment 416093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714281</commentid>
    <comment_count>3</comment_count>
      <attachid>416109</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-12-12 14:25:54 -0800</bug_when>
    <thetext>Created attachment 416109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714287</commentid>
    <comment_count>4</comment_count>
      <attachid>416109</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-12-12 17:44:22 -0800</bug_when>
    <thetext>Comment on attachment 416109
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714290</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-12 17:58:39 -0800</bug_when>
    <thetext>Committed r270743: &lt;https://trac.webkit.org/changeset/270743&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416109.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715275</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-12-16 17:34:35 -0800</bug_when>
    <thetext>A build fix:
Committed r270917: &lt;https://trac.webkit.org/changeset/270917&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715909</commentid>
    <comment_count>7</comment_count>
      <attachid>416109</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-12-19 10:57:07 -0800</bug_when>
    <thetext>Comment on attachment 416109
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3845
&gt; +#if ENABLE(WEB_AUTHN) &amp;&amp; PLATFORM(IOS)
&gt; +    if (auto* connection = WebProcess::singleton().parentProcessConnection()) {
&gt; +        if (isParentProcessAFullWebBrowser(connection-&gt;getAuditToken()))
&gt; +            settings.setWebAuthenticationEnabled(true);
&gt; +    }
&gt; +#endif

This will break some invariants assumed by WebCore::Settings since the &quot;WebAuthenticationEnabled&quot; setting is set as being automatically bound to Settings. This is seen by the fact that in WebPreferencesExpermental.yaml, WebAuthenticationEnabled does not have webcoreBinding: custom or webcoreBinding:  none set.

If you want custom setting behavior, you will need to change WebPreferencesExpermental.yaml and always set the value manually.

That said, I think this is probably not really your intended behavior, since this will make it so that you can not disable feature when isParentProcessAFullWebBrowser() is true, which will break WKPreferencesSetWebAuthenticationEnabled as well as the testing SPIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716130</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-12-21 16:06:40 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #7)
&gt; Comment on attachment 416109 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416109&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3845
&gt; &gt; +#if ENABLE(WEB_AUTHN) &amp;&amp; PLATFORM(IOS)
&gt; &gt; +    if (auto* connection = WebProcess::singleton().parentProcessConnection()) {
&gt; &gt; +        if (isParentProcessAFullWebBrowser(connection-&gt;getAuditToken()))
&gt; &gt; +            settings.setWebAuthenticationEnabled(true);
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; 
&gt; This will break some invariants assumed by WebCore::Settings since the
&gt; &quot;WebAuthenticationEnabled&quot; setting is set as being automatically bound to
&gt; Settings. This is seen by the fact that in WebPreferencesExpermental.yaml,
&gt; WebAuthenticationEnabled does not have webcoreBinding: custom or
&gt; webcoreBinding:  none set.
&gt; 
&gt; If you want custom setting behavior, you will need to change
&gt; WebPreferencesExpermental.yaml and always set the value manually.
&gt; 
&gt; That said, I think this is probably not really your intended behavior, since
&gt; this will make it so that you can not disable feature when
&gt; isParentProcessAFullWebBrowser() is true, which will break
&gt; WKPreferencesSetWebAuthenticationEnabled as well as the testing SPIs.

Oops! Let me fixed that then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719452</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-13 15:14:50 -0800</bug_when>
    <thetext>*** Bug 220559 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416093</attachid>
            <date>2020-12-11 22:29:44 -0800</date>
            <delta_ts>2020-12-12 14:25:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219823-20201211222944.patch</filename>
            <type>text/plain</type>
            <size>6615</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI0MTc4M2I5ZDU2YzJhZTZhNjQxNDZl
NjBmYmIwNTY5NjZiYjAzMDIuLjAxMGZhYmQzODU5OTE5YjY5OTE2YzI4NmYzMmI0NWZlYzFmZTE3
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTItMTEgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dW2lPU10gVHVybiBvbiBtb2Rlcm4g
V2ViQXV0aG4gZm9yIGRlZmF1bHQgYnJvd3NlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTgyMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIy
NTA0MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6Cisg
ICAgICAgIERvZXMgdGhlIG1lYXQuCisKIDIwMjAtMTItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSBGb250IG9iamVjdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmQ2YzRjNGU5YzE2MzVhNDU3YTI4ZWI5NzQyYzg2MDBlOWY3NGZkYS4uYWFm
Y2UyMmU2NDRlODgzODY4ZDAwN2JlYmY4ZDRkNDRiYTFmNWFiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAyMC0xMi0xMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWJBdXRobl1baU9TXSBUdXJuIG9uIG1vZGVybiBXZWJBdXRobiBmb3IgZGVm
YXVsdCBicm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5ODIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjI1MDQzNj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVh
bCB0ZXN0cy4KKworICAgICAgICBUaGlzIHBhdGNoIHR1cm5zIG9uIG1vZGVybiBXZWJBdXRobiBv
biBpT1MgYnkgZGVmYXVsdC4gSW4gYWRkaXRpb24gdG8gdGhhdCwKKyAgICAgICAgaXQgdHVybnMg
b24gV2ViQXV0aG4gZm9yIGFsbCBkZWZhdWx0IGJyb3dzZXJzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb3JlOjppc1dlYkJyb3dzZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSk6CisgICAgICAgIEZvciBhcHBzIHRoYXQg
dHVybiBvbiBXZWJBdXRobiBieSBvdmVycmlkaW5nIHRoZSBleHBlcmltZW50YWwgZmVhdHVyZSBz
ZXR0aW5ncywgcmV0dXJuIHNpbGVudGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cykKKyAgICAgICAgRG9lcyB0aGUgbWVhdC4KKwogMjAyMC0xMi0xMSAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gQWRvcHQgbmV3IFVJIGZv
ciB0aGUgUGxhdGZvcm0gQXV0aGVudGljYXRvciBnZXRBc3NlcnRpb24gZmxvdwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCAwZjFmNGZmOGUyMThmNzg5OGI4ZjRjMTdhODEyNGFhYjMw
NjhjNTIyLi5iNmEzMjY0OTIzMzMwMjI2ZjE0ZGJiMjllZjE5NGU2MjExYjhlOTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtOTY3LDYgKzk2Nyw3IEBAIFdlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRW5hYmxlZDoKICAgICBXZWJLaXRMZWdhY3k6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogICAgIFdlYktpdDoKKyAgICAgICJQTEFURk9STShJT1MpIiA6IHRydWUKICAgICAgIGRlZmF1
bHQ6IGZhbHNlCiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGYwMTBmZTRmNzcz
MjQ0YjIwYjdlYzZmZWE5OTVkYzhiMDI2NmFiZGEuLjkxMzdhYzU5MzdlOTcwNmY0NmZlNDQ5OTFi
MzlhZWRiMGQ5ZDk5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3IuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQog
CisjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNpbmNsdWRlICJGcmFtZUlu
Zm9EYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAt
NDYsNiArNDcsMTUgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKK25hbWVzcGFjZSB7CitzdGF0aWMgYm9vbCBpc1dlYkJyb3dzZXIoKQoreworICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJv
d3Nlcihjb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCkpOworICAgIHJldHVybiBmYWxzZTsKK30K
K30KKwogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3IoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogewpAQCAt
NjIsNiArNzIsOSBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRl
bnRpYWwoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cgogICAgICAgICBtX3dlYlBhZ2Uu
YWRkQ29uc29sZU1lc3NhZ2Uod2ViRnJhbWUtPmZyYW1lSUQoKSwgTWVzc2FnZVNvdXJjZTo6T3Ro
ZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQu
IFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZScgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4iX3MpOwogCiAgICAg
aWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRW5hYmxlZCgpKSB7CisgICAgICAgIGlmICghaXNXZWJCcm93c2VyKCkpCisg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50
aWFsKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMs
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtODAsNiArOTMsOSBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdAogICAg
ICAgICBtX3dlYlBhZ2UuYWRkQ29uc29sZU1lc3NhZ2Uod2ViRnJhbWUtPmZyYW1lSUQoKSwgTWVz
c2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlVzZXIgZ2VzdHVyZSBp
cyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAn
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4i
X3MpOwogCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpKSB7CisgICAgICAgIGlmICghaXNXZWJC
cm93c2VyKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbV93ZWJQYWdlLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6
OkdldEFzc2VydGlvbih3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNo
LCBvcHRpb25zLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkwLDYgKzEwNiw5IEBAIHZvaWQgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBT
ZWN1cml0CiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6aXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBo
YW5kbGVyKQogewogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkgeworICAgICAgICBpZiAoIWlz
V2ViQnJvd3NlcigpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIG1fd2ViUGFnZS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSwgV1RG
TW92ZShoYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGRjMDI3ODRhNzhlN2M1ZTA0MzJi
MmE5YWJmNTc3MTcyMzE4ZTQ2YzAuLjlmMTJiNmVjZDc5M2U2NjJlOTlkMDcwMWMzOWI4YjhlZTE2
ZjQ4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElH
ZW9tZXRyeS5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWZhdWx0
V2ViQnJvd3NlckNoZWNrcy5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCiAj
aW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2VzLmgi
CkBAIC0zODM1LDYgKzM4MzYsMTMgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhj
b25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICNlbmRpZgogCiAgICAgbV9wYWdlLT5z
ZXRUZXh0SW50ZXJhY3Rpb25FbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6dGV4dEludGVyYWN0aW9uRW5hYmxlZEtleSgpKSk7CisKKyNpZiBFTkFCTEUo
V0VCX0FVVEhOKSAmJiBQTEFURk9STShJT1MpCisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKSB7CisgICAg
ICAgIGlmIChpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoY29ubmVjdGlvbi0+Z2V0QXVk
aXRUb2tlbigpKSkKKyAgICAgICAgICAgIHNldHRpbmdzLnNldFdlYkF1dGhlbnRpY2F0aW9uRW5h
YmxlZCh0cnVlKTsKKyAgICB9CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416109</attachid>
            <date>2020-12-12 14:25:54 -0800</date>
            <delta_ts>2020-12-12 17:58:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219823-20201212142553.patch</filename>
            <type>text/plain</type>
            <size>43408</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI0MTc4M2I5ZDU2YzJhZTZhNjQxNDZl
NjBmYmIwNTY5NjZiYjAzMDIuLjAxMGZhYmQzODU5OTE5YjY5OTE2YzI4NmYzMmI0NWZlYzFmZTE3
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTItMTEgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dW2lPU10gVHVybiBvbiBtb2Rlcm4g
V2ViQXV0aG4gZm9yIGRlZmF1bHQgYnJvd3NlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTgyMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIy
NTA0MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6Cisg
ICAgICAgIERvZXMgdGhlIG1lYXQuCisKIDIwMjAtMTItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBDYWNoZSBGb250IG9iamVjdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmQ2YzRjNGU5YzE2MzVhNDU3YTI4ZWI5NzQyYzg2MDBlOWY3NGZkYS4uYWFm
Y2UyMmU2NDRlODgzODY4ZDAwN2JlYmY4ZDRkNDRiYTFmNWFiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAyMC0xMi0xMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWJBdXRobl1baU9TXSBUdXJuIG9uIG1vZGVybiBXZWJBdXRobiBmb3IgZGVm
YXVsdCBicm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE5ODIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjI1MDQzNj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVh
bCB0ZXN0cy4KKworICAgICAgICBUaGlzIHBhdGNoIHR1cm5zIG9uIG1vZGVybiBXZWJBdXRobiBv
biBpT1MgYnkgZGVmYXVsdC4gSW4gYWRkaXRpb24gdG8gdGhhdCwKKyAgICAgICAgaXQgdHVybnMg
b24gV2ViQXV0aG4gZm9yIGFsbCBkZWZhdWx0IGJyb3dzZXJzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb3JlOjppc1dlYkJyb3dzZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSk6CisgICAgICAgIEZvciBhcHBzIHRoYXQg
dHVybiBvbiBXZWJBdXRobiBieSBvdmVycmlkaW5nIHRoZSBleHBlcmltZW50YWwgZmVhdHVyZSBz
ZXR0aW5ncywgcmV0dXJuIHNpbGVudGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cykKKyAgICAgICAgRG9lcyB0aGUgbWVhdC4KKwogMjAyMC0xMi0xMSAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gQWRvcHQgbmV3IFVJIGZv
ciB0aGUgUGxhdGZvcm0gQXV0aGVudGljYXRvciBnZXRBc3NlcnRpb24gZmxvdwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCAwZjFmNGZmOGUyMThmNzg5OGI4ZjRjMTdhODEyNGFhYjMw
NjhjNTIyLi5iNmEzMjY0OTIzMzMwMjI2ZjE0ZGJiMjllZjE5NGU2MjExYjhlOTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtOTY3LDYgKzk2Nyw3IEBAIFdlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRW5hYmxlZDoKICAgICBXZWJLaXRMZWdhY3k6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogICAgIFdlYktpdDoKKyAgICAgICJQTEFURk9STShJT1MpIiA6IHRydWUKICAgICAgIGRlZmF1
bHQ6IGZhbHNlCiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGYwMTBmZTRmNzcz
MjQ0YjIwYjdlYzZmZWE5OTVkYzhiMDI2NmFiZGEuLjkxMzdhYzU5MzdlOTcwNmY0NmZlNDQ5OTFi
MzlhZWRiMGQ5ZDk5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3IuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQog
CisjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNpbmNsdWRlICJGcmFtZUlu
Zm9EYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAt
NDYsNiArNDcsMTUgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKK25hbWVzcGFjZSB7CitzdGF0aWMgYm9vbCBpc1dlYkJyb3dzZXIoKQoreworICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJv
d3Nlcihjb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCkpOworICAgIHJldHVybiBmYWxzZTsKK30K
K30KKwogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3IoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogewpAQCAt
NjIsNiArNzIsOSBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRl
bnRpYWwoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cgogICAgICAgICBtX3dlYlBhZ2Uu
YWRkQ29uc29sZU1lc3NhZ2Uod2ViRnJhbWUtPmZyYW1lSUQoKSwgTWVzc2FnZVNvdXJjZTo6T3Ro
ZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlVzZXIgZ2VzdHVyZSBpcyBub3QgZGV0ZWN0ZWQu
IFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAnbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZScgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4iX3MpOwogCiAgICAg
aWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRW5hYmxlZCgpKSB7CisgICAgICAgIGlmICghaXNXZWJCcm93c2VyKCkpCisg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50
aWFsKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMs
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtODAsNiArOTMsOSBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdAogICAg
ICAgICBtX3dlYlBhZ2UuYWRkQ29uc29sZU1lc3NhZ2Uod2ViRnJhbWUtPmZyYW1lSUQoKSwgTWVz
c2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlVzZXIgZ2VzdHVyZSBp
cyBub3QgZGV0ZWN0ZWQuIFRvIHVzZSB0aGUgcGxhdGZvcm0gYXV0aGVudGljYXRvciwgY2FsbCAn
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgd2l0aGluIHVzZXIgYWN0aXZhdGVkIGV2ZW50cy4i
X3MpOwogCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpKSB7CisgICAgICAgIGlmICghaXNXZWJC
cm93c2VyKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbV93ZWJQYWdlLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6
OkdldEFzc2VydGlvbih3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNo
LCBvcHRpb25zLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkwLDYgKzEwNiw5IEBAIHZvaWQgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBT
ZWN1cml0CiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6aXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBo
YW5kbGVyKQogewogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkgeworICAgICAgICBpZiAoIWlz
V2ViQnJvd3NlcigpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIG1fd2ViUGFnZS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSwgV1RG
TW92ZShoYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGRjMDI3ODRhNzhlN2M1ZTA0MzJi
MmE5YWJmNTc3MTcyMzE4ZTQ2YzAuLmM2ZDg5ZDA5NzYzNTMxYzMzZWRiMjhiZjNhMDA4MTM4MjA0
MDJkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0yNjcsNiArMjY3LDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNpbmNsdWRlICJJbnNlcnRUZXh0T3B0
aW9ucy5oIgogI2luY2x1ZGUgIlBERlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIuaCIKQEAgLTM4MzUsNiArMzgzNiwxMyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVBy
ZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogI2VuZGlmCiAKICAg
ICBtX3BhZ2UtPnNldFRleHRJbnRlcmFjdGlvbkVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0SW50ZXJhY3Rpb25FbmFibGVkS2V5KCkpKTsKKwor
I2lmIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoYXV0byogY29u
bmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCkpIHsKKyAgICAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcihjb25uZWN0
aW9uLT5nZXRBdWRpdFRva2VuKCkpKQorICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVu
dGljYXRpb25FbmFibGVkKHRydWUpOworICAgIH0KKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDI3ODY3MTUzMDJmZDgxZmZmN2RjOWIxMGIwNjNmZmY4ZmQzYWFmMzUuLjIxNTBi
MjFkNzRhOGYwYTUwZDQ5MGNjNDFhMmZhYWQyMDViNDVhN2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMi0x
MiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRo
bl1baU9TXSBUdXJuIG9uIG1vZGVybiBXZWJBdXRobiBmb3IgZGVmYXVsdCBicm93c2VycworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5ODIzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MjI1MDQzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Oldl
YkNvcmU6OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgVHVybiBtb2Rlcm4gV2ViQXV0aG4g
b2ZmIGZvciBvbGQgdGVzdHMuCisKIDIwMjAtMTItMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVHJhY2twYWQgYW5kIE1vdXNlIHNjcm9sbCBldmVu
dHMgb24gaVBhZCBvbmx5IGZpcmUgInBvaW50ZXJtb3ZlIiAtLSBub3QgIndoZWVsIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGE3MGYzZGFiZGNmMDgyZmNjMDVlNTQw
NDU5ZTRiYmVlOWJiMWNkMjIuLjA1ZGI0ZmYxZTQ1YTc4MGVkZjY2MTIyMmJiNjg1NzdkNjc0Zjc3
ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTI4OSw2ICsyODks
MjIgQEAgc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpCiAgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7CiB9CiAKK3N0
YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKQoreworICAgIHN0YXRpYyBSZXRhaW5QdHI8X1dLRXhwZXJpbWVudGFs
RmVhdHVyZT4gdGhlRmVhdHVyZTsKKyAgICBpZiAodGhlRmVhdHVyZSkKKyAgICAgICAgcmV0dXJu
IHRoZUZlYXR1cmUuZ2V0KCk7CisKKyAgICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVu
Y2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0
dXJlICpmZWF0dXJlIGluIGZlYXR1cmVzKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNF
cXVhbDpAIldlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCJdKSB7CisgICAgICAgICAgICB0
aGVGZWF0dXJlID0gZmVhdHVyZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiB0aGVGZWF0dXJlLmdldCgpOworfQorCiBzdGF0aWMgdm9pZCByZXNldCgp
CiB7CiAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IGZhbHNlOwpAQCAtNDI1LDYgKzQ0
MSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxUaW1lb3V0KQogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTQ0Miw2ICs0NTksNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsSGlkU3VjY2VzczEpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNDYzLDYgKzQ4MSw3IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzMikKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC00
ODgsNiArNTA3LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kxKQog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTUxMSw2ICs1MzEsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBhbmVsUmFjeTIpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTM0LDYgKzU1NSw3IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxUd2ljZSkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01NTYsNiAr
NTc4LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBSZWxvYWRIaWRDYW5jZWwpCiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtNTc1LDYgKzU5OCw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgTG9jYXRpb25DaGFuZ2VIaWRDYW5jZWwpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTk0LDYgKzYxOCw3
IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTmV3TG9hZEhpZENhbmNlbCkKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC02MTIsNiArNjM3LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBD
bG9zZUhpZENhbmNlbCkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC02NDksNiArNjc1LDcgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBTdWJGcmFtZUNoYW5nZUxvY2F0aW9uSGlkQ2FuY2VsKQogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTY5Miw2ICs3MTksNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFN1YkZyYW1lRGVzdHJ1Y3Rpb25IaWRDYW5jZWwpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzEwLDYgKzcz
OCw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWwpCiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtNzI5LDYgKzc1OCw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc0Niw2ICs3
NzYsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVTJmQ3RhcE5vQ3JlZGVu
dGlhbHNGb3VuZCkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwog
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOwor
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03NjMsNiArNzk0LDcgQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc4
MSw2ICs4MTMsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZEN0
YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzk5LDYgKzgzMiw3IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVsbFBhbmVsSGlkU3VjY2VzcykKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC04MTcsNiArODUxLDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxs
UGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTgzNiw2ICs4
NzEsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdz
UHJlc2VudCkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04NTQsNiArODkwLDcgQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBQYW5lbEhpZENhbmNlbFJlbG9hZE5vQ3Jhc2gpCiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtODczLDYgKzkxMCw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRT
dWNjZXNzQ2FuY2VsTm9DcmFzaCkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04OTAsNiArOTI4LDcgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmRD
YW5jZWxOb0NyYXNoKQogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTkwNyw2ICs5NDYsNyBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFJldHJpZXNFcnJvcikKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtOTIwLDYgKzk2MCw3
IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0S2V5QWdyZWVtZW50RXJyb3Ip
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCld
XTsKQEAgLTkzMyw2ICs5NzQsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJl
cXVlc3RQaW5FcnJvck5vRGVsZWdhdGUpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKQEAgLTk0Niw2ICs5ODgsNyBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC05NjMsNiArMTAwNiw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGluUmVxdWVzdFBpbkVycm9yKQogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMg
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTk4Miw2ICsxMDI2LDcgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2NrZWRFcnJvcikK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC0xMDAxLDYgKzEwNDYsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFBpbkdldFBpblRva2VuUGluQXV0aEJsb2NrZWRFcnJvcikKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC0xMDIwLDYgKzEwNjYsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBp
blRva2VuUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTAzOCw2ICsx
MDg1LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1
dGhJbnZhbGlkRXJyb3JBbmRSZXRyeSkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDU2LDYgKzExMDQsNyBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsUGluKQogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTEwNzMsNiArMTEyMiw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
TWFrZUNyZWRlbnRpYWxQaW5BdXRoQmxvY2tlZEVycm9yKQogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwOTIs
NiArMTE0Miw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQ
aW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTEwLDYgKzExNjEsNyBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbikKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC0xMTI3LDYgKzExNzksNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdl
dEFzc2VydGlvblBpbkF1dGhCbG9ja2VkRXJyb3IpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTE0Niw2ICsx
MTk5LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5JbnZh
bGlkRXJyb3JBbmRSZXRyeSkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTY1LDYgKzEyMTksNyBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5mY1BpbkNhY2hlZERpc2Nvbm5lY3QpCiAKICAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpAQCAtMTE4Myw2ICsxMjM4LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBN
dWx0aXBsZUFjY291bnRzTnVsbERlbGVnYXRlKQogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9
IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJ
bkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NG
b3JUZXN0aW5nOllFU107CiAgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0
aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyMDAsNiArMTI1
Niw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50cykKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0xMjIxLDYgKzEyNzgsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIExBRXJyb3IpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
ICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTIzNyw2ICsxMjk1LDcgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBMQUR1cGxpY2F0ZUNyZWRlbnRpYWwpCiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtMTI1NSw2ICsxMzE0LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU5vQ3Jl
ZGVudGlhbCkKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMjcxLDYgKzEzMzEsNyBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxOdWxsRGVsZWdhdGUpCiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTI4OCw2ICsxMzQ5LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1h
a2VDcmVkZW50aWFsRGlzYWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTMwNCw2ICsxMzY2LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVk
ZW50aWFsQWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTMyMyw2ICsx
Mzg2LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU5vTW9ja0RlZmF1bHRPZmYp
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTM0MCw2ICsxNDA0LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBMQU1ha2VDcmVkZW50aWFsTm9Nb2NrTm9Vc2VyR2VzdHVyZSkKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMzU3LDYgKzE0MjIsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFr
ZUNyZWRlbnRpYWxSb2xsQmFja0NyZWRlbnRpYWwpCiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJp
bWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM5MCw2ICsx
NDU2LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlvbikKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0xNDA5LDYgKzE0NzYsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIExBR2V0QXNzZXJ0aW9uTm9Nb2NrTm9Vc2VyR2VzdHVyZSkKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
NDI2LDYgKzE0OTQsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0
aW9uTXVsdGlwbGVPcmRlcikKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJl
KCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>