<?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>213404</bug_id>
          
          <creation_ts>2020-06-19 13:54:06 -0700</creation_ts>
          <short_desc>[WebAuthn] Provide a _WKWebAuthenticationPanelUpdatePINInvalid update to UI clients if the returned PIN from the client is not valid</short_desc>
          <delta_ts>2020-06-19 16:40:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>darin</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664494</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-06-19 13:54:06 -0700</bug_when>
    <thetext>Provide a _WKWebAuthenticationPanelUpdatePINInvalid update to UI clients if the returned PIN from the client is not valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664495</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-19 13:54:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/64543894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664505</commentid>
    <comment_count>2</comment_count>
      <attachid>402322</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-06-19 14:03:30 -0700</bug_when>
    <thetext>Created attachment 402322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664552</commentid>
    <comment_count>3</comment_count>
      <attachid>402322</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-06-19 15:12:09 -0700</bug_when>
    <thetext>Comment on attachment 402322
Patch

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

&gt; Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:277
&gt; +    if (!pin) {

I know this works, but it&apos;s confusing. I&apos;d prefer to see:

if (pin.isNull()) {

Also: What if the pin is an empty string? Shouldn&apos;t we hit this code too?

operator ! only checks null, which means we would pass the empty string to the late parts of this method. Maybe that&apos;s okay because it fails the &apos;validateAndConvertToUTF8&apos; step?

if (pin.isNull() || pin.isEmpty()) {

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:975
&gt; +    webAuthenticationPanelPin = &quot;1234&quot;;

Should we have a test case where the WebKit client passed &quot;&quot; as the string?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664560</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-19 15:22:52 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; if (pin.isNull() || pin.isEmpty()) {

You never need to write this. Instead:

    if (pin.isEmpty()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664585</commentid>
    <comment_count>5</comment_count>
      <attachid>402322</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-06-19 15:51:06 -0700</bug_when>
    <thetext>Comment on attachment 402322
Patch

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

Thanks, Brent for r+ this patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:277
&gt;&gt; +    if (!pin) {
&gt; 
&gt; I know this works, but it&apos;s confusing. I&apos;d prefer to see:
&gt; 
&gt; if (pin.isNull()) {
&gt; 
&gt; Also: What if the pin is an empty string? Shouldn&apos;t we hit this code too?
&gt; 
&gt; operator ! only checks null, which means we would pass the empty string to the late parts of this method. Maybe that&apos;s okay because it fails the &apos;validateAndConvertToUTF8&apos; step?
&gt; 
&gt; if (pin.isNull() || pin.isEmpty()) {

Yes, it fails validateAndConvertToUTF8 step. Therefore, it&apos;s not necessary to check anything here. Actually, I think it is better because in the current implementation of the UI, the user can submit an empty PIN code, and I don&apos;t think we will to treat it as a cancel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664587</commentid>
    <comment_count>6</comment_count>
      <attachid>402322</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-06-19 15:52:30 -0700</bug_when>
    <thetext>Comment on attachment 402322
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:975
&gt;&gt; +    webAuthenticationPanelPin = &quot;1234&quot;;
&gt; 
&gt; Should we have a test case where the WebKit client passed &quot;&quot; as the string?

It has the same effect as the &quot;123&quot; above. So I think it&apos;s okay to not have it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664590</commentid>
    <comment_count>7</comment_count>
      <attachid>402342</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-06-19 16:18:52 -0700</bug_when>
    <thetext>Created attachment 402342
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664591</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-06-19 16:19:01 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; (In reply to Brent Fulgham from comment #3)
&gt; &gt; if (pin.isNull() || pin.isEmpty()) {
&gt; 
&gt; You never need to write this. Instead:
&gt; 
&gt;     if (pin.isEmpty()) {

Thanks, Darin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664606</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-19 16:40:08 -0700</bug_when>
    <thetext>Committed r263296: &lt;https://trac.webkit.org/changeset/263296&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402342.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402322</attachid>
            <date>2020-06-19 14:03:30 -0700</date>
            <delta_ts>2020-06-19 15:12:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213404-20200619140330.patch</filename>
            <type>text/plain</type>
            <size>19268</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM1MDk0M2FmMzlhMzUyZDBl
ZWM5NzhhZjNmZmE1MDg5MjlmYjVlMmMuLjc1YzRjNjdmN2ViZmY3ZjU5ZTY4NjJjNjRjNmVhOTI1
Yjk2MjQ3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDYtMTkgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByb3ZpZGUg
YSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlUElOSW52YWxpZCB1cGRhdGUgdG8gVUkg
Y2xpZW50cyBpZiB0aGUgcmV0dXJuZWQgUElOIGZyb20gdGhlIGNsaWVudCBpcyBub3QgdmFsaWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ1NDM4OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVcGRhdGVQSU5JbnZhbGlkIHVwZGF0ZSB0byBVSSBjbGllbnRzIGlmIHRoZSByZXR1cm5l
ZCBQSU4gZnJvbSB0aGUgY2xpZW50IGlzIG5vdCB2YWxpZCBzdWNoIHRoYXQgY2xpZW50cyBjYW4K
KyAgICAgICAgcmV1c2UgdGhlIHNhbWUgbG9naWMgdG8gaGFuZGxlIGludmFsaWQgcGluIGZyb20g
dGhlIGF1dGhlbnRpY2F0b3IuIFRoaXMgY2hhbmdlIG1ha2VzIHRoZWlyIGxpZmUgZWFzaWVyLgor
CisgICAgICAgIENvdmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4gY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Ojpy
ZXF1ZXN0UGluIGNvbnN0KToKKyAgICAgICAgTm93LCBvbmx5IG51bGwgc3RyaW5ncyBhcmUgaW50
ZXByZXRlZCBhcyBjYW5jZWxzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCk6
CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlv
bkFmdGVyUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNh
dG9yOjpjb250aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKToKKyAgICAgICAgKFdlYktp
dDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVxdWVzdEFmdGVyR2V0UGluVG9rZW4pOgor
ICAgICAgICBUaGlzIHBhdGNoIGFsc28gcmVtb3ZlcyBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRl
cmVmZXJlbmNlcy4KKwogMjAyMC0wNi0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtJUEMgaGFyZGVuaW5nXSBPcHRpb25TZXQ8PiB2YWx1ZXMgc2hvdWxk
IGJlIHZhbGlkYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXggN2FmZGZkMmQ2MmVk
NTJiNTViYjU1ZTI2ODBkN2NiMjUyODUwY2ZiMi4uYTM2OGMzN2FlZWZkZTMxOTMwZWUxODNiNmU1
ZjE4Y2FiZDAyZGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC00OSw3ICs0OSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQYW5lbChXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc1Bh
bmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IHsgfQotICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0UGluKHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFdURjo6U3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0IHsgY29tcGxldGlvbkhh
bmRsZXIoZW1wdHlTdHJpbmcoKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBpbih1aW50
NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBjb25zdCB7IGNvbXBsZXRpb25IYW5kbGVyKFdURjo6U3RyaW5nKCkpOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdEFzc2VydGlvblJlc3BvbnNlKFZlY3RvcjxSZWY8V2Vi
Q29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mJiwgV2ViS2l0OjpXZWJBdXRo
ZW50aWNhdGlvblNvdXJjZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgeyBj
b21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JMb2NhbEF1dGhlbnRpY2F0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6Okxv
Y2FsQXV0aGVudGljYXRvclBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0IHsgY29t
cGxldGlvbkhhbmRsZXIoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3k6OkRpc2FsbG93
KTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50Lm1tCmluZGV4IGM1YWEwMDcxMTY2ZjFhOWQ4Y2QwYjQwYjg4MTJlYTcxZjUzNDc5
YzQuLjgzNzY5NzJjMzU3Njc2OWIxMTA1YjI4NTBiNGM2YzJjMWVhNGEyNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQpAQCAt
MTE4LDEzICsxMTgsMTMgQEAgdm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpkaXNt
aXNzUGFuZWwoV2ViQXV0aGVudGljYXRpb25SZXN1bHQgcmVzdWx0KQogdm9pZCBXZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2xpZW50OjpyZXF1ZXN0UGluKHVpbnQ2NF90IHJldHJpZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
Y29uc3QKIHsKICAgICBpZiAoIW1fZGVsZWdhdGVNZXRob2RzLnBhbmVsUmVxdWVzdFBpbldpdGhS
ZW1haW5pbmdSZXRyaWVzQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0cmluZygp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVn
YXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0cmluZygpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmNwcAppbmRleCA3ZjQ2Y2ZiZjNiZGQwMDI5OWVkMzIwZGQyZDhjYTVlOGFjOWQ0MTBhLi5k
ZDgxNzVjYTBmYzVlZGUyODM4ZmRiYjI0MzdlMDBmM2E1YTBlZDYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9m
aWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlc3BvbnNlUmVjZWl2ZWQo
VmVjdG9yPHVpbnQ4CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaXNQaW5FcnJvcihlcnJvcikp
IHsKLSAgICAgICAgICAgIGlmICghbV9waW5BdXRoLmlzRW1wdHkoKSkgLy8gU2tpcCB0aGUgdmVy
eSBmaXJzdCBjb21tYW5kIHRoYXQgYWN0cyBsaWtlIHdpbmsuCisgICAgICAgICAgICBpZiAoIW1f
cGluQXV0aC5pc0VtcHR5KCkgJiYgb2JzZXJ2ZXIoKSkgLy8gU2tpcCB0aGUgdmVyeSBmaXJzdCBj
b21tYW5kIHRoYXQgYWN0cyBsaWtlIHdpbmsuCiAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+
YXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQodG9TdGF0dXMoZXJyb3IpKTsKICAgICAgICAgICAg
IGlmICh0cnlSZXN0YXJ0UGluKGVycm9yKSkKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0x
NTQsNyArMTU0LDcgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRp
b25BZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3QKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBpZiAoaXNQaW5FcnJvcihlcnJvcikpIHsKLSAgICAgICAgICAgIGlmICgh
bV9waW5BdXRoLmlzRW1wdHkoKSkgLy8gU2tpcCB0aGUgdmVyeSBmaXJzdCBjb21tYW5kIHRoYXQg
YWN0cyBsaWtlIHdpbmsuCisgICAgICAgICAgICBpZiAoIW1fcGluQXV0aC5pc0VtcHR5KCkgJiYg
b2JzZXJ2ZXIoKSkgLy8gU2tpcCB0aGUgdmVyeSBmaXJzdCBjb21tYW5kIHRoYXQgYWN0cyBsaWtl
IHdpbmsuCiAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+YXV0aGVudGljYXRvclN0YXR1c1Vw
ZGF0ZWQodG9TdGF0dXMoZXJyb3IpKTsKICAgICAgICAgICAgIGlmICh0cnlSZXN0YXJ0UGluKGVy
cm9yKSkKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yNzQsOSArMjc0LDE3IEBAIHZvaWQg
Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVxdWVzdFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50
KFZlY3Rvcjx1aW50OF90PiYmCiAKIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0
UGluVG9rZW5BZnRlclJlcXVlc3RQaW4oY29uc3QgU3RyaW5nJiBwaW4sIGNvbnN0IENyeXB0b0tl
eUVDJiBwZWVyS2V5KQogeworICAgIGlmICghcGluKSB7CisgICAgICAgIHJlY2VpdmVSZXNwb25k
KEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsICJQaW4gaXMgbnVsbC4iX3MgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRvIHBpblV0ZjggPSBwaW46OnZhbGlkYXRlQW5k
Q29udmVydFRvVVRGOChwaW4pOwogICAgIGlmICghcGluVXRmOCkgewotICAgICAgICByZWNlaXZl
UmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJQaW4gaXMg
bm90IHZhbGlkOiAiLCBwaW4pIH0pOworICAgICAgICAvLyBGYWtlIGEgcGluIGludmFsaWQgcmVz
cG9uc2UgZnJvbSB0aGUgYXV0aGVudGljYXRvciBzdWNoIHRoYXQgY2xpZW50cyBjb3VsZCBzaG93
IHNvbWUgZXJyb3IgdG8gdGhlIHVzZXIuCisgICAgICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRo
aXMtPm9ic2VydmVyKCkpCisgICAgICAgICAgICBvYnNlcnZlci0+YXV0aGVudGljYXRvclN0YXR1
c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXM6OlBpbkludmFsaWQpOworICAgICAgICB0
cnlSZXN0YXJ0UGluKEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkludmFsaWQp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gdG9rZW5SZXF1ZXN0ID0gcGluOjpU
b2tlblJlcXVlc3Q6OnRyeUNyZWF0ZSgqcGluVXRmOCwgcGVlcktleSk7CkBAIC0zMDEsNyArMzA5
LDggQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0QWZ0ZXJHZXRQaW5U
b2tlbihWZWN0b3I8dWludDhfdD4mJiBkYXRhLAogICAgICAgICBhdXRvIGVycm9yID0gZ2V0UmVz
cG9uc2VDb2RlKGRhdGEpOwogCiAgICAgICAgIGlmIChpc1BpbkVycm9yKGVycm9yKSkgewotICAg
ICAgICAgICAgb2JzZXJ2ZXIoKS0+YXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQodG9TdGF0dXMo
ZXJyb3IpKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRoaXMtPm9ic2VydmVy
KCkpCisgICAgICAgICAgICAgICAgb2JzZXJ2ZXItPmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVk
KHRvU3RhdHVzKGVycm9yKSk7CiAgICAgICAgICAgICBpZiAodHJ5UmVzdGFydFBpbihlcnJvcikp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTcxMjAyMGY4N2U4NjA3YTQ2OGQ0MmEz
MGYwNmRlMWRiYzhjZTBiYS4uMzVlY2QxYzgxZDBmZWQ2ZmJmYmY4OWY2YWRlYWEzZWExODdiMjUy
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTA2LTE5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBQcm92aWRlIGEgX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbFVwZGF0ZVBJTkludmFsaWQgdXBkYXRlIHRvIFVJIGNsaWVudHMgaWYgdGhlIHJldHVybmVk
IFBJTiBmcm9tIHRoZSBjbGllbnQgaXMgbm90IHZhbGlkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0NTQzODk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVy
cm9yLXJldHJ5Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTE4ICBSeWFuIEhhZGRhZCAgPHJ5YW5o
YWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgaW5mcmFzdHJ1Y3R1cmUgZml4
LCB0ZW1wb3JhcmlseSByZW1vdmUgZXdzMTE2IGR1ZSB0byBoYXJkd2FyZSBmYWlsdXJlIHRyYWNr
ZWQgd2l0aCByZGFyOi8vNjQ0MjQyNDUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhiNTQx
Y2RlMjhiMjMzOGMzNGM0ODBkZTg5ZmY0MTNlMWFhZTg4OS4uZTNhOGQyMzZmY2M1NTU2ZjgzZTgw
OGYyNDQzNzEyMDVhYTE2MDVhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MSw2ICsz
NzEsNyBAQAogCQk1NzQyMTc4QTI0MDBBRUQ4MDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1sYS1kdXBsaWNhdGUtY3JlZGVudGlhbC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDIxNzg5MjQwMEFF
RDAwMDJCMzAzRCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWR1cGxp
Y2F0ZS1jcmVkZW50aWFsLmh0bWwgKi87IH07CiAJCTU3NDIxNzhFMjQwMEQyREYwMDJCMzAzRCAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0MjE3OEQyNDAwRDI2
QzAwMkIzMDNEIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEuaHRtbCAq
LzsgfTsKIAkJNTc0RjU1RDIyMDRENDdGMDAwMjk0OEM2IC8qIFNlY3VyaXR5LmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NEY1NUQw
MjA0RDQ3MUMwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi87IH07CisJCTU3NTFCMjhB
MjQ5RDVCQzUwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1MUIy
ODkyNDlENUI5OTAwNjY0QzJBIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCAq
LzsgfTsKIAkJNTc1ODU5N0YyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTg1OTdFMjNBMjUy
N0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgKi87IH07CiAJCTU3NTg1OTg0MjNDM0MzQTQw
MEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0
LXJldHJpZXMtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzU4NTk4MzIzQzNDMzYyMDBDNzQ1NzIgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0bWwgKi87
IH07CiAJCTU3NTk5RTIxMUYwNzE5MTkwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovOyB9OwpAQCAtMTU4OCw2ICsx
NTg5LDcgQEAKIAkJCQk1N0M2MjQ1MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzhEQTQ0
ODIzRUNEMDlCMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtcGluLWF1dGgtYmxvY2tlZC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTU3MEQyNkY0MjNDM0NBNkEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQk1NzUxQjI4QTI0OUQ1QkM1MDA2NjRDMkEgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxp
ZC1lcnJvci1yZXRyeS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OERBNDQyMjNF
Q0M3QTAwMDI0NjAxMCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1w
aW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1ibG9ja2VkLWVycm9yLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJNTc4REE0NDYyM0VDQ0MwQTAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1hdXRoLWludmFs
aWQtZXJyb3ItcmV0cnkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzBEMjZGQTIz
QzNGMjUxMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluLWdldC1waW4tdG9rZW4tcGluLWJsb2NrZWQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTIwNTQsNiArMjA1Niw3IEBACiAJCTU3NDIxNzg5MjQwMEFFRDAwMDJCMzAzRCAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWR1cGxpY2F0ZS1jcmVkZW50
aWFsLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1s
YS1kdXBsaWNhdGUtY3JlZGVudGlhbC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTc0MjE3OEQyNDAwRDI2QzAwMkIzMDNEIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtbGEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWxhLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzRGNTVEMDIw
NEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBT
ZWN1cml0eS5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3Vy
aXR5LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CisJCTU3NTFCMjg5MjQ5RDVC
OTkwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9r
ZW4tZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTc1ODU5N0QyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEN0YXBQaW5UZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3NTg1OTdFMjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDdGFwUGluVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
NTg1OTgzMjNDM0MzNjIwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNzQxLDYgKzM3NDQsNyBAQAogCQkJCTU3
QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi5odG1sICovLAogCQkJCTU3OERBNDQ3MjNFQ0QwMTMwMDI0NjAxMCAvKiB3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yLmh0bWwgKi8s
CiAJCQkJNTcwRDI2RjMyM0MzQ0E1NTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sICovLAorCQkJ
CTU3NTFCMjg5MjQ5RDVCOTkwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5
Lmh0bWwgKi8sCiAJCQkJNTc4REE0NDEyM0VDQzc2QjAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1hdXRoLWJsb2Nr
ZWQtZXJyb3IuaHRtbCAqLywKIAkJCQk1NzhEQTQ0NTIzRUNDQkQwMDAyNDYwMTAgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1
dGgtaW52YWxpZC1lcnJvci1yZXRyeS5odG1sICovLAogCQkJCTU3MEQyNkY5MjNDM0YyNDUwMEQ1
Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBp
bi10b2tlbi1waW4tYmxvY2tlZC1lcnJvci5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCmluZGV4IDI1OTI4OWJiNzdmYjkxYTE3Y2FjMWE4M2IzZTFjMzEwZGJlNDA0
ZjIuLmQ3MmM4ODlmNTBlN2YwYjAwY2U3NDZmZjU3NzFiNTgwOWJkM2RjYmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTkzNyw3ICs5MzcsNyBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck5vRGVsZWdhdGUpCiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1d
OwotICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiUGluIGlzIG5vdCB2YWxpZDogIl07Cisg
ICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQaW4gaXMgbnVsbC4iXTsKIH0KIAogVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOdWxsRGVsZWdhdGUpCkBA
IC05NTQsMTMgKzk1NCwxMyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVl
c3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwotICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdl
OkAiUGluIGlzIG5vdCB2YWxpZDogIl07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQ
aW4gaXMgbnVsbC4iXTsKIH0KIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1
ZXN0UGluRXJyb3IpCiB7CiAgICAgcmVzZXQoKTsKLSAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFr
ZS1waW4taW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKQEAgLTk3MSw3ICs5NzEsOSBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvcikKIAogICAgIHdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxQaW4gPSAiMTIzIjsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKLSAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAIlBpbiBpcyBub3QgdmFsaWQ6IDEyMyJdOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVu
dGljYXRpb25QYW5lbFVwZGF0ZVBJTkludmFsaWQpOworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxQaW4gPSAiMTIzNCI7CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQh
Il07CiB9CiAKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5C
bG9ja2VkRXJyb3IpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGlu
LXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNiNzU4NmY5ZWJmNjQ5YmFkZDZjMGVlY2E1Y2RlNzEwYTE1YTQ0YmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZh
a2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbApAQCAtMCwwICsxLDU2IEBACis8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3QgdGVzdEN0YXBQaW5J
bnZhbGlkRXJyb3JCYXNlNjQgPSAiTVE9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldFJldHJpZXNS
ZXNwb25zZUJhc2U2NCA9ICJBS0VEQ0E9PSI7CisgICAgY29uc3QgdGVzdFBpbkdldEtleUFncmVl
bWVudFJlc3BvbnNlQmFzZTY0ID0gIkFLRUJwUUVDQXpnWUlBRWhXQ0RvZGlXSmJ1VGtiY0F5ZG02
QWg1WXZOdCtkL290V2Z6ZGpBVnNaa0tZT0ZDSllJQ2ZlWVMxbVFZdmFHVkJZSHJ4Y2pCMnRjUXl4
VENMNHlYQkY5R0V2c2d5UiI7CisgICAgY29uc3QgdGVzdFBpbkdldFBpblRva2VuUmVzcG9uc2VC
YXNlNjQgPSAiQUtFQ1VCT2s3cmNPeVJycUFCNlRGdlllUWZjPSI7CisgICAgY29uc3QgdGVzdENy
ZWF0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJBS01CWm5CaFkydGxaQUpZeEViTWY3bG5u
Vld5MjVDUzRjalo1ZUhRSzNXQThMU0JMSGNKWXVIa2oxcllRUUFBIiArCisgICAgICAgICJBRTc0
b0JIempBcE5GWUFHRnhFZm50eDlBRUFvQ0szTzZQNU95WE42Vi9mKzluQWdhME5BMkNncDRWM21n
U0o1IiArCisgICAgICAgICJqT0hMTURybXhwL1MwcmJEK2FpaHJ1MUMwYUFOM0JraU02R055NW5T
bERWcU9nVGdwUUVDQXlZZ0FTRllJRUZiIiArCisgICAgICAgICJoZTNSa051ZDZzZ3lyYUJHamxo
MXB6VGxDWmVoUWxML2IxOEhaNldHSWxnZ0pnZlVkL2VuOXA1QUlxTVFiVW5pIiArCisgICAgICAg
ICJuRWVYZEZMa3ZXMC96VjVCcEVqak54QURvMk5oYkdjbVkzTnBaMWhITUVVQ0lRREtnK1pCbUVC
dGYwbFdxNFJlIiArCisgICAgICAgICJkSDQvaS9MT1lxT1I0dVIyTkFqMnpRbXc5UUlnYlRYYjRo
dkZiajRUMjdidi9yR3JjK3krMHB1b1lPQmtCazlQIiArCisgICAgICAgICJtQ2V3V2xOamVEVmpn
VmtDd2pDQ0FyNHdnZ0dtb0FNQ0FRSUNCSFNHL2NJd0RRWUpLb1pJaHZjTkFRRUxCUUF3IiArCisg
ICAgICAgICJMakVzTUNvR0ExVUVBeE1qV1hWaWFXTnZJRlV5UmlCU2IyOTBJRU5CSUZObGNtbGhi
Q0EwTlRjeU1EQTJNekV3IiArCisgICAgICAgICJJQmNOTVRRd09EQXhNREF3TURBd1doZ1BNakEx
TURBNU1EUXdNREF3TURCYU1HOHhDekFKQmdOVkJBWVRBbE5GIiArCisgICAgICAgICJNUkl3RUFZ
RFZRUUtEQWxaZFdKcFkyOGdRVUl4SWpBZ0JnTlZCQXNNR1VGMWRHaGxiblJwWTJGMGIzSWdRWFIw
IiArCisgICAgICAgICJaWE4wWVhScGIyNHhLREFtQmdOVkJBTU1IMWwxWW1samJ5QlZNa1lnUlVV
Z1UyVnlhV0ZzSURFNU5UVXdNRE00IiArCisgICAgICAgICJOREl3V1RBVEJnY3Foa2pPUFFJQkJn
Z3Foa2pPUFFNQkJ3TkNBQVNWWGZPdDl5UjlNWFh2L1p6RTh4cE9oNDY2IiArCisgICAgICAgICI0
WUVKVm1GUSt6aUxMbDlsSjc5WFFKcWxnYVVOQ3NVdkdFUmNDaE5VaWhOVHlLVGxtbkJPVWp2QVRl
dnRvMnd3IiArCisgICAgICAgICJhakFpQmdrckJnRUVBWUxFQ2dJRUZURXVNeTQyTGpFdU5DNHhM
alF4TkRneUxqRXVNVEFUQmdzckJnRUVBWUxsIiArCisgICAgICAgICJIQUlCQVFRRUF3SUZJREFo
QmdzckJnRUVBWUxsSEFFQkJBUVNCQkQ0b0JIempBcE5GWUFHRnhFZm50eDlNQXdHIiArCisgICAg
ICAgICJBMVVkRXdFQi93UUNNQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQURGY1NJRG1tbEor
T0dhSnZXbjlDcWh2IiArCisgICAgICAgICJTZXVlVG9WRlFWVnZxdEFMT2dDS0hkd0IrV3gyOW1n
MkdwSGlNc2dRcDV4akIweWJibnBHNngyMTJGeEVTSitHIiArCisgICAgICAgICJpblpEMGlwY2hp
N0FQd1BsaEl2amdIMTZ6Vlg0NGE0ZTRoT3NjNnRMSU9QNzFTYU1zSHVIZ0NjZEgwdmc1ZDJzIiAr
CisgICAgICAgICJjMDA2V0plOVRYTzZmelYrb2dqSm5ZcE5LUUxtQ1hvQVhFM0pCTndLR0JJT0N2
ZlFEUHlXbWlpRzViR3hZZlB0IiArCisgICAgICAgICJ5OFozcG5qWCsxTURuTTJoaHI0MHVsTXhs
U05EblgvWlNuRHlNR0liazhUT1FtalRGMDJVTzhhdVA4azN3dDVEIiArCisgICAgICAgICIxclJP
SVJVOStGQ1NYNVdRWWk2OFJ1RHJHTVpCOFA1K2J5b0pxYktRZHhuMkxtRTFvWkF5b2hQQW1MY29Q
TzQ9IjsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdXBwb3J0Q2xpZW50
UGluOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBQaW5JbnZhbGlkRXJyb3JCYXNlNjQs
IHRlc3RQaW5HZXRSZXRyaWVzUmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRLZXlBZ3JlZW1lbnRS
ZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdl
dEtleUFncmVlbWVudFJlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0UGluVG9rZW5SZXNwb25zZUJh
c2U2NCwgdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxz
LndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0KKworICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgcnA6
IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVk
IiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQorICAgICAgICB9CisgICAg
fTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVk
ZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
IlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9n
KGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0
Pgo=
</data>
<flag name="review"
          id="417752"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="417764"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402342</attachid>
            <date>2020-06-19 16:18:52 -0700</date>
            <delta_ts>2020-06-19 16:40:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213404-20200619161852.patch</filename>
            <type>text/plain</type>
            <size>18808</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM1MDk0M2FmMzlhMzUyZDBl
ZWM5NzhhZjNmZmE1MDg5MjlmYjVlMmMuLmFiNTg1MjY3MTcxYzliMmM2Njk0YTI3ODdjN2IzMTZk
NTI3YTFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDYtMTkgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByb3ZpZGUg
YSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlUElOSW52YWxpZCB1cGRhdGUgdG8gVUkg
Y2xpZW50cyBpZiB0aGUgcmV0dXJuZWQgUElOIGZyb20gdGhlIGNsaWVudCBpcyBub3QgdmFsaWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ1NDM4OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBQcm92aWRlIGEgX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbFVwZGF0ZVBJTkludmFsaWQgdXBkYXRlIHRvIFVJIGNsaWVudHMgaWYgdGhlIHJldHVybmVk
IFBJTiBmcm9tIHRoZSBjbGllbnQgaXMgbm90IHZhbGlkIHN1Y2ggdGhhdCBjbGllbnRzIGNhbgor
ICAgICAgICByZXVzZSB0aGUgc2FtZSBsb2dpYyB0byBoYW5kbGUgaW52YWxpZCBwaW4gZnJvbSB0
aGUgYXV0aGVudGljYXRvci4gVGhpcyBjaGFuZ2UgbWFrZXMgdGhlaXIgbGlmZSBlYXNpZXIuCisK
KyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6V2ViQXV0
aGVudGljYXRpb25QYW5lbENsaWVudDo6cmVxdWVzdFBpbiBjb25zdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGll
bnQubW06CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnJl
cXVlc3RQaW4gY29uc3QpOgorICAgICAgICBOb3csIG9ubHkgbnVsbCBzdHJpbmdzIGFyZSBpbnRl
cHJldGVkIGFzIGNhbmNlbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRo
ZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToK
KyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9u
QWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0
b3I6OmNvbnRpbnVlR2V0UGluVG9rZW5BZnRlclJlcXVlc3RQaW4pOgorICAgICAgICAoV2ViS2l0
OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0QWZ0ZXJHZXRQaW5Ub2tlbik6Cisg
ICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVy
ZWZlcmVuY2VzLgorCiAyMDIwLTA2LTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgW0lQQyBoYXJkZW5pbmddIE9wdGlvblNldDw+IHZhbHVlcyBzaG91bGQg
YmUgdmFsaWRhdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAppbmRleCA3YWZkZmQyZDYyZWQ1
MmI1NWJiNTVlMjY4MGQ3Y2IyNTI4NTBjZmIyLi5hMzY4YzM3YWVlZmRlMzE5MzBlZTE4M2I2ZTVm
MThjYWJkMDJkYzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBhbmVsKFdlYktpdDo6V2ViQXV0
aGVudGljYXRpb25TdGF0dXMpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzUGFu
ZWwoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RQaW4odWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
V1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgeyBjb21wbGV0aW9uSGFu
ZGxlcihlbXB0eVN0cmluZygpKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGluKHVpbnQ2
NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdURjo6U3RyaW5nJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGNvbnN0IHsgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpTdHJpbmcoKSk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoVmVjdG9yPFJlZjxXZWJD
b3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+PiYmLCBXZWJLaXQ6OldlYkF1dGhl
bnRpY2F0aW9uU291cmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZSopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdCB7IGNv
bXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGlj
eUZvckxvY2FsQXV0aGVudGljYXRvcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6TG9j
YWxBdXRoZW50aWNhdG9yUG9saWN5KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgeyBjb21w
bGV0aW9uSGFuZGxlcihXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvclBvbGljeTo6RGlzYWxsb3cp
OyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQubW0KaW5kZXggYzVhYTAwNzExNjZmMWE5ZDhjZDBiNDBiODgxMmVhNzFmNTM0Nzlj
NC4uODM3Njk3MmMzNTc2NzY5YjExMDViMjg1MGI0YzZjMmMxZWE0YTI2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCkBAIC0x
MTgsMTMgKzExOCwxMyBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OmRpc21p
c3NQYW5lbChXZWJBdXRoZW50aWNhdGlvblJlc3VsdCByZXN1bHQpCiB2b2lkIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxDbGllbnQ6OnJlcXVlc3RQaW4odWludDY0X3QgcmV0cmllcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBj
b25zdAogewogICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMucGFuZWxSZXF1ZXN0UGluV2l0aFJl
bWFpbmluZ1JldHJpZXNDb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3RyaW5nKCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byBkZWxlZ2F0ZSA9IG1fZGVsZWdh
dGUuZ2V0KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihlbXB0eVN0cmluZygpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3RyaW5nKCkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0
b3IuY3BwCmluZGV4IDdmNDZjZmJmM2JkZDAwMjk5ZWQzMjBkZDJkOGNhNWU4YWM5ZDQxMGEuLmVm
ODVhMzE4ODg1ZmM5ZWU4NDA4MmQwODUwMDhkNDU2NzA2OWIwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZChW
ZWN0b3I8dWludDgKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpc1BpbkVycm9yKGVycm9yKSkg
ewotICAgICAgICAgICAgaWYgKCFtX3BpbkF1dGguaXNFbXB0eSgpKSAvLyBTa2lwIHRoZSB2ZXJ5
IGZpcnN0IGNvbW1hbmQgdGhhdCBhY3RzIGxpa2Ugd2luay4KKyAgICAgICAgICAgIGlmICghbV9w
aW5BdXRoLmlzRW1wdHkoKSAmJiBvYnNlcnZlcigpKSAvLyBTa2lwIHRoZSB2ZXJ5IGZpcnN0IGNv
bW1hbmQgdGhhdCBhY3RzIGxpa2Ugd2luay4KICAgICAgICAgICAgICAgICBvYnNlcnZlcigpLT5h
dXRoZW50aWNhdG9yU3RhdHVzVXBkYXRlZCh0b1N0YXR1cyhlcnJvcikpOwogICAgICAgICAgICAg
aWYgKHRyeVJlc3RhcnRQaW4oZXJyb3IpKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1
NCw3ICsxNTQsNyBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlv
bkFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdAogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIGlmIChpc1BpbkVycm9yKGVycm9yKSkgewotICAgICAgICAgICAgaWYgKCFt
X3BpbkF1dGguaXNFbXB0eSgpKSAvLyBTa2lwIHRoZSB2ZXJ5IGZpcnN0IGNvbW1hbmQgdGhhdCBh
Y3RzIGxpa2Ugd2luay4KKyAgICAgICAgICAgIGlmICghbV9waW5BdXRoLmlzRW1wdHkoKSAmJiBv
YnNlcnZlcigpKSAvLyBTa2lwIHRoZSB2ZXJ5IGZpcnN0IGNvbW1hbmQgdGhhdCBhY3RzIGxpa2Ug
d2luay4KICAgICAgICAgICAgICAgICBvYnNlcnZlcigpLT5hdXRoZW50aWNhdG9yU3RhdHVzVXBk
YXRlZCh0b1N0YXR1cyhlcnJvcikpOwogICAgICAgICAgICAgaWYgKHRyeVJlc3RhcnRQaW4oZXJy
b3IpKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI3NCw5ICsyNzQsMTcgQEAgdm9pZCBD
dGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQo
VmVjdG9yPHVpbnQ4X3Q+JiYKIAogdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRQ
aW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihjb25zdCBTdHJpbmcmIHBpbiwgY29uc3QgQ3J5cHRvS2V5
RUMmIHBlZXJLZXkpCiB7CisgICAgaWYgKHBpbi5pc051bGwoKSkgeworICAgICAgICByZWNlaXZl
UmVzcG9uZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCAiUGluIGlzIG51bGwuIl9zIH0p
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byBwaW5VdGY4ID0gcGluOjp2YWxp
ZGF0ZUFuZENvbnZlcnRUb1VURjgocGluKTsKICAgICBpZiAoIXBpblV0ZjgpIHsKLSAgICAgICAg
cmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygi
UGluIGlzIG5vdCB2YWxpZDogIiwgcGluKSB9KTsKKyAgICAgICAgLy8gRmFrZSBhIHBpbiBpbnZh
bGlkIHJlc3BvbnNlIGZyb20gdGhlIGF1dGhlbnRpY2F0b3Igc3VjaCB0aGF0IGNsaWVudHMgY291
bGQgc2hvdyBzb21lIGVycm9yIHRvIHRoZSB1c2VyLgorICAgICAgICBpZiAoYXV0byogb2JzZXJ2
ZXIgPSB0aGlzLT5vYnNlcnZlcigpKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmF1dGhlbnRpY2F0
b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpQaW5JbnZhbGlkKTsKKyAg
ICAgICAgdHJ5UmVzdGFydFBpbihDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5J
bnZhbGlkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHRva2VuUmVxdWVzdCA9
IHBpbjo6VG9rZW5SZXF1ZXN0Ojp0cnlDcmVhdGUoKnBpblV0ZjgsIHBlZXJLZXkpOwpAQCAtMzAx
LDcgKzMwOSw4IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVxdWVzdEFmdGVy
R2V0UGluVG9rZW4oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwKICAgICAgICAgYXV0byBlcnJvciA9
IGdldFJlc3BvbnNlQ29kZShkYXRhKTsKIAogICAgICAgICBpZiAoaXNQaW5FcnJvcihlcnJvcikp
IHsKLSAgICAgICAgICAgIG9ic2VydmVyKCktPmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKHRv
U3RhdHVzKGVycm9yKSk7CisgICAgICAgICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5v
YnNlcnZlcigpKQorICAgICAgICAgICAgICAgIG9ic2VydmVyLT5hdXRoZW50aWNhdG9yU3RhdHVz
VXBkYXRlZCh0b1N0YXR1cyhlcnJvcikpOwogICAgICAgICAgICAgaWYgKHRyeVJlc3RhcnRQaW4o
ZXJyb3IpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE3MTIwMjBmODdlODYwN2E0
NjhkNDJhMzBmMDZkZTFkYmM4Y2UwYmEuLjM0NWJjZmI1ZjA1ZTQ1ODYyZGVhNzY5OGQ3YjgxOGIx
YmIyZDMzZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gUHJvdmlkZSBhIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGVQSU5JbnZhbGlkIHVwZGF0ZSB0byBVSSBjbGllbnRzIGlmIHRoZSBy
ZXR1cm5lZCBQSU4gZnJvbSB0aGUgY2xpZW50IGlzIG5vdCB2YWxpZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDA0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82NDU0Mzg5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZh
bGlkLWVycm9yLXJldHJ5Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTE4ICBSeWFuIEhhZGRhZCAg
PHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgaW5mcmFzdHJ1Y3R1
cmUgZml4LCB0ZW1wb3JhcmlseSByZW1vdmUgZXdzMTE2IGR1ZSB0byBoYXJkd2FyZSBmYWlsdXJl
IHRyYWNrZWQgd2l0aCByZGFyOi8vNjQ0MjQyNDUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NzhiNTQxY2RlMjhiMjMzOGMzNGM0ODBkZTg5ZmY0MTNlMWFhZTg4OS4uOWU4ODExMmI1YmI0NGEy
NWE4YzdkZTAxYTJiZDFlNTY3OGQ4Nzc3MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3
MSw2ICszNzEsNyBAQAogCQk1NzQyMTc4QTI0MDBBRUQ4MDAyQjMwM0QgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1kdXBsaWNhdGUtY3JlZGVudGlhbC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDIxNzg5
MjQwMEFFRDAwMDJCMzAzRCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxh
LWR1cGxpY2F0ZS1jcmVkZW50aWFsLmh0bWwgKi87IH07CiAJCTU3NDIxNzhFMjQwMEQyREYwMDJC
MzAzRCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0MjE3OEQy
NDAwRDI2QzAwMkIzMDNEIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEu
aHRtbCAqLzsgfTsKIAkJNTc0RjU1RDIyMDRENDdGMDAwMjk0OEM2IC8qIFNlY3VyaXR5LmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NEY1NUQwMjA0RDQ3MUMwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi87IH07CisJCTU3
NTFCMjhBMjQ5RDVCQzUwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc1MUIyODkyNDlENUI5OTAwNjY0QzJBIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnku
aHRtbCAqLzsgfTsKIAkJNTc1ODU5N0YyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTg1OTdF
MjNBMjUyN0EwMEM3NDU3MiAvKiBDdGFwUGluVGVzdC5jcHAgKi87IH07CiAJCTU3NTg1OTg0MjND
M0MzQTQwMEM3NDU3MiAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1w
aW4tZ2V0LXJldHJpZXMtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU4NTk4MzIzQzNDMzYyMDBDNzQ1NzIgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yLmh0
bWwgKi87IH07CiAJCTU3NTk5RTIxMUYwNzE5MTkwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovOyB9OwpAQCAtMTIy
NSw2ICsxMjI2LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJ
CWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJNTc1MUIyOEEyNDlENUJD
NTAwNjY0QzJBIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1n
ZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk1NUE4MTdGRjIxODEwMjFBMDAwNEEzOUEgLyogMTAweDEwMC1yZWQu
dGdhIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBOUU1MkM5MTNFNjVFRjQwMDY5MTdGNSAv
KiAxOC1jaGFyYWN0ZXJzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE4MDAy
MTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4ucG5nIGluIENvcHkgUmVzb3VyY2VzICov
LApAQCAtMjA1NCw2ICsyMDU2LDcgQEAKIAkJNTc0MjE3ODkyNDAwQUVEMDAwMkIzMDNEIC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNyZWRlbnRpYWwu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWR1
cGxpY2F0ZS1jcmVkZW50aWFsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzQyMTc4RDI0MDBEMjZDMDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1sYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtbGEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NEY1NUQwMjA0RDQ3
MUMwMDI5NDhDNiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFNlY3Vy
aXR5LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHku
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJNTc1MUIyODkyNDlENUI5OTAw
NjY0QzJBIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQt
cGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1m
YWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzU4NTk3RDIzQTI1MjdBMDBDNzQ1NzIgLyogQ3RhcFBpblRlc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ3RhcFBpblRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1
ODU5N0UyM0EyNTI3QTAwQzc0NTcyIC8qIEN0YXBQaW5UZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEN0YXBQaW5UZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1ODU5
ODMyM0MzQzM2MjAwQzc0NTcyIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
aGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcmV0cmllcy1lcnJvci5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NDEsNiArMzc0NCw3IEBACiAJCQkJNTdDNjI0
NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0
bWwgKi8sCiAJCQkJNTc4REE0NDcyM0VDRDAxMzAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IuaHRtbCAqLywKIAkJ
CQk1NzBEMjZGMzIzQzNDQTU1MDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgKi8sCisJCQkJNTc1
MUIyODkyNDlENUI5OTAwNjY0QzJBIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkuaHRt
bCAqLywKIAkJCQk1NzhEQTQ0MTIzRUNDNzZCMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtYmxvY2tlZC1l
cnJvci5odG1sICovLAogCQkJCTU3OERBNDQ1MjNFQ0NCRDAwMDI0NjAxMCAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1p
bnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgKi8sCiAJCQkJNTcwRDI2RjkyM0MzRjI0NTAwRDVDRjY3
IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRv
a2VuLXBpbi1ibG9ja2VkLWVycm9yLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KaW5kZXggMjU5Mjg5YmI3N2ZiOTFhMTdjYWMxYTgzYjNlMWMzMTBkYmU0MDRmMi4u
ZDcyYzg4OWY1MGU3ZjBiMDBjZTc0NmZmNTc3MWI1ODA5YmQzZGNiYyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtOTM3LDcgKzkzNyw3IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yTm9EZWxlZ2F0ZSkKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Ci0g
ICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQaW4gaXMgbm90IHZhbGlkOiAiXTsKKyAgICBb
d2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlBpbiBpcyBudWxsLiJdOwogfQogCiBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0ZSkKQEAgLTk1
NCwxMyArOTU0LDEzIEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBp
bkVycm9yTnVsbERlbGVnYXRlKQogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Ci0gICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJQ
aW4gaXMgbm90IHZhbGlkOiAiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlBpbiBp
cyBudWxsLiJdOwogfQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQ
aW5FcnJvcikKIHsKICAgICByZXNldCgpOwotICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBp
bi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwogICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwpAQCAtOTcxLDcgKzk3MSw5IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yKQogCiAgICAgd2ViQXV0aGVudGljYXRpb25QYW5l
bFBpbiA9ICIxMjMiOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwotICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdl
OkAiUGluIGlzIG5vdCB2YWxpZDogMTIzIl07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNh
dGlvblBhbmVsVXBkYXRlUElOSW52YWxpZCk7CisgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFBp
biA9ICIxMjM0IjsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsK
IH0KIAogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2Nr
ZWRFcnJvcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9r
ZW4tZmFrZS1waW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2I3NTg2ZjllYmY2NDliYWRkNmMwZWVjYTVjZGU3MTBhMTVhNDRiYgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1w
aW4taW52YWxpZC1lcnJvci1yZXRyeS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3RhcFBpbkludmFs
aWRFcnJvckJhc2U2NCA9ICJNUT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UmV0cmllc1Jlc3Bv
bnNlQmFzZTY0ID0gIkFLRURDQT09IjsKKyAgICBjb25zdCB0ZXN0UGluR2V0S2V5QWdyZWVtZW50
UmVzcG9uc2VCYXNlNjQgPSAiQUtFQnBRRUNBemdZSUFFaFdDRG9kaVdKYnVUa2JjQXlkbTZBaDVZ
dk50K2Qvb3RXZnpkakFWc1prS1lPRkNKWUlDZmVZUzFtUVl2YUdWQllIcnhjakIydGNReXhUQ0w0
eVhCRjlHRXZzZ3lSIjsKKyAgICBjb25zdCB0ZXN0UGluR2V0UGluVG9rZW5SZXNwb25zZUJhc2U2
NCA9ICJBS0VDVUJPazdyY095UnJxQUI2VEZ2WWVRZmM9IjsKKyAgICBjb25zdCB0ZXN0Q3JlYXRp
b25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJabkJoWTJ0bFpBSll4RWJNZjdsbm5WV3ky
NUNTNGNqWjVlSFFLM1dBOExTQkxIY0pZdUhrajFyWVFRQUEiICsKKyAgICAgICAgIkFFNzRvQkh6
akFwTkZZQUdGeEVmbnR4OUFFQW9DSzNPNlA1T3lYTjZWL2YrOW5BZ2EwTkEyQ2dwNFYzbWdTSjUi
ICsKKyAgICAgICAgImpPSExNRHJteHAvUzByYkQrYWlocnUxQzBhQU4zQmtpTTZHTnk1blNsRFZx
T2dUZ3BRRUNBeVlnQVNGWUlFRmIiICsKKyAgICAgICAgImhlM1JrTnVkNnNneXJhQkdqbGgxcHpU
bENaZWhRbEwvYjE4SFo2V0dJbGdnSmdmVWQvZW45cDVBSXFNUWJVbmkiICsKKyAgICAgICAgIm5F
ZVhkRkxrdlcwL3pWNUJwRWpqTnhBRG8yTmhiR2NtWTNOcFoxaEhNRVVDSVFES2crWkJtRUJ0ZjBs
V3E0UmUiICsKKyAgICAgICAgImRINC9pL0xPWXFPUjR1UjJOQWoyelFtdzlRSWdiVFhiNGh2RmJq
NFQyN2J2L3JHcmMreSswcHVvWU9Ca0JrOVAiICsKKyAgICAgICAgIm1DZXdXbE5qZURWamdWa0N3
akNDQXI0d2dnR21vQU1DQVFJQ0JIU0cvY0l3RFFZSktvWklodmNOQVFFTEJRQXciICsKKyAgICAg
ICAgIkxqRXNNQ29HQTFVRUF4TWpXWFZpYVdOdklGVXlSaUJTYjI5MElFTkJJRk5sY21saGJDQTBO
VGN5TURBMk16RXciICsKKyAgICAgICAgIklCY05NVFF3T0RBeE1EQXdNREF3V2hnUE1qQTFNREE1
TURRd01EQXdNREJhTUc4eEN6QUpCZ05WQkFZVEFsTkYiICsKKyAgICAgICAgIk1SSXdFQVlEVlFR
S0RBbFpkV0pwWTI4Z1FVSXhJakFnQmdOVkJBc01HVUYxZEdobGJuUnBZMkYwYjNJZ1FYUjAiICsK
KyAgICAgICAgIlpYTjBZWFJwYjI0eEtEQW1CZ05WQkFNTUgxbDFZbWxqYnlCVk1rWWdSVVVnVTJW
eWFXRnNJREU1TlRVd01ETTQiICsKKyAgICAgICAgIk5ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhr
ak9QUU1CQndOQ0FBU1ZYZk90OXlSOU1YWHYvWnpFOHhwT2g0NjYiICsKKyAgICAgICAgIjRZRUpW
bUZRK3ppTExsOWxKNzlYUUpxbGdhVU5Dc1V2R0VSY0NoTlVpaE5UeUtUbG1uQk9VanZBVGV2dG8y
d3ciICsKKyAgICAgICAgImFqQWlCZ2tyQmdFRUFZTEVDZ0lFRlRFdU15NDJMakV1TkM0eExqUXhO
RGd5TGpFdU1UQVRCZ3NyQmdFRUFZTGwiICsKKyAgICAgICAgIkhBSUJBUVFFQXdJRklEQWhCZ3Ny
QmdFRUFZTGxIQUVCQkFRU0JCRDRvQkh6akFwTkZZQUdGeEVmbnR4OU1Bd0ciICsKKyAgICAgICAg
IkExVWRFd0VCL3dRQ01BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREZjU0lEbW1sSitPR2FK
dlduOUNxaHYiICsKKyAgICAgICAgIlNldWVUb1ZGUVZWdnF0QUxPZ0NLSGR3QitXeDI5bWcyR3BI
aU1zZ1FwNXhqQjB5YmJucEc2eDIxMkZ4RVNKK0ciICsKKyAgICAgICAgImluWkQwaXBjaGk3QVB3
UGxoSXZqZ0gxNnpWWDQ0YTRlNGhPc2M2dExJT1A3MVNhTXNIdUhnQ2NkSDB2ZzVkMnMiICsKKyAg
ICAgICAgImMwMDZXSmU5VFhPNmZ6VitvZ2pKbllwTktRTG1DWG9BWEUzSkJOd0tHQklPQ3ZmUURQ
eVdtaWlHNWJHeFlmUHQiICsKKyAgICAgICAgInk4WjNwbmpYKzFNRG5NMmhocjQwdWxNeGxTTkRu
WC9aU25EeU1HSWJrOFRPUW1qVEYwMlVPOGF1UDhrM3d0NUQiICsKKyAgICAgICAgIjFyUk9JUlU5
K0ZDU1g1V1FZaTY4UnVEckdNWkI4UDUrYnlvSnFiS1FkeG4yTG1FMW9aQXlvaFBBbUxjb1BPND0i
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46
IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcFBpbkludmFsaWRFcnJvckJhc2U2NCwgdGVz
dFBpbkdldFJldHJpZXNSZXNwb25zZUJhc2U2NCwgdGVzdFBpbkdldEtleUFncmVlbWVudFJlc3Bv
bnNlQmFzZTY0LCB0ZXN0UGluR2V0UmV0cmllc1Jlc3BvbnNlQmFzZTY0LCB0ZXN0UGluR2V0S2V5
QWdyZWVtZW50UmVzcG9uc2VCYXNlNjQsIHRlc3RQaW5HZXRQaW5Ub2tlblJlc3BvbnNlQmFzZTY0
LCB0ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMud2l0
aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAgY29u
c3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDogewor
ICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAor
ICAgICAgICAgICAgICAgIGlkOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNo
YWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCisgICAgICAgIH0KKyAgICB9Owor
CisgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRp
YWwgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3Vj
Y2VlZGVkISIpOworICAgIH0sIGVycm9yID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJy
b3IubWVzc2FnZSk7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKGVycm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>