<?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>190282</bug_id>
          
          <creation_ts>2018-10-04 10:42:02 -0700</creation_ts>
          <short_desc>A Document / Window should lose its browsing context as soon as its iframe is removed from the document</short_desc>
          <delta_ts>2018-10-05 13:11:56 -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>DOM</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>
          <dependson>190320</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466402</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 10:42:02 -0700</bug_when>
    <thetext>A Document / Window should loose its browsing context (aka Frame) as soon as its iframe is removed from the document. Currently, in WebKit, a Document / Window&apos;s Frame only get nulled out when the frame gets destroyed, we happens later usually after a GC happens.
This is not consistent with the specification or other browsers (tested Chrome and Firefox).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466446</commentid>
    <comment_count>1</comment_count>
      <attachid>351611</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 12:16:57 -0700</bug_when>
    <thetext>Created attachment 351611
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466456</commentid>
    <comment_count>2</comment_count>
      <attachid>351614</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 12:25:31 -0700</bug_when>
    <thetext>Created attachment 351614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466459</commentid>
    <comment_count>3</comment_count>
      <attachid>351615</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 12:28:21 -0700</bug_when>
    <thetext>Created attachment 351615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466476</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-04 13:02:40 -0700</bug_when>
    <thetext>Is there any provision in specs for reparenting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466479</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 13:07:17 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; Is there any provision in specs for reparenting?

No sure what you mean. If you remove an iframe from a document and add it back to the document, then it will do a fresh load and you&apos;ll get a brand new document / window, as per HTML spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466480</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 13:07:57 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; (In reply to Alexey Proskuryakov from comment #4)
&gt; &gt; Is there any provision in specs for reparenting?
&gt; 
&gt; No sure what you mean. If you remove an iframe from a document and add it
&gt; back to the document, then it will do a fresh load and you&apos;ll get a brand
&gt; new document / window, as per HTML spec.

Once a window / document loose their frame, they do not normally get reattached later, expect in the PageCache case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466494</commentid>
    <comment_count>7</comment_count>
      <attachid>351618</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 13:28:38 -0700</bug_when>
    <thetext>Created attachment 351618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466522</commentid>
    <comment_count>8</comment_count>
      <attachid>351630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 14:17:17 -0700</bug_when>
    <thetext>Created attachment 351630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466566</commentid>
    <comment_count>9</comment_count>
      <attachid>351630</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-10-04 16:21:06 -0700</bug_when>
    <thetext>Comment on attachment 351630
Patch

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

&gt; LayoutTests/fast/dom/Window/resources/dom-access-from-closure-iframe-child.html:2
&gt; +    p = parent; // Save parent as the window will be detached when accessFrame() is called.

Can we do const parent = window.parent instead?

&gt; LayoutTests/fast/dom/Window/resources/dom-access-from-closure-window-child.html:2
&gt; +    o = opener; // Save opener as the window will be detached when accessFrame() is called.

Ditto.

&gt; LayoutTests/fast/parser/resources/set-parent-to-javascript-url.html:2
&gt; +p = parent;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466574</commentid>
    <comment_count>10</comment_count>
      <attachid>351642</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-10-04 16:40:01 -0700</bug_when>
    <thetext>Created attachment 351642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466579</commentid>
    <comment_count>11</comment_count>
      <attachid>351642</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-04 17:19:56 -0700</bug_when>
    <thetext>Comment on attachment 351642
Patch

Clearing flags on attachment: 351642

Committed r236862: &lt;https://trac.webkit.org/changeset/236862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466580</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-04 17:19:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466581</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-04 17:20:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/45028073&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351611</attachid>
            <date>2018-10-04 12:16:57 -0700</date>
            <delta_ts>2018-10-04 12:25:30 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>detach_frame_more_agressively_wip.patch</filename>
            <type>text/plain</type>
            <size>25383</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZy
YW1lLXJlbW92ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFm
dGVyLWZyYW1lLXJlbW92ZWQuaHRtbAppbmRleCA0ZjY3NzNiNGQ3Yy4uZGM4MjlmZGZkM2EgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1l
LXJlbW92ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvQmFySW5mby1h
ZnRlci1mcmFtZS1yZW1vdmVkLmh0bWwKQEAgLTE1LDcgKzE1LDkgQEAKICAgICAgICAgdmFyIGZy
YW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lIik7CiAgICAgICAgIHZhciBjaGls
ZFdpbmRvdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CiAgICAgICAgIGZyYW1lLnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQoZnJhbWUpOwotICAgICAgICBjaGlsZFdpbmRvdy50b29sYmFyLnZpc2libGU7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjaGlsZFdpbmRvdy50b29sYmFyLnZpc2libGU7
CisgICAgICAgIH0gY2F0Y2ggKGUpIHsgfQogICAgICAgICAKICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5maXJzdENoaWxkLmRhdGEgPSAiVEVTVCBSQU4iOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZy
b20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1leHBlY3RlZC50eHQKaW5kZXggMGYz
OGRkNzEwNzYuLmZmOTIwYzYwYzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1lLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1l
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUt
Y2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3Jlc291cmNlcy9ub3RpZnktcGFyZW50LWRvbmUuaHRtbAotbmFtZTogY2hpbGQKK25hbWU6
IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1l
eHBlY3RlZC50eHQKaW5kZXggZTcwYzBkYjI3ODguLjg2MWYyOGYyNDg2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vz
cy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3Vt
ZW50LlVSTDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRt
bAotbmFtZTogY2hpbGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5k
b3ctd2l0aC1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9t
LWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CmluZGV4IGU3
MGMwZGIyNzg4Li44NjFmMjhmMjQ4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy13aXRoLWdjLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1
cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQu
VVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJv
bS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sCiB3aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL25vdGlmeS1vcGVuZXItZG9uZS5odG1sCi1u
YW1lOiBjaGlsZAorbmFtZTogCiB3aW5kb3cubmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS1pZnJhbWUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJj
ZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKaW5kZXggNDU1MGQx
MmU1MjguLjZiY2M2MGFiYTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9t
LWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKQEAgLTEsNCArMSw2IEBACiA8c2NyaXB0PgorICAg
IHAgPSBwYXJlbnQ7IC8vIFNhdmUgcGFyZW50IGFzIHRoZSB3aW5kb3cgd2lsbCBiZSBkZXRhY2hl
ZCB3aGVuIGFjY2Vzc0ZyYW1lKCkgaXMgY2FsbGVkLgorCiAgICAgcGFyZW50LmFjY2Vzc0ZyYW1l
ID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gbm9ybWFsaXplVVJMKHVybCkK
QEAgLTcsMTIgKzksMTIgQEAKICAgICAgICAgfQogCiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICBwYXJlbnQubG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9jdW1lbnQuVVJM
KSk7Ci0gICAgICAgICAgICBwYXJlbnQubG9nKCJ3aW5kb3cuZG9jdW1lbnQuVVJMOiAiICsgbm9y
bWFsaXplVVJMKHdpbmRvdy5kb2N1bWVudC5VUkwpKTsKLSAgICAgICAgICAgIHBhcmVudC5sb2co
Im5hbWU6ICIgKyBuYW1lKTsKLSAgICAgICAgICAgIHBhcmVudC5sb2coIndpbmRvdy5uYW1lOiAi
ICsgd2luZG93Lm5hbWUpOworICAgICAgICAgICAgcC5sb2coImRvY3VtZW50LlVSTDogIiArIG5v
cm1hbGl6ZVVSTChkb2N1bWVudC5VUkwpKTsKKyAgICAgICAgICAgIHAubG9nKCJ3aW5kb3cuZG9j
dW1lbnQuVVJMOiAiICsgbm9ybWFsaXplVVJMKHdpbmRvdy5kb2N1bWVudC5VUkwpKTsKKyAgICAg
ICAgICAgIHAubG9nKCJuYW1lOiAiICsgbmFtZSk7CisgICAgICAgICAgICBwLmxvZygid2luZG93
Lm5hbWU6ICIgKyB3aW5kb3cubmFtZSk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ICAgIHBhcmVudC5sb2coIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsK
KyAgICAgICAgICAgIHAubG9nKCJBbiBleGNlcHRpb24gd2FzIHRocm93bjogIiArIGUubWVzc2Fn
ZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWNoaWxkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJv
bS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sCmluZGV4IDM2OTEwOTU0ODI0Li40MDc5M2FkZWJk
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1j
aGlsZC5odG1sCkBAIC0xLDQgKzEsNiBAQAogPHNjcmlwdD4KKyAgICBvID0gb3BlbmVyOyAvLyBT
YXZlIG9wZW5lciBhcyB0aGUgd2luZG93IHdpbGwgYmUgZGV0YWNoZWQgd2hlbiBhY2Nlc3NGcmFt
ZSgpIGlzIGNhbGxlZC4KKwogICAgIG9wZW5lci5hY2Nlc3NGcmFtZSA9IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVSTCh1cmwpCkBAIC03LDEyICs5LDEyIEBA
CiAgICAgICAgIH0KIAogICAgICAgICB0cnkgewotICAgICAgICAgICAgb3BlbmVyLmxvZygiZG9j
dW1lbnQuVVJMOiAiICsgbm9ybWFsaXplVVJMKGRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAg
b3BlbmVyLmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTCh3aW5kb3cu
ZG9jdW1lbnQuVVJMKSk7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJuYW1lOiAiICsgbmFtZSk7
Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJ3aW5kb3cubmFtZTogIiArIHdpbmRvdy5uYW1lKTsK
KyAgICAgICAgICAgIG8ubG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9jdW1l
bnQuVVJMKSk7CisgICAgICAgICAgICBvLmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5v
cm1hbGl6ZVVSTCh3aW5kb3cuZG9jdW1lbnQuVVJMKSk7CisgICAgICAgICAgICBvLmxvZygibmFt
ZTogIiArIG5hbWUpOworICAgICAgICAgICAgby5sb2coIndpbmRvdy5uYW1lOiAiICsgd2luZG93
Lm5hbWUpOwogICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJB
biBleGNlcHRpb24gd2FzIHRocm93bjogIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICBvLmxv
ZygiQW4gZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOwogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvYmVm
b3JlLXVubG9hZC1yZXR1cm4tc3RyaW5nLWNvbnZlcnNpb24tZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29u
dmVyc2lvbi1mcmFtZS5odG1sCmluZGV4IDczODdmYmVjMDBmLi5iZDE2ZGU0MjMzYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2JlZm9yZS11bmxvYWQtcmV0
dXJuLXN0cmluZy1jb252ZXJzaW9uLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcmVzb3VyY2VzL2JlZm9yZS11bmxvYWQtcmV0dXJuLXN0cmluZy1jb252ZXJzaW9uLWZy
YW1lLmh0bWwKQEAgLTE0LDkgKzE0LDcgQEAgd2luZG93LnJ1blRlc3QgPSBmdW5jdGlvbigpIHsK
ICAgICAgICAgcGFyZW50LnNob3VsZEJlVHJ1ZSgiZXZlbnQuZGVmYXVsdFByZXZlbnRlZCIpOwog
ICAgICAgICBwYXJlbnQuc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5yZXR1cm5WYWx1ZSIs
ICJQQVNTIik7CiAgICAgICAgIHBhcmVudC5zaG91bGRCZVRydWUoInRvU3RyaW5nQ2FsbGVkIik7
Ci0gICAgICAgIHBhcmVudC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcGFy
ZW50LmZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9LCAwKTsKKyAgICAgICAgcGFyZW50LmZpbmlz
aEpTVGVzdCgpOwogICAgIH0KIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1
bmxvYWQiLCBsaXN0ZW5lcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9y
ZXNvdXJjZXMvc2V0LXBhcmVudC10by1qYXZhc2NyaXB0LXVybC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbApp
bmRleCBhNjRiOWEwMzM1Yi4uNzZmNzcyYmZkMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNj
cmlwdC11cmwuaHRtbApAQCAtMSw2ICsxLDcgQEAKIDxzY3JpcHQ+CitwID0gcGFyZW50OwogYWxl
cnQoMSk7Ci1wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBd
LnNyYyA9ICJqYXZhc2NyaXB0OmFsZXJ0KDIpLCdQQVNTPHNjcmlwdD5hbGVydCgzKTxcL3Njcmlw
dD4nIjsKK3AuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBdLnNyYyA9
ICJqYXZhc2NyaXB0OmFsZXJ0KDIpLCdQQVNTPHNjcmlwdD5hbGVydCgzKTxcL3NjcmlwdD4nIjsK
IGFsZXJ0KDQpOwotcGFyZW50LnNldFRpbWVvdXQoImRvbmUoKSIsIDApOworcC5zZXRUaW1lb3V0
KCJkb25lKCkiLCAwKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRt
bAppbmRleCAwZjk3MmM5N2I3Mi4uNmRiNGI0ZTlkMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS5odG1sCkBAIC0xMiwyNyArMTIsMjkgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKIAogZnVuY3Rpb24g
b25JZnJhbWVMb2FkZWQoKSB7Ci0gICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRX
aW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZU1lZGlhRGV2aWNlcyA9IGlmcmFtZS5jb250ZW50
V2luZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CiAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAg
IG9uSWZyYW1lVW5sb2FkZWQoKTsKIH0KIAogZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsK
KyAgICBoYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0RmFpbGVk
KCdUaW1lb3V0OiBwcm9taXNlIHJlc29sdmUgYW5kIHJlamVjdCBmdW5jdGlvbnMgbm90IGNhbGxl
ZC4nKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKKwogICAgIHZhciBv
cHRpb25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci0gICAgaWZyYW1lTmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICBpZnJhbWVNZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKG9wdGlvbnMpCiAgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CiAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCdQcm9taXNlIHJlc29sdmVkIHVuZXhwZWN0ZWRseS4nKTsKKyAg
ICAgICAgICAgIGNsZWFyVGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CiAgICAgICAgIH0pCiAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgdGVz
dFBhc3NlZCgnUHJvbWlzZSByZWplY3RlZCBhcyBleHBlY3RlZC4nKTsKKyAgICAgICAgICAgIGNs
ZWFyVGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAg
IH0pOwotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgn
VGltZW91dDogcHJvbWlzZSByZXNvbHZlIGFuZCByZWplY3QgZnVuY3Rpb25zIG5vdCBjYWxsZWQu
Jyk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIDEwMCk7CiB9CiAKIHZhciBpZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9jaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvY2hlY2tEaWRT
YW1lT3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCmluZGV4IDkxODYwYjI4NzEyLi4yNjQwMjdiYmJh
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9yZXNvdXJjZXMvY2hlY2tEaWRTYW1lT3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCkBAIC05
LDcgKzksNyBAQCBmdW5jdGlvbiBjaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWRBbmRO
b3RpZnlEb25lKGNoaWxkV2luZG93KQogZnVuY3Rpb24gY2hlY2tEaWRTYW1lT3JpZ2luQ2hpbGRX
aW5kb3dMb2FkKGNoaWxkV2luZG93LCBjYWxsYmFjaykKIHsKICAgICBmdW5jdGlvbiBjaGVja0Rp
ZExvYWQoKSB7Ci0gICAgICAgIGlmIChjaGlsZFdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5vcmln
aW4gIT09IGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikKKyAgICAgICAgaWYgKGNoaWxkV2luZG93
LmRvY3VtZW50LmxvY2F0aW9uID09PSAiYWJvdXQ6YmxhbmsiKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBDaGlsZCB3aW5kb3cgZGlkIGxvYWQKICAgICAgICAgd2luZG93LmNsZWFy
SW50ZXJ2YWwoaW50ZXJ2YWxJRCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZl
LWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0CmluZGV4IDA3MThhZDVkMTlmLi5hYjIwYjk3NDNmNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJv
bS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1l
LW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFt
ZSBjb3JyZXNwb25kcyB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRv
Y3VtZW50OgogUEFTUyBmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKSBp
cyBub3QgZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQKLVBBU1MgZWxlbWVudEFJbkFjdGl2ZURv
Y3VtZW50RnVuY3Rpb24oKSBpcyBmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J0EnKQorUEFTUyBlbGVtZW50QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRocmV3IGV4Y2Vw
dGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQS4KIAogTG9va3VwIG5h
bWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFuIGVsZW1lbnQg
aW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Ci1QQVNTIGVsZW1lbnRCSW5BY3Rp
dmVEb2N1bWVudEZ1bmN0aW9uKCkgaXMgZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdCJykKK1BBU1MgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSB0aHJldyBl
eGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEIuCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20t
c2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3Rp
dmUtZG9jdW1lbnQuaHRtbAppbmRleCBlN2U0YjYxNzVlMy4uZTM2NmY2ZGU0YWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5
LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3Jp
Z2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIgZWxlbWVu
dEFJbkluYWN0aXZlRG9jdW1lbnQgPSBmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQuaWQgPSAiQSI7CiBmcmFtZURvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQpOwogCi12YXIgZWxlbWVu
dEFJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9u
KCJyZXR1cm4gQTsiKTsKLXZhciBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbiA9IGZy
YW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBCOyIpOwordmFyIGVsZW1lbnRBSW5E
ZXRhY2hlZFdpbmRvd0Z1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0
dXJuIEE7Iik7Cit2YXIgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBmcmFtZS5j
b250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKIAogZnJhbWUub25sb2FkID0gZnVu
Y3Rpb24gKCkKIHsKICAgICBkZWJ1ZygiTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBj
b3JyZXNwb25kcyB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3Vt
ZW50OiIpOwogICAgIHNob3VsZE5vdEJlKCJmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ0EnKSIsICJlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudCIpOwotICAgIHNob3VsZEJl
KCJlbGVtZW50QUluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwgImZyYW1lLmNvbnRlbnREb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnQScpIik7CisgICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoImVs
ZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAiUmVmZXJlbmNlRXJyb3IiKTsKIAog
ICAgIGRlYnVnKCI8YnI+TG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBkb2VzIG5vdCBj
b3JyZXNwb25kIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1l
bnQ6Iik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCki
LCAiZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCJykiKTsKKyAgICBzaG91
bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICJS
ZWZlcmVuY2VFcnJvciIpOwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY29udGVudFdpbmRvdy1l
dmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CmluZGV4IGYwZWU4ZDJhODM2Li43
ZmZhMDRkNjdlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELWNvbnRlbnRXaW5kb3ctZXZhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNvbnRlbnRXaW5kb3ctZXZhbC1leHBl
Y3RlZC50eHQKQEAgLTEsMiArMSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJv
cjogVHlwZSBlcnJvcgogVGhpcyB0ZXN0IHBhc3NlcyBpZiBhbGVydCgpIGlzIG5vdCBjYWxsZWQu
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3Vt
ZW50LWV4cGVjdGVkLnR4dAppbmRleCA4OTVmOWJmMDMwYy4uZTRmYTk0ZDEyMjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1uYW1lZC13aW5k
b3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1uYW1l
ZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQtZXhw
ZWN0ZWQudHh0CkBAIC00LDEwICs0LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAog
TG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBjb3JyZXNwb25kcyB0byBhbiBlbGVtZW50
IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3VtZW50OgotUEFTUyBlbGVtZW50QUluQWN0
aXZlRG9jdW1lbnRGdW5jdGlvbigpIHRocmV3IGV4Y2VwdGlvbiBTZWN1cml0eUVycm9yOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBjcm9zcy1vcmlnaW4gZnJhbWUuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guLgorUEFTUyBlbGVtZW50QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRo
cmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQS4KIAog
TG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFu
IGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Ci1QQVNTIGVsZW1l
bnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFNlY3VyaXR5RXJy
b3I6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGNyb3NzLW9yaWdpbiBmcmFtZS4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4uCitQQVNTIGVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0
aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBCLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFt
ZWQtd2luZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2lu
ZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKaW5k
ZXggMzVlNDU0NGExMDcuLjg5M2FjYTczNGYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tY3Jv
c3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3Nz
LW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCkBAIC0xNywxNiArMTcsMTYgQEAgdmFyIGVs
ZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50ID0gZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKIGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50LmlkID0gIkEiOwogZnJhbWVEb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50KTsKIAotdmFyIGVs
ZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5j
dGlvbigicmV0dXJuIEE7Iik7Ci12YXIgZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24g
PSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKK3ZhciBlbGVtZW50
QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24o
InJldHVybiBBOyIpOwordmFyIGVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uID0gZnJh
bWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0dXJuIEI7Iik7CiAKIGZyYW1lLm9ubG9hZCA9
IGZ1bmN0aW9uICgpCiB7CiAgICAgZGVidWcoIkxvb2t1cCBuYW1lZCBlbGVtZW50IHdob3NlIG5h
bWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBk
b2N1bWVudDoiKQotICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QUluQWN0aXZlRG9j
dW1lbnRGdW5jdGlvbigpIiwgJ1NlY3VyaXR5RXJyb3InKTsKKyAgICBzaG91bGRUaHJvd0Vycm9y
TmFtZSgiZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICdSZWZlcmVuY2VFcnJv
cicpOwogCiAgICAgZGVidWcoIjxicj5Mb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRv
ZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFu
ayBkb2N1bWVudDoiKTsKLSAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkFjdGl2
ZURvY3VtZW50RnVuY3Rpb24oKSIsICdTZWN1cml0eUVycm9yJyk7CisgICAgc2hvdWxkVGhyb3dF
cnJvck5hbWUoImVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAnUmVmZXJlbmNl
RXJyb3InKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3Mv
bmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dpbmRvdy1wYXJlbnQtbnVsbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1udWxsLWV4
cGVjdGVkLnR4dAppbmRleCAxNWU5NTUxNmM5My4uM2Y3YThmYWMwNTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93
aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFy
ZW50LW51bGwtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIGB3aW5kb3cucGFy
ZW50YCBpcyBudWxsIHdoZW4gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXIgZWxlbWVudCByZW1v
dmVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3Qg
V2luZG93XSIKLUZBSUwgYHdpbmRvdy5wYXJlbnRgIG51bGwgd2hlbiBwYXJlbnQgYnJvd3Npbmcg
Y29udGV4dCBjb250YWluZXIgcmVtb3ZlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFdpbmRvd10iCi0KK1BBU1MgYHdpbmRvdy5wYXJlbnRgIGlz
IG51bGwgd2hlbiBicm93c2luZyBjb250ZXh0IGNvbnRhaW5lciBlbGVtZW50IHJlbW92ZWQgCitQ
QVNTIGB3aW5kb3cucGFyZW50YCBudWxsIHdoZW4gcGFyZW50IGJyb3dzaW5nIGNvbnRleHQgY29u
dGFpbmVyIHJlbW92ZWQgCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlm
cmFtZS1lbGVtZW50L2lmcmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNs
eS1kaXNjYXJkLWV4cGVjdGVkLnR4dAppbmRleCA0MzZhMzFjNzAyNy4uZjA0M2Q1NTMzNWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lLXN5
bmNocm9ub3VzbHktZGlzY2FyZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBJRnJhbWUgZGlzY2FyZHMgYXJlIHByb2Nlc3Nl
ZCBzeW5jaHJvbm91c2x5IGFzc2VydF9lcXVhbHM6IGNoaWxkIHdpbmRvdyBzaG91bGQgYmUgZGlz
Y2FyZGVkIGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgV2luZG93XSIKK1BB
U1MgSUZyYW1lIGRpc2NhcmRzIGFyZSBwcm9jZXNzZWQgc3luY2hyb25vdXNseSAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmlu
ZGV4IDY5MGZmMzY2ZThmLi45MWM1MWFkMjQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtOTYsMTEgKzk2LDEzIEBA
IHN0YXRpYyBNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3QgVmFy
aWFudDxib29sLCBNZWRpYVRyYWNrQ29uCiAgICAgKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4g
TWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgTWVkaWFEZXZpY2VzOjpnZXRV
c2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYg
cHJvbWlzZSkgY29uc3QKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7
Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMo
Y29uc3RyYWludHMuYXVkaW8pOwogICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9IGNyZWF0ZU1l
ZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOwpAQCAtMTExLDcgKzExMyw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50CiAgICAgaWYgKHJlcXVlc3QpCiAgICAgICAgIHJlcXVlc3Qt
PnN0YXJ0KCk7CiAKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybjsKIH0KIAogRXhjZXB0aW9u
T3I8dm9pZD4gTWVkaWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IDdiMmM3
Y2E5NzFkLi43Y2RhMWViOTVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgVmFyaWFudDxib29sLCBNZWRpYVRyYWNrQ29uc3RyYWludHM+IHZpZGVvOwogICAgICAgICBW
YXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4gYXVkaW87CiAgICAgfTsKLSAgICBF
eGNlcHRpb25Pcjx2b2lkPiBnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQ
cm9taXNlJiYpIGNvbnN0OworICAgIHZvaWQgZ2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0
cmFpbnRzJiwgUHJvbWlzZSYmKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZXREaXNw
bGF5TWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwogICAg
IHZvaWQgZW51bWVyYXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKSBjb25zdDsK
ICAgICBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMgZ2V0U3VwcG9ydGVkQ29uc3RyYWlu
dHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY1OGViMmU1OWNiLi5kNjA5ZjhjNWMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMzM5LDYgKzIzMzksOCBAQCB2b2lkIERv
Y3VtZW50OjphdHRhY2hUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUp
CiAgICAgQVNTRVJUKGNhY2hlZEZyYW1lLnZpZXcoKSk7CiAgICAgQVNTRVJUKG1fcGFnZUNhY2hl
U3RhdGUgPT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKICAgICBvYnNlcnZlRnJhbWUoJmNhY2hl
ZEZyYW1lLnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvbVdpbmRv
dygpKQorICAgICAgICB3aW5kb3ctPmF0dGFjaFRvRnJhbWUoY2FjaGVkRnJhbWUudmlldygpLT5m
cmFtZSgpKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6ZGV0YWNoRnJvbUNhY2hlZEZyYW1lKENhY2hl
ZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCkBAIC04MjUwLDQgKzgyNTIsMTIgQEAgYm9vbCBEb2N1
bWVudDo6cmVnaXN0ZXJDU1NQcm9wZXJ0eShDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkmJiBw
cm9wKQogICAgIHJldHVybiBtX0NTU1JlZ2lzdGVyZWRQcm9wZXJ0eVNldC5hZGQocHJvcC5uYW1l
LCBzdGQ6Om1ha2VfdW5pcXVlPENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eT4oV1RGTW92ZShw
cm9wKSkpLmlzTmV3RW50cnk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21GcmFtZSgp
Cit7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ct
PndpbGxEZXRhY2hEb2N1bWVudEZyb21GcmFtZSgpOworCisgICAgb2JzZXJ2ZUZyYW1lKG51bGxw
dHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGE3OTZiNDkwN2MxLi5hZTE2ZDQ4OGZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE1MDEs
NiArMTUwMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFzUnVubmluZ1VzZXJTY3JpcHRzKCkg
eyBtX2lzUnVubmluZ1VzZXJTY3JpcHRzID0gdHJ1ZTsgfQogICAgIGJvb2wgaXNSdW5uaW5nVXNl
clNjcmlwdHMoKSBjb25zdCB7IHJldHVybiBtX2lzUnVubmluZ1VzZXJTY3JpcHRzOyB9CiAKKyAg
ICB2b2lkIGRldGFjaEZyb21GcmFtZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1
Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEg
PDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZh
dWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTE1
MTgsOCArMTUyMCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZEluaGVyaXRDb250ZW50
U2VjdXJpdHlQb2xpY3lGcm9tT3duZXIoKSBjb25zdDsKIAotICAgIHZvaWQgZGV0YWNoRnJvbUZy
YW1lKCkgeyBvYnNlcnZlRnJhbWUobnVsbHB0cik7IH0KLQogICAgIHZvaWQgdXBkYXRlVGl0bGVF
bGVtZW50KEVsZW1lbnQmIGNoYW5naW5nVGl0bGVFbGVtZW50KTsKICAgICB2b2lkIGZyYW1lRGVz
dHJveWVkKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA3YmRlMWNi
YjhiNi4uZjZhYTIzYzk4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTQxNCw2
ICs0MTQsNyBAQCBET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCiB2b2lk
IERPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICBvYnNlcnZlQ29udGV4dCgmZG9jdW1lbnQpOworICAgIG9ic2VydmVGcmFtZShkb2N1bWVu
dC5mcmFtZSgpKTsKIH0KIAogRE9NV2luZG93Ojp+RE9NV2luZG93KCkKQEAgLTUxMSw2ICs1MTIs
OCBAQCB2b2lkIERPTVdpbmRvdzo6d2lsbERldGFjaERvY3VtZW50RnJvbUZyYW1lKCkKIAogICAg
IGlmIChtX3BlcmZvcm1hbmNlKQogICAgICAgICBtX3BlcmZvcm1hbmNlLT5jbGVhclJlc291cmNl
VGltaW5ncygpOworCisgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKICNpZiBFTkFCTEUoR0FN
RVBBRCkKQEAgLTE0MDIsNyArMTQwNSwxNyBAQCB2b2lkIERPTVdpbmRvdzo6c2V0U3RhdHVzKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkpOyAv
LyBDbGllbnQgY2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJhbWUgaXMgaW4gaW5j
b25zaXN0ZW50IHN0YXRlLgogICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1f
ZnJhbWUsIG1fc3RhdHVzKTsKLX0gCit9CisKK3ZvaWQgRE9NV2luZG93OjpkZXRhY2hGcm9tRnJh
bWUoKQoreworICAgIG9ic2VydmVGcmFtZShudWxscHRyKTsKK30KKwordm9pZCBET01XaW5kb3c6
OmF0dGFjaFRvRnJhbWUoRnJhbWUmIGZyYW1lKQoreworICAgIG9ic2VydmVGcmFtZSgmZnJhbWUp
OworfQogICAgIAogdm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5n
JiBzdHJpbmcpIAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggZTJmNDlkMTkwM2YuLjNl
ZDQ3MDM3ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTMzMyw2ICszMzMsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCB3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKTsKICAgICB2b2lk
IHdpbGxEZXN0cm95Q2FjaGVkRnJhbWUoKTsKIAorICAgIHZvaWQgYXR0YWNoVG9GcmFtZShGcmFt
ZSYpOworICAgIHZvaWQgZGV0YWNoRnJvbUZyYW1lKCk7CisKICAgICB2b2lkIGVuYWJsZVN1ZGRl
blRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAppbmRleCA1NTA5NmI2NGFh
YS4uMmMyMThlZGJhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHku
Y3BwCkBAIC01Nyw5ICs1Nyw2IEBAIERPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93UHJvcGVy
dHkoKQogCiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0RnJhbWVGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKQogewotICAgIC8vIElmIHRoaXMgcHJvcGVydHkgaXMgYmVpbmcgZGlzY29u
bmVjdGVkIGZyb20gaXRzIEZyYW1lIHRvIGVudGVyIHRoZSBQYWdlQ2FjaGUsIGl0IG11c3QgaGF2
ZQotICAgIC8vIGJlZW4gY3JlYXRlZCB3aXRoIGEgRnJhbWUgaW4gdGhlIGZpcnN0IHBsYWNlLgot
ICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBBU1NFUlQobV9hc3NvY2lhdGVkRE9NV2luZG93KTsK
IAogICAgIG1fZnJhbWUgPSBudWxscHRyOwpAQCAtOTMsOCArOTAsNiBAQCB2b2lkIERPTVdpbmRv
d1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKQogCiB2b2lk
IERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKQogewot
ICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBnZXR0aW5nIHRoaXMgY2FsbGJhY2sgaXQgbXVzdCBo
YXZlIGJlZW4gY3JlYXRlZCB3aXRoIGEgRnJhbWUvRE9NV2luZG93IGFuZCBpdCBzaG91bGQgc3Rp
bGwgaGF2ZSB0aGVtLgotICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBBU1NFUlQobV9hc3NvY2lh
dGVkRE9NV2luZG93KTsKIAogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0
IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0YW50
IHRoYXQgaXQgdW5yZWdpc3RlcgpAQCAtMTA3LDkgKzEwMiw3IEBAIHZvaWQgRE9NV2luZG93UHJv
cGVydHk6OndpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5GcmFtZSgpCiAKIHZvaWQgRE9NV2luZG93
UHJvcGVydHk6OndpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKQogewotICAgIC8vIElm
IHRoZSBwcm9wZXJ0eSBpcyBnZXR0aW5nIHRoaXMgY2FsbGJhY2sgaXQgbXVzdCBoYXZlIGJlZW4g
Y3JlYXRlZCB3aXRoIGEgRnJhbWUvRE9NV2luZG93IGFuZCBpdCBzaG91bGQgc3RpbGwgaGF2ZSB0
aGVtLgotICAgIEFTU0VSVChtX2ZyYW1lKTsKLSAgICBBU1NFUlQobV9hc3NvY2lhdGVkRE9NV2lu
ZG93KTsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApp
bmRleCAxOTNlYzc3NWIwZi4uY2JlNDVlMzg1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC04
MzEsNiArODMxLDkgQEAgdm9pZCBGcmFtZTo6ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpCiAgICAg
ICAgICAgICBtX3BhZ2UtPmRlY3JlbWVudFN1YmZyYW1lQ291bnQoKTsKICAgICB9CiAgICAgbV9v
d25lckVsZW1lbnQgPSBudWxscHRyOworCisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPmRldGFjaEZyb21GcmFtZSgpOwogfQogCiBT
dHJpbmcgRnJhbWU6OmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoY29uc3QgU3RyaW5n
JiBzdHIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGQ0NzA2YmM1ZmRjLi44ZmU0YzVkZGNi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpkcmF3VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAg
IHN0cmluZyA9IFN0cmluZzo6Zm9ybWF0KCJDYW1lcmE6ICVzIiwgY2FtZXJhKTsKICAgICAgICAg
c3RhdHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQu
ZHJhd1RleHQoc3RhdHNGb250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNM
b2NhdGlvbik7Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKCFuYW1lKCkuaXNOdWxsKCkp
IHsKICAgICAgICAgc3RhdHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAg
ICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNGb250LCBUZXh0UnVuIHsgbmFtZSgpIH0sIHN0YXRz
TG9jYXRpb24pOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351614</attachid>
            <date>2018-10-04 12:25:31 -0700</date>
            <delta_ts>2018-10-04 12:28:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190282-20181004122530.patch</filename>
            <type>text/plain</type>
            <size>32976</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY5ZTE1YmJkMDAzZDA5
ZWQ2NDkyN2UzY2ViMTIyODQ4NDhkYzI4Yi4uMWIwNTNiYmM1MTU0MjQ0MTNmMDQ5YzE2NjQxMGVj
NWQ3Yjk4YTBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE4LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQSBEb2N1bWVudCAvIFdpbmRv
dyBzaG91bGQgbG9vc2UgaXRzIGJyb3dzaW5nIGNvbnRleHQgYXMgc29vbiBhcyBpdHMgaWZyYW1l
IGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxkIGxvb3NlIGl0
cyBicm93c2luZyBjb250ZXh0IChha2EgRnJhbWUpIGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyBy
ZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIGRvY3VtZW50LiBJbiBXZWJLaXQsIGEgRG9jdW1lbnQg
LyBXaW5kb3cncyBGcmFtZSB3YXMgb25seSBnZXR0aW5nIG51bGxlZCBvdXQgd2hlbiB0aGUgZnJh
bWUgZ2V0cworICAgICAgICBkZXN0cm95ZWQsIHdoaWNoIGhhcHBlbnMgbGF0ZXIgdXN1YWxseSBh
ZnRlciBhIEdDIGhhcHBlbnMuCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN0aGUtaWZyYW1lLWVsZW1lbnQKKyAgICAgICAg
IiIiCisgICAgICAgIFdoZW4gYW4gaWZyYW1lIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9j
dW1lbnQsIHRoZSB1c2VyIGFnZW50IG11c3QgZGlzY2FyZCB0aGUgZWxlbWVudCdzIG5lc3RlZCBi
cm93c2luZworICAgICAgICBjb250ZXh0LCBpZiBpdCBpcyBub3QgbnVsbCwgYW5kIHRoZW4gc2V0
IHRoZSBlbGVtZW50J3MgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgdG8gbnVsbC4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgVGhpcyB3YXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGUgc3BlY2lmaWNh
dGlvbiBvciBvdGhlciBicm93c2VycyAodGVzdGVkIENocm9tZSBhbmQgRmlyZWZveCkgc28gdGhp
cworICAgICAgICBwYXRjaCBpcyBhbGlnbmluZyBvdXIgYmVoYXZpb3IuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
RGV2aWNlczo6Z2V0VXNlck1lZGlhIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICBVcGRhdGUgZ2V0VXNlck1lZGlhKCkgdG8gcmVq
ZWN0IGEgdGhlIFByb21pc2Ugd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIGNhbGxpbmcg
YWZ0ZXIgdGhlCisgICAgICAgIGRvY3VtZW50IGhhcyBiZWVuIGRldGFjaGVkLCBpbnN0ZWFkIG9m
IHRocm93aW5nIGFuIEludmFsaWRTdGF0ZUVycm9yLiBUaGlzIGJlaGF2aW9yIGlzIGFzIHBlcgor
ICAgICAgICBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9t
ZWRpYWNhcHR1cmUtbWFpbi8jZG9tLW1lZGlhZGV2aWNlcy1nZXR1c2VybWVkaWEgKFN0ZXAgNCkK
KyAgICAgICAgSSBuZWVkZWQgdG8gbWFrZSB0aGlzIGNoYW5nZSB0byBrZWVwIG9uZSBvZiBvdXIg
bGF5b3V0IHRlc3RzIHBhc3NpbmcuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmF0dGFjaFRvQ2FjaGVkRnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaEZyb21GcmFtZSk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8pOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Ojp3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpzZXRTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZXRh
Y2hGcm9tRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphdHRhY2hUb0ZyYW1l
KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
UHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OmRpc2Nv
bm5lY3RGcmFtZUZvckRvY3VtZW50U3VzcGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVj
dEluRnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWU6OmRpc2Nvbm5lY3RPd25lckVsZW1lbnQpOgorCisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQpOgorICAgICAgICBDYWxsaW5nIGRyYXdUZXh0KCkg
d2l0aCBhIG51bGwgU3RyaW5nIGhpdHMgYW4gYXNzZXJ0aW9uIGluIGRlYnVnLiBUaGlzIHdhcyB0
cmlnZ2VyZWQgYnkgb25lIG9mCisgICAgICAgIG91ciBsYXlvdXQgdGVzdHMgc28gSSBtYWRlIHN1
cmUgd2Ugb25seSBjYWxsIGRyYXdUZXh0IHdoZW4gdGhlIFN0cmluZyBpcyBub3QgbnVsbC4KKwog
MjAxOC0xMC0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGlu
cHV0LmNoZWNrZWQgaXMgaW5jb3JyZWN0IHdoaWxlIHdlJ3JlIHBhcnNpbmcgaXRzIGNoaWxkcmVu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKaW5kZXggNjkwZmYzNjZlOGYwZTFmNjJiYWQwMGE0NGMyNjEwZmUxMDE1Y2YxNS4uOTFj
NTFhZDI0NTIwNWEwZTQ1NzQ2ZDZhNTExNzUxYWIyZWFkYmJmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtOTYsMTEg
Kzk2LDEzIEBAIHN0YXRpYyBNZWRpYUNvbnN0cmFpbnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMo
Y29uc3QgVmFyaWFudDxib29sLCBNZWRpYVRyYWNrQ29uCiAgICAgKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgTWVkaWFEZXZp
Y2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQ
cm9taXNlJiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRv
Y3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIGF1dG8gYXVkaW9Db25zdHJhaW50cyA9IGNyZWF0ZU1lZGlhQ29u
c3RyYWludHMoY29uc3RyYWludHMuYXVkaW8pOwogICAgIGF1dG8gdmlkZW9Db25zdHJhaW50cyA9
IGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMudmlkZW8pOwpAQCAtMTExLDcgKzEx
Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0
IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50CiAgICAgaWYgKHJlcXVlc3QpCiAgICAgICAg
IHJlcXVlc3QtPnN0YXJ0KCk7CiAKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybjsKIH0KIAog
RXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgU3Ry
ZWFtQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCmlu
ZGV4IDdiMmM3Y2E5NzFkNjI5NTU3YjExYWQ4MzUwZjc0NzA2MDllZjkxNjAuLjdjZGExZWI5NWYy
OTIyMWQ3NDM0ZDdiNDBhM2U2MDcwOTEyYjI1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiB2aWRlbzsK
ICAgICAgICAgVmFyaWFudDxib29sLCBNZWRpYVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOwogICAg
IH07Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gZ2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0
cmFpbnRzJiwgUHJvbWlzZSYmKSBjb25zdDsKKyAgICB2b2lkIGdldFVzZXJNZWRpYShjb25zdCBT
dHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gZ2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiwgUHJvbWlzZSYmKSBj
b25zdDsKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2Um
JikgY29uc3Q7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRl
ZENvbnN0cmFpbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmNThlYjJlNTljYjBk
OGIxMWNiNWE1NjQyYzAxZTQxZmJiZWM4ZGVmLi5kNjA5ZjhjNWMyOGZmNGU1MDk1M2U0ZDhiZmVm
OTM3ZWI5M2YwOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIzMzksNiArMjMzOSw4
IEBAIHZvaWQgRG9jdW1lbnQ6OmF0dGFjaFRvQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWVCYXNlJiBj
YWNoZWRGcmFtZSkKICAgICBBU1NFUlQoY2FjaGVkRnJhbWUudmlldygpKTsKICAgICBBU1NFUlQo
bV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOwogICAgIG9ic2VydmVG
cmFtZSgmY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgpKTsKKyAgICBpZiAoYXV0byogd2luZG93
ID0gZG9tV2luZG93KCkpCisgICAgICAgIHdpbmRvdy0+YXR0YWNoVG9GcmFtZShjYWNoZWRGcmFt
ZS52aWV3KCktPmZyYW1lKCkpOwogfQogCiB2b2lkIERvY3VtZW50OjpkZXRhY2hGcm9tQ2FjaGVk
RnJhbWUoQ2FjaGVkRnJhbWVCYXNlJiBjYWNoZWRGcmFtZSkKQEAgLTgyNTAsNCArODI1MiwxMiBA
QCBib29sIERvY3VtZW50OjpyZWdpc3RlckNTU1Byb3BlcnR5KENTU1JlZ2lzdGVyZWRDdXN0b21Q
cm9wZXJ0eSYmIHByb3ApCiAgICAgcmV0dXJuIG1fQ1NTUmVnaXN0ZXJlZFByb3BlcnR5U2V0LmFk
ZChwcm9wLm5hbWUsIHN0ZDo6bWFrZV91bmlxdWU8Q1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5
PihXVEZNb3ZlKHByb3ApKSkuaXNOZXdFbnRyeTsKIH0KIAordm9pZCBEb2N1bWVudDo6ZGV0YWNo
RnJvbUZyYW1lKCkKK3sKKyAgICBpZiAoYXV0byogd2luZG93ID0gZG9tV2luZG93KCkpCisgICAg
ICAgIHdpbmRvdy0+d2lsbERldGFjaERvY3VtZW50RnJvbUZyYW1lKCk7CisKKyAgICBvYnNlcnZl
RnJhbWUobnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggYTc5NmI0OTA3YzEyMTU4YzA2YmZhNjI1MzFkOGYxN2VjZTBhYWM0Mi4uYWUx
NmQ0ODhmYmNiOGY5NjhhMDdhN2U0OGFmMTExYWU4ZDhlZTlmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTE1MDEsNiArMTUwMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFzUnVubmluZ1Vz
ZXJTY3JpcHRzKCkgeyBtX2lzUnVubmluZ1VzZXJTY3JpcHRzID0gdHJ1ZTsgfQogICAgIGJvb2wg
aXNSdW5uaW5nVXNlclNjcmlwdHMoKSBjb25zdCB7IHJldHVybiBtX2lzUnVubmluZ1VzZXJTY3Jp
cHRzOyB9CiAKKyAgICB2b2lkIGRldGFjaEZyb21GcmFtZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAg
ZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFj
ZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5z
aWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3Mg
PSAwKTsKQEAgLTE1MTgsOCArMTUyMCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZElu
aGVyaXRDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9tT3duZXIoKSBjb25zdDsKIAotICAgIHZvaWQg
ZGV0YWNoRnJvbUZyYW1lKCkgeyBvYnNlcnZlRnJhbWUobnVsbHB0cik7IH0KLQogICAgIHZvaWQg
dXBkYXRlVGl0bGVFbGVtZW50KEVsZW1lbnQmIGNoYW5naW5nVGl0bGVFbGVtZW50KTsKICAgICB2
b2lkIGZyYW1lRGVzdHJveWVkKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApp
bmRleCA3YmRlMWNiYjhiNjM3MWU3YTdhMDhiYTU1MWU4NTZiODE5MmY2MGZjLi5mNmFhMjNjOThh
ZjhlZDUzMTYwZjM5YjlhZmU0NWQzMzEzZDhlMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCkBAIC00MTQsNiArNDE0LDcgQEAgRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQmIGRv
Y3VtZW50KQogdm9pZCBET01XaW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiAgICAgb2JzZXJ2ZUNvbnRleHQoJmRvY3VtZW50KTsKKyAgICBvYnNlcnZl
RnJhbWUoZG9jdW1lbnQuZnJhbWUoKSk7CiB9CiAKIERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCkBA
IC01MTEsNiArNTEyLDggQEAgdm9pZCBET01XaW5kb3c6OndpbGxEZXRhY2hEb2N1bWVudEZyb21G
cmFtZSgpCiAKICAgICBpZiAobV9wZXJmb3JtYW5jZSkKICAgICAgICAgbV9wZXJmb3JtYW5jZS0+
Y2xlYXJSZXNvdXJjZVRpbWluZ3MoKTsKKworICAgIGRldGFjaEZyb21GcmFtZSgpOwogfQogCiAj
aWYgRU5BQkxFKEdBTUVQQUQpCkBAIC0xNDAyLDcgKzE0MDUsMTcgQEAgdm9pZCBET01XaW5kb3c6
OnNldFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykKIAogICAgIEFTU0VSVChtX2ZyYW1lLT5k
b2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBiZSBtYWRlIHdoZW4gdGhlIGZy
YW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KICAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0
dXNiYXJUZXh0KCptX2ZyYW1lLCBtX3N0YXR1cyk7Ci19IAorfQorCit2b2lkIERPTVdpbmRvdzo6
ZGV0YWNoRnJvbUZyYW1lKCkKK3sKKyAgICBvYnNlcnZlRnJhbWUobnVsbHB0cik7Cit9CisKK3Zv
aWQgRE9NV2luZG93OjphdHRhY2hUb0ZyYW1lKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBvYnNlcnZl
RnJhbWUoJmZyYW1lKTsKK30KICAgICAKIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVz
KGNvbnN0IFN0cmluZyYgc3RyaW5nKSAKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGUy
ZjQ5ZDE5MDNmNGFjNDliZDY4ODE4NDRjZjg3NDQ3MjRjYWFkZWMuLjNlZDQ3MDM3ZjgxYzI1MTFl
YTE0MTg0MjBlOGE5MmFhYjIwMjkyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMzMz
LDYgKzMzMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxEZXRhY2hEb2N1bWVudEZyb21GcmFt
ZSgpOwogICAgIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRGcmFtZSgpOwogCisgICAgdm9pZCBhdHRh
Y2hUb0ZyYW1lKEZyYW1lJik7CisgICAgdm9pZCBkZXRhY2hGcm9tRnJhbWUoKTsKKwogICAgIHZv
aWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICB2b2lkIGRpc2FibGVTdWRkZW5UZXJt
aW5hdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1By
b3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCmlu
ZGV4IDU1MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3ZTVjNjA5ZWQ1MGY4NTcuLjJjMjE4ZWRiYTMz
NDdjNDkzMzg1ZDEyNzJlMzQxYThhNDE2MTMxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93UHJvcGVydHkuY3BwCkBAIC01Nyw5ICs1Nyw2IEBAIERPTVdpbmRvd1Byb3BlcnR5Ojp+
RE9NV2luZG93UHJvcGVydHkoKQogCiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0
RnJhbWVGb3JEb2N1bWVudFN1c3BlbnNpb24oKQogewotICAgIC8vIElmIHRoaXMgcHJvcGVydHkg
aXMgYmVpbmcgZGlzY29ubmVjdGVkIGZyb20gaXRzIEZyYW1lIHRvIGVudGVyIHRoZSBQYWdlQ2Fj
aGUsIGl0IG11c3QgaGF2ZQotICAgIC8vIGJlZW4gY3JlYXRlZCB3aXRoIGEgRnJhbWUgaW4gdGhl
IGZpcnN0IHBsYWNlLgotICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBBU1NFUlQobV9hc3NvY2lh
dGVkRE9NV2luZG93KTsKIAogICAgIG1fZnJhbWUgPSBudWxscHRyOwpAQCAtOTMsOCArOTAsNiBA
QCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVk
RnJhbWUoKQogCiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVj
dEluRnJhbWUoKQogewotICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBnZXR0aW5nIHRoaXMgY2Fs
bGJhY2sgaXQgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCB3aXRoIGEgRnJhbWUvRE9NV2luZG93IGFu
ZCBpdCBzaG91bGQgc3RpbGwgaGF2ZSB0aGVtLgotICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBB
U1NFUlQobV9hc3NvY2lhdGVkRE9NV2luZG93KTsKIAogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5
IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28g
aXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3RlcgpAQCAtMTA3LDkgKzEwMiw3IEBAIHZv
aWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5GcmFtZSgpCiAK
IHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUo
KQogewotICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBnZXR0aW5nIHRoaXMgY2FsbGJhY2sgaXQg
bXVzdCBoYXZlIGJlZW4gY3JlYXRlZCB3aXRoIGEgRnJhbWUvRE9NV2luZG93IGFuZCBpdCBzaG91
bGQgc3RpbGwgaGF2ZSB0aGVtLgotICAgIEFTU0VSVChtX2ZyYW1lKTsKLSAgICBBU1NFUlQobV9h
c3NvY2lhdGVkRE9NV2luZG93KTsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCAxOTNlYzc3NWIwZmUzNjZkMDhjMTg2YjUyMzBkMGYwYzgzODJm
MTg2Li5jYmU0NWUzODVjYWU4MjFmMTNiZDY0ZGU5ODFkZWQ5ZDA4M2JkNjBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtODMxLDYgKzgzMSw5IEBAIHZvaWQgRnJhbWU6OmRpc2Nvbm5lY3RPd25l
ckVsZW1lbnQoKQogICAgICAgICAgICAgbV9wYWdlLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7
CiAgICAgfQogICAgIG1fb3duZXJFbGVtZW50ID0gbnVsbHB0cjsKKworICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5kZXRhY2hGcm9t
RnJhbWUoKTsKIH0KIAogU3RyaW5nIEZyYW1lOjpkaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29k
aW5nKGNvbnN0IFN0cmluZyYgc3RyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBkNDcwNmJj
NWZkY2JhNjI0ZDg1NjQyZGI3ZWY2ODg0Y2NkNDVhMDRjLi44ZmU0YzVkZGNiNWMxZmQ1YzYxZTQ3
ZDVkNDFkOGY5MjdlODM3ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtMzc0LDcgKzM3NCw3IEBA
IHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkKICAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIkNhbWVyYTogJXMiLCBj
YW1lcmEpOwogICAgICAgICBzdGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0c0ZvbnRTaXplKTsK
ICAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1ZpZXco
c3RyaW5nKSkpLCBzdGF0c0xvY2F0aW9uKTsKLSAgICB9IGVsc2UgeworICAgIH0gZWxzZSBpZiAo
IW5hbWUoKS5pc051bGwoKSkgewogICAgICAgICBzdGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0
c0ZvbnRTaXplKTsKICAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4g
eyBuYW1lKCkgfSwgc3RhdHNMb2NhdGlvbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA0ZTVkNGMwMzVmYTYx
Y2ZkNjUyYzIyMTJlY2ZmODNlMjBjNzMyZWMuLjllNTIyZTJmOWZhZmEzZDAwMzA0NGY3OTRkNzVi
MWMzZjg1MTg1MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0xMC0wNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hv
dWxkIGxvb3NlIGl0cyBicm93c2luZyBjb250ZXh0IGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyBy
ZW1vdmVkIGZyb20gdGhlIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTAyODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgbGF5b3V0IHRlc3QgdG8gcmVmbGVjdCBi
ZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvQmFySW5mby1hZnRl
ci1mcmFtZS1yZW1vdmVkLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L2RvbS1hY2Nl
c3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy13aXRo
LWdjLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2Rv
bS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWNoaWxk
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL2JlZm9yZS11bmxvYWQtcmV0
dXJuLXN0cmluZy1jb252ZXJzaW9uLWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9wYXJzZXIv
cmVzb3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJj
ZXMvY2hlY2tEaWRTYW1lT3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzOgorICAgICAgICAoY2hlY2tE
aWRMb2FkKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9w
ZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNh
bWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELWNvbnRlbnRXaW5kb3ctZXZhbC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0
eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0
eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sOgorCiAyMDE4LTEwLTAz
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgSDI2
NCBzaW11bGNhc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGQyMWMwNTMyNGVl
NjUyYTViMTU2YzYxMmY1Nzk0YmI5MTY5N2U1YTAuLjhiMGQ3N2QzZWEwMjQ4Mzk4NGY2ZDUxYjgz
YTM5YjhlYzc0M2Q2MTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDE4LTEwLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgQSBEb2N1bWVudCAvIFdpbmRvdyBzaG91bGQgbG9vc2UgaXRzIGJyb3dzaW5nIGNvbnRl
eHQgYXMgc29vbiBhcyBpdHMgaWZyYW1lIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI4MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUg
c2V2ZXJhbCBXUFQgdGVzdHMgdGhhdCBhcmUgbm93IHBhc3NpbmcuIEkgaGF2ZSB2ZXJpZmllZCB0
aGF0IHRob3NlIHRlc3RzIGFyZSBhbHNvIHBhc3NpbmcgaW4KKyAgICAgICAgRmlyZWZveCBhbmQg
Q2hyb21lLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2lu
ZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1udWxsLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lLXN5bmNocm9ub3VzbHktZGlzY2Fy
ZC1leHBlY3RlZC50eHQ6CisKIDIwMTgtMTAtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBpbnB1dC5jaGVja2VkIGlzIGluY29ycmVjdCB3aGlsZSB3ZSdyZSBw
YXJzaW5nIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L0JhckluZm8tYWZ0ZXItZnJhbWUtcmVtb3ZlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUtcmVtb3ZlZC5odG1sCmluZGV4IDRmNjc3M2I0
ZDdjNGZlNjllOThkYjlkMTlhNDZiNmU1NDFmMjM3NmMuLmRjODI5ZmRmZDNhOGZhMzIxOTQ0ZmVk
OTVmOTUyY2Y4YWRmMmZiNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJlbW92ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvQmFySW5mby1hZnRlci1mcmFtZS1yZW1vdmVkLmh0bWwKQEAgLTE1LDcgKzE1
LDkgQEAKICAgICAgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1l
Iik7CiAgICAgICAgIHZhciBjaGlsZFdpbmRvdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3c7CiAgICAg
ICAgIGZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZnJhbWUpOwotICAgICAgICBjaGlsZFdp
bmRvdy50b29sYmFyLnZpc2libGU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjaGlsZFdp
bmRvdy50b29sYmFyLnZpc2libGU7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsgfQogICAgICAgICAK
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5maXJzdENoaWxkLmRh
dGEgPSAiVEVTVCBSQU4iOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1l
eHBlY3RlZC50eHQKaW5kZXggMGYzOGRkNzEwNzY3ODU5ZjZkNDM1YmY5ZTZkOTFmNGZhYjkxOGE3
ZS4uZmY5MjBjNjBjNDI3NTFlNjkzYmE2NmFmMDEwMmQ0MmU3NTNhMjllMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFt
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nl
c3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBkb2N1
bWVudC5VUkw6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vz
cy1mcm9tLWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKIHdpbmRvdy5kb2N1bWVudC5VUkw6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvbm90aWZ5LXBhcmVudC1kb25lLmh0
bWwKLW5hbWU6IGNoaWxkCituYW1lOiAKIHdpbmRvdy5uYW1lOiBjaGlsZAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2lu
ZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGU3MGMwZGIyNzg4NGZkODNl
MzUyN2VjNDkwMDJiZGE5Yzc2MmNkMGUuLjg2MWYyOGYyNDg2OWE2NDJkNDQ4NGY2OThhOTlhMTcy
YjAxZjcwYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNj
ZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sCiB3
aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2Vz
L25vdGlmeS1vcGVuZXItZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZTogCiB3aW5kb3cubmFt
ZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1h
Y2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy13aXRoLWdjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1n
Yy1leHBlY3RlZC50eHQKaW5kZXggZTcwYzBkYjI3ODg0ZmQ4M2UzNTI3ZWM0OTAwMmJkYTljNzYy
Y2QwZS4uODYxZjI4ZjI0ODY5YTY0MmQ0NDg0ZjY5OGE5OWExNzJiMDFmNzBjOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdp
bmRvdy13aXRoLWdjLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
cmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sCiB3aW5k
b3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL25v
dGlmeS1vcGVuZXItZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZTogCiB3aW5kb3cubmFtZTog
Y2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNl
cy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1l
LWNoaWxkLmh0bWwKaW5kZXggNDU1MGQxMmU1Mjg3M2M3NGI2Mzg0YjY2YzY1MTY5M2Q3OTZmNjcw
My4uNmJjYzYwYWJhNTE5MDRhZjFiODRmMzVlNDdjMmVlNjNhMzc3MDIyNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xv
c3VyZS1pZnJhbWUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
cmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCkBAIC0x
LDQgKzEsNiBAQAogPHNjcmlwdD4KKyAgICBwID0gcGFyZW50OyAvLyBTYXZlIHBhcmVudCBhcyB0
aGUgd2luZG93IHdpbGwgYmUgZGV0YWNoZWQgd2hlbiBhY2Nlc3NGcmFtZSgpIGlzIGNhbGxlZC4K
KwogICAgIHBhcmVudC5hY2Nlc3NGcmFtZSA9IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGZ1
bmN0aW9uIG5vcm1hbGl6ZVVSTCh1cmwpCkBAIC03LDEyICs5LDEyIEBACiAgICAgICAgIH0KIAog
ICAgICAgICB0cnkgewotICAgICAgICAgICAgcGFyZW50LmxvZygiZG9jdW1lbnQuVVJMOiAiICsg
bm9ybWFsaXplVVJMKGRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgcGFyZW50LmxvZygid2lu
ZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTCh3aW5kb3cuZG9jdW1lbnQuVVJMKSk7
Ci0gICAgICAgICAgICBwYXJlbnQubG9nKCJuYW1lOiAiICsgbmFtZSk7Ci0gICAgICAgICAgICBw
YXJlbnQubG9nKCJ3aW5kb3cubmFtZTogIiArIHdpbmRvdy5uYW1lKTsKKyAgICAgICAgICAgIHAu
bG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9jdW1lbnQuVVJMKSk7CisgICAg
ICAgICAgICBwLmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTCh3aW5k
b3cuZG9jdW1lbnQuVVJMKSk7CisgICAgICAgICAgICBwLmxvZygibmFtZTogIiArIG5hbWUpOwor
ICAgICAgICAgICAgcC5sb2coIndpbmRvdy5uYW1lOiAiICsgd2luZG93Lm5hbWUpOwogICAgICAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBwYXJlbnQubG9nKCJBbiBleGNlcHRpb24gd2Fz
IHRocm93bjogIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICBwLmxvZygiQW4gZXhjZXB0aW9u
IHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJv
bS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAppbmRl
eCAzNjkxMDk1NDgyNGI3NmM3MTcyYmQzM2U0ZDZjYzdmYTA3N2I3ZWRlLi40MDc5M2FkZWJkNzVl
N2Y1NWVmMTUxM2U1MWUwN2RlNzUwNWRmYTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGls
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFj
Y2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWNoaWxkLmh0bWwKQEAgLTEsNCArMSw2IEBACiA8c2Ny
aXB0PgorICAgIG8gPSBvcGVuZXI7IC8vIFNhdmUgb3BlbmVyIGFzIHRoZSB3aW5kb3cgd2lsbCBi
ZSBkZXRhY2hlZCB3aGVuIGFjY2Vzc0ZyYW1lKCkgaXMgY2FsbGVkLgorCiAgICAgb3BlbmVyLmFj
Y2Vzc0ZyYW1lID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gbm9ybWFsaXpl
VVJMKHVybCkKQEAgLTcsMTIgKzksMTIgQEAKICAgICAgICAgfQogCiAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICBvcGVuZXIubG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9j
dW1lbnQuVVJMKSk7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJ3aW5kb3cuZG9jdW1lbnQuVVJM
OiAiICsgbm9ybWFsaXplVVJMKHdpbmRvdy5kb2N1bWVudC5VUkwpKTsKLSAgICAgICAgICAgIG9w
ZW5lci5sb2coIm5hbWU6ICIgKyBuYW1lKTsKLSAgICAgICAgICAgIG9wZW5lci5sb2coIndpbmRv
dy5uYW1lOiAiICsgd2luZG93Lm5hbWUpOworICAgICAgICAgICAgby5sb2coImRvY3VtZW50LlVS
TDogIiArIG5vcm1hbGl6ZVVSTChkb2N1bWVudC5VUkwpKTsKKyAgICAgICAgICAgIG8ubG9nKCJ3
aW5kb3cuZG9jdW1lbnQuVVJMOiAiICsgbm9ybWFsaXplVVJMKHdpbmRvdy5kb2N1bWVudC5VUkwp
KTsKKyAgICAgICAgICAgIG8ubG9nKCJuYW1lOiAiICsgbmFtZSk7CisgICAgICAgICAgICBvLmxv
Zygid2luZG93Lm5hbWU6ICIgKyB3aW5kb3cubmFtZSk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICAgIG9wZW5lci5sb2coIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5t
ZXNzYWdlKTsKKyAgICAgICAgICAgIG8ubG9nKCJBbiBleGNlcHRpb24gd2FzIHRocm93bjogIiAr
IGUubWVzc2FnZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVy
c2lvbi1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2JlZm9y
ZS11bmxvYWQtcmV0dXJuLXN0cmluZy1jb252ZXJzaW9uLWZyYW1lLmh0bWwKaW5kZXggNzM4N2Zi
ZWMwMGZmMTc1OTEzMDI5YzRhNmQwOTgwYjEwYmEzNTE5Mi4uYmQxNmRlNDIzM2NkMWRmNWEzYjQ0
NjFlMTFiNjM1MmI5M2RmY2Q2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL2JlZm9yZS11bmxvYWQtcmV0dXJuLXN0cmluZy1jb252ZXJzaW9uLWZyYW1lLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL2JlZm9yZS11bmxvYWQt
cmV0dXJuLXN0cmluZy1jb252ZXJzaW9uLWZyYW1lLmh0bWwKQEAgLTE0LDkgKzE0LDcgQEAgd2lu
ZG93LnJ1blRlc3QgPSBmdW5jdGlvbigpIHsKICAgICAgICAgcGFyZW50LnNob3VsZEJlVHJ1ZSgi
ZXZlbnQuZGVmYXVsdFByZXZlbnRlZCIpOwogICAgICAgICBwYXJlbnQuc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJldmVudC5yZXR1cm5WYWx1ZSIsICJQQVNTIik7CiAgICAgICAgIHBhcmVudC5zaG91
bGRCZVRydWUoInRvU3RyaW5nQ2FsbGVkIik7Ci0gICAgICAgIHBhcmVudC5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgcGFyZW50LmZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9
LCAwKTsKKyAgICAgICAgcGFyZW50LmZpbmlzaEpTVGVzdCgpOwogICAgIH0KIAogICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCBsaXN0ZW5lcik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvc2V0LXBhcmVudC10by1qYXZhc2Ny
aXB0LXVybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3NldC1wYXJl
bnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbAppbmRleCBhNjRiOWEwMzM1YjAyMjBhM2ZjZWM4Njk3
YjU3N2RmNmIxYjQxOTQ2Li43NmY3NzJiZmQwYTMxYjM1MGU1ODdkOTViODU1NDg5NjRmNjdkMTU0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvc2V0LXBhcmVu
dC10by1qYXZhc2NyaXB0LXVybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jl
c291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWwKQEAgLTEsNiArMSw3IEBA
CiA8c2NyaXB0PgorcCA9IHBhcmVudDsKIGFsZXJ0KDEpOwotcGFyZW50LmRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXS5zcmMgPSAiamF2YXNjcmlwdDphbGVydCgyKSwn
UEFTUzxzY3JpcHQ+YWxlcnQoMyk8XC9zY3JpcHQ+JyI7CitwLmRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdpZnJhbWUnKVswXS5zcmMgPSAiamF2YXNjcmlwdDphbGVydCgyKSwnUEFTUzxz
Y3JpcHQ+YWxlcnQoMyk8XC9zY3JpcHQ+JyI7CiBhbGVydCg0KTsKLXBhcmVudC5zZXRUaW1lb3V0
KCJkb25lKCkiLCAwKTsKK3Auc2V0VGltZW91dCgiZG9uZSgpIiwgMCk7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nv
bm5lY3RlZC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKaW5kZXggMGY5NzJjOTdiNzI0YTg1YjM4OTQ1
YWM0MjQxMjhhMTdkMzc5MmZhMi4uNmRiNGI0ZTlkMDU0MzdkYTUzZjM0MTZlNjcwMjUzZmMyMGZk
MWQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKQEAgLTEyLDI3ICsxMiwy
OSBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOwogCiBmdW5jdGlvbiBvbklmcmFtZUxvYWRlZCgpIHsKLSAgICBpZnJh
bWVOYXZpZ2F0b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1l
TWVkaWFEZXZpY2VzID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLm1lZGlhRGV2aWNl
czsKICAgICBpZnJhbWUucmVtb3ZlKCk7CiAgICAgb25JZnJhbWVVbmxvYWRlZCgpOwogfQogCiBm
dW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgeworICAgIGhhbmRsZSA9IHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1RpbWVvdXQ6IHByb21pc2UgcmVzb2x2ZSBh
bmQgcmVqZWN0IGZ1bmN0aW9ucyBub3QgY2FsbGVkLicpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9LCAxMDApOworCiAgICAgdmFyIG9wdGlvbnMgPSB7YXVkaW86IHRydWUsIHZpZGVv
OiB0cnVlfTsKLSAgICBpZnJhbWVOYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShv
cHRpb25zKQorICAgIGlmcmFtZU1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKICAg
ICAgICAgLnRoZW4oc3RyZWFtID0+IHsKICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1Byb21pc2Ug
cmVzb2x2ZWQgdW5leHBlY3RlZGx5LicpOworICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGhhbmRs
ZSk7CiAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfSkKICAgICAgICAgLmNh
dGNoKGVyciA9PiB7CiAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdQcm9taXNlIHJlamVjdGVkIGFz
IGV4cGVjdGVkLicpOworICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7CiAgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfSk7Ci0KLSAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewotICAgICAgICB0ZXN0RmFpbGVkKCdUaW1lb3V0OiBwcm9taXNlIHJlc29sdmUgYW5k
IHJlamVjdCBmdW5jdGlvbnMgbm90IGNhbGxlZC4nKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7
Ci0gICAgfSwgMTAwKTsKIH0KIAogdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lmcmFtZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2lu
ZG93TG9hZC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9jaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMK
aW5kZXggOTE4NjBiMjg3MTJjN2YwYzZhNWVmNzg3ZDU1MDYwMjZlYjQ4NGY3OS4uMjY0MDI3YmJi
YWZlZTI5ZDJiMjljMTI5YjQzZDgyZTJkN2E1ZjY5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2NoZWNr
RGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvY2hlY2tEaWRTYW1l
T3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCkBAIC05LDcgKzksNyBAQCBmdW5jdGlvbiBjaGVja0Rp
ZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWRBbmROb3RpZnlEb25lKGNoaWxkV2luZG93KQogZnVu
Y3Rpb24gY2hlY2tEaWRTYW1lT3JpZ2luQ2hpbGRXaW5kb3dMb2FkKGNoaWxkV2luZG93LCBjYWxs
YmFjaykKIHsKICAgICBmdW5jdGlvbiBjaGVja0RpZExvYWQoKSB7Ci0gICAgICAgIGlmIChjaGls
ZFdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IGRvY3VtZW50LmxvY2F0aW9uLm9y
aWdpbikKKyAgICAgICAgaWYgKGNoaWxkV2luZG93LmRvY3VtZW50LmxvY2F0aW9uID09PSAiYWJv
dXQ6YmxhbmsiKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBDaGlsZCB3aW5kb3cg
ZGlkIGxvYWQKICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJRCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9w
ZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20t
c2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDA3MThhZDVk
MTlmODFmMWMwNWNjNGJmODJiZjU5NjAwODgzYjExZWMuLmFiMjBiOTc0M2Y1MzM4YWZlNWNiMjNh
MDE3MDkzNGQwYzA2M2M1MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IExvb2t1cCBuYW1lZCBlbGVtZW50IHdob3NlIG5hbWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVu
dCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKIFBBU1MgZnJhbWUuY29udGVu
dERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJykgaXMgbm90IGVsZW1lbnRBSW5JbmFjdGl2ZURv
Y3VtZW50Ci1QQVNTIGVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkgaXMgZnJhbWUu
Y29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJykKK1BBU1MgZWxlbWVudEFJbkRldGFj
aGVkV2luZG93RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IEEuCiAKIExvb2t1cCBuYW1lZCBlbGVtZW50IHdob3NlIG5hbWUgZG9l
cyBub3QgY29ycmVzcG9uZCB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5r
IGRvY3VtZW50OgotUEFTUyBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIGlzIGZy
YW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQicpCitQQVNTIGVsZW1lbnRCSW5E
ZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBCLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3Vt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1w
cm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKaW5kZXggZTdl
NGI2MTc1ZTM0MGYyNzA4M2NmOGVmMTRiOGJlMmZhYjEyZTVhZS4uZTM2NmY2ZGU0YWQ3YTBlM2Rl
MTk1MmE0NDhhYjM5ODIxZGZhNWIyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2
ZS1kb2N1bWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFt
ZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRt
bApAQCAtMTcsMTcgKzE3LDE3IEBAIHZhciBlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudCA9IGZy
YW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBlbGVtZW50QUluSW5hY3RpdmVEb2N1
bWVudC5pZCA9ICJBIjsKIGZyYW1lRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50QUlu
SW5hY3RpdmVEb2N1bWVudCk7CiAKLXZhciBlbGVtZW50QUluQWN0aXZlRG9jdW1lbnRGdW5jdGlv
biA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBBOyIpOwotdmFyIGVsZW1l
bnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlv
bigicmV0dXJuIEI7Iik7Cit2YXIgZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBm
cmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQTsiKTsKK3ZhciBlbGVtZW50Qklu
RGV0YWNoZWRXaW5kb3dGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJl
dHVybiBCOyIpOwogCiBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKQogewogICAgIGRlYnVnKCJM
b29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGNvcnJlc3BvbmRzIHRvIGFuIGVsZW1lbnQg
aW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Iik7CiAgICAgc2hvdWxkTm90QmUo
ImZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQScpIiwgImVsZW1lbnRBSW5J
bmFjdGl2ZURvY3VtZW50Iik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnRBSW5BY3RpdmVEb2N1bWVu
dEZ1bmN0aW9uKCkiLCAiZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJyki
KTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVu
Y3Rpb24oKSIsICJSZWZlcmVuY2VFcnJvciIpOwogCiAgICAgZGVidWcoIjxicj5Mb29rdXAgbmFt
ZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxlbWVudCBp
biB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoiKTsKLSAgICBzaG91bGRCZSgiZWxl
bWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSIsICJmcmFtZS5jb250ZW50RG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ0InKSIpOworICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50
QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIiwgIlJlZmVyZW5jZUVycm9yIik7CiAKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNvbnRlbnRXaW5kb3ctZXZhbC1l
eHBlY3RlZC50eHQKaW5kZXggZjBlZThkMmE4MzYwOTBmZmYzOTdhODMxMjkxNTZlM2E3YzYyMmY4
MS4uN2ZmYTA0ZDY3ZTQ1OGZhOWI5MTgxOTRiMzRlZGNjNWE3ZDg4ODhmOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNvbnRlbnRXaW5kb3ct
ZXZhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELWNvbnRlbnRXaW5kb3ctZXZhbC1leHBlY3RlZC50eHQKQEAgLTEsMiArMSBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogVGhpcyB0ZXN0
IHBhc3NlcyBpZiBhbGVydCgpIGlzIG5vdCBjYWxsZWQuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1m
cm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5
LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAppbmRleCA4
OTVmOWJmMDMwY2ZmYmEyNDg3NGYzOTQyYThmZmQ0ZDVmMzc2YmYwLi5lNGZhOTRkMTIyNWNmMTAz
M2RiYTMxN2RmMjc4MzU0ZDM1MjA1NDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mt
b3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20t
Y3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtNCwxMCArNCwx
MCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIExvb2t1cCBuYW1lZCBlbGVtZW50IHdo
b3NlIG5hbWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpi
bGFuayBkb2N1bWVudDoKLVBBU1MgZWxlbWVudEFJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSB0
aHJldyBleGNlcHRpb24gU2VjdXJpdHlFcnJvcjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2lu
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgY3Jvc3Mtb3JpZ2luIGZy
YW1lLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLi4KK1BBU1MgZWxl
bWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEEuCiAKIExvb2t1cCBuYW1lZCBlbGVtZW50IHdo
b3NlIG5hbWUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFs
IGFib3V0OmJsYW5rIGRvY3VtZW50OgotUEFTUyBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5j
dGlvbigpIHRocmV3IGV4Y2VwdGlvbiBTZWN1cml0eUVycm9yOiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBjcm9zcy1v
cmlnaW4gZnJhbWUuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guLgor
UEFTUyBlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRocmV3IGV4Y2VwdGlvbiBS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9t
LWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3Nz
LW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCmluZGV4IDM1ZTQ1NDRhMTA3YTIwNzFiZWUy
ZDk3MDZhYzRjMGM2YzgyMzYxYTkuLjg5M2FjYTczNGYzMmVjYThhZGQ2ZDBhNTE4YzRlNjFlMWMy
ODYzNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3Vt
ZW50Lmh0bWwKQEAgLTE3LDE2ICsxNywxNiBAQCB2YXIgZWxlbWVudEFJbkluYWN0aXZlRG9jdW1l
bnQgPSBmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogZWxlbWVudEFJbkluYWN0
aXZlRG9jdW1lbnQuaWQgPSAiQSI7CiBmcmFtZURvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudEFJbkluYWN0aXZlRG9jdW1lbnQpOwogCi12YXIgZWxlbWVudEFJbkFjdGl2ZURvY3VtZW50
RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQTsiKTsKLXZh
ciBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cu
RnVuY3Rpb24oInJldHVybiBCOyIpOwordmFyIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0
aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0dXJuIEE7Iik7Cit2YXIgZWxl
bWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0
aW9uKCJyZXR1cm4gQjsiKTsKIAogZnJhbWUub25sb2FkID0gZnVuY3Rpb24gKCkKIHsKICAgICBk
ZWJ1ZygiTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBjb3JyZXNwb25kcyB0byBhbiBl
bGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3VtZW50OiIpCi0gICAgc2hvdWxk
VGhyb3dFcnJvck5hbWUoImVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkiLCAnU2Vj
dXJpdHlFcnJvcicpOworICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QUluRGV0YWNo
ZWRXaW5kb3dGdW5jdGlvbigpIiwgJ1JlZmVyZW5jZUVycm9yJyk7CiAKICAgICBkZWJ1ZygiPGJy
Pkxvb2t1cCBuYW1lZCBlbGVtZW50IHdob3NlIG5hbWUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBh
biBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3VtZW50OiIpOwotICAgIHNo
b3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwg
J1NlY3VyaXR5RXJyb3InKTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkRl
dGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICdSZWZlcmVuY2VFcnJvcicpOwogCiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4
dHMvd2luZG93LXBhcmVudC1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93
c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0ZWQudHh0CmluZGV4IDE1ZTk1
NTE2YzkzNDJlYmNiMWI1NGY5ZDRmYjI0N2U5NDEzY2ZjZWIuLjNmN2E4ZmFjMDUyMjQ3ODNmNWRj
NjE5ZDA0NTQwODFiZjQ1N2I2YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2lu
Zy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dz
L25lc3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIGB3aW5kb3cucGFyZW50YCBpcyBudWxsIHdoZW4gYnJv
d3NpbmcgY29udGV4dCBjb250YWluZXIgZWxlbWVudCByZW1vdmVkIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgV2luZG93XSIKLUZBSUwgYHdpbmRv
dy5wYXJlbnRgIG51bGwgd2hlbiBwYXJlbnQgYnJvd3NpbmcgY29udGV4dCBjb250YWluZXIgcmVt
b3ZlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0
IFdpbmRvd10iCi0KK1BBU1MgYHdpbmRvdy5wYXJlbnRgIGlzIG51bGwgd2hlbiBicm93c2luZyBj
b250ZXh0IGNvbnRhaW5lciBlbGVtZW50IHJlbW92ZWQgCitQQVNTIGB3aW5kb3cucGFyZW50YCBu
dWxsIHdoZW4gcGFyZW50IGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyIHJlbW92ZWQgCisgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZS1z
eW5jaHJvbm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3Ro
ZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVjdGVkLnR4
dAppbmRleCA0MzZhMzFjNzAyNzM5OGM4NDkyNTQ4MWM5OGVhNGM1MjI3Y2YyZDI4Li5mMDQzZDU1
MzM1YTQ4ODBhYjg0YzQzOWVmYTE4NzY2MGU5ZDFjN2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQv
aWZyYW1lLXN5bmNocm9ub3VzbHktZGlzY2FyZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBA
CiAKLUZBSUwgSUZyYW1lIGRpc2NhcmRzIGFyZSBwcm9jZXNzZWQgc3luY2hyb25vdXNseSBhc3Nl
cnRfZXF1YWxzOiBjaGlsZCB3aW5kb3cgc2hvdWxkIGJlIGRpc2NhcmRlZCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFdpbmRvd10iCitQQVNTIElGcmFtZSBkaXNjYXJkcyBh
cmUgcHJvY2Vzc2VkIHN5bmNocm9ub3VzbHkgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351615</attachid>
            <date>2018-10-04 12:28:21 -0700</date>
            <delta_ts>2018-10-04 13:28:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190282-20181004122820.patch</filename>
            <type>text/plain</type>
            <size>33172</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY5ZTE1YmJkMDAzZDA5
ZWQ2NDkyN2UzY2ViMTIyODQ4NDhkYzI4Yi4uNTg2NWEwM2MwMDRiYjE1MmY1ZTkzYTNkZDgxYTNh
ODZlODkyN2RjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQSBEb2N1bWVudCAvIFdpbmRv
dyBzaG91bGQgbG9vc2UgaXRzIGJyb3dzaW5nIGNvbnRleHQgYXMgc29vbiBhcyBpdHMgaWZyYW1l
IGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxkIGxvb3NlIGl0
cyBicm93c2luZyBjb250ZXh0IChha2EgRnJhbWUpIGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyBy
ZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIGRvY3VtZW50LiBJbiBXZWJLaXQsIGEgRG9jdW1lbnQg
LyBXaW5kb3cncyBGcmFtZSB3YXMgb25seSBnZXR0aW5nIG51bGxlZCBvdXQgd2hlbiB0aGUgZnJh
bWUgZ2V0cworICAgICAgICBkZXN0cm95ZWQsIHdoaWNoIGhhcHBlbnMgbGF0ZXIgdXN1YWxseSBh
ZnRlciBhIEdDIGhhcHBlbnMuCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN0aGUtaWZyYW1lLWVsZW1lbnQKKyAgICAgICAg
IiIiCisgICAgICAgIFdoZW4gYW4gaWZyYW1lIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9j
dW1lbnQsIHRoZSB1c2VyIGFnZW50IG11c3QgZGlzY2FyZCB0aGUgZWxlbWVudCdzIG5lc3RlZCBi
cm93c2luZworICAgICAgICBjb250ZXh0LCBpZiBpdCBpcyBub3QgbnVsbCwgYW5kIHRoZW4gc2V0
IHRoZSBlbGVtZW50J3MgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgdG8gbnVsbC4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgVGhpcyB3YXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGUgc3BlY2lmaWNh
dGlvbiBvciBvdGhlciBicm93c2VycyAodGVzdGVkIENocm9tZSBhbmQgRmlyZWZveCkgc28gdGhp
cworICAgICAgICBwYXRjaCBpcyBhbGlnbmluZyBvdXIgYmVoYXZpb3IuCisKKyAgICAgICAgSW4g
YSBmb2xsb3ctdXAsIEkgYW0gcGxhbm5pbmcgdG8gbG9vayBpbnRvIG1ha2luZyB0aGUgV2luZG93
IG5vdCBiZSBhIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciwgYW5kIGluc3RlYWQKKyAgICAgICAg
Z2V0IGl0cyBmcmFtZSBmcm9tIHRoZSBEb2N1bWVudC4gVGhpcyBzaG91bGQgbWFrZSB0aGUgY29k
ZSBzaW1wbGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgVXBk
YXRlIGdldFVzZXJNZWRpYSgpIHRvIHJlamVjdCBhIHRoZSBQcm9taXNlIHdpdGggYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiBjYWxsaW5nIGFmdGVyIHRoZQorICAgICAgICBkb2N1bWVudCBoYXMg
YmVlbiBkZXRhY2hlZCwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBJbnZhbGlkU3RhdGVFcnJvci4g
VGhpcyBiZWhhdmlvciBpcyBhcyBwZXIKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAg
LSBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmlj
ZXMtZ2V0dXNlcm1lZGlhIChTdGVwIDQpCisgICAgICAgIEkgbmVlZGVkIHRvIG1ha2UgdGhpcyBj
aGFuZ2UgdG8ga2VlcCBvbmUgb2Ygb3VyIGxheW91dCB0ZXN0cyBwYXNzaW5nLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphdHRhY2hU
b0NhY2hlZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXRhY2hGcm9tRnJh
bWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRv
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaERvY3VtZW50RnJvbUZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV0YWNoRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0RnJhbWVGb3JEb2N1bWVudFN1c3BlbnNpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFs
T2JqZWN0SW5DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KToK
KworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KToKKyAg
ICAgICAgQ2FsbGluZyBkcmF3VGV4dCgpIHdpdGggYSBudWxsIFN0cmluZyBoaXRzIGFuIGFzc2Vy
dGlvbiBpbiBkZWJ1Zy4gVGhpcyB3YXMgdHJpZ2dlcmVkIGJ5IG9uZSBvZgorICAgICAgICBvdXIg
bGF5b3V0IHRlc3RzIHNvIEkgbWFkZSBzdXJlIHdlIG9ubHkgY2FsbCBkcmF3VGV4dCB3aGVuIHRo
ZSBTdHJpbmcgaXMgbm90IG51bGwuCisKIDIwMTgtMTAtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBpbnB1dC5jaGVja2VkIGlzIGluY29ycmVjdCB3aGlsZSB3
ZSdyZSBwYXJzaW5nIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDY5MGZmMzY2ZThmMGUxZjYyYmFk
MDBhNDRjMjYxMGZlMTAxNWNmMTUuLjkxYzUxYWQyNDUyMDVhMGU0NTc0NmQ2YTUxMTc1MWFiMmVh
ZGJiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKQEAgLTk2LDExICs5NiwxMyBAQCBzdGF0aWMgTWVkaWFDb25zdHJhaW50
cyBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0Nv
bgogICAgICk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1l
ZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21p
c2UpIGNvbnN0Cit2b2lkIE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIGF1ZGlvQ29u
c3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKICAg
ICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzLnZpZGVvKTsKQEAgLTExMSw3ICsxMTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURl
dmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludAog
ICAgIGlmIChyZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LT5zdGFydCgpOwogCi0gICAgcmV0dXJu
IHsgfTsKKyAgICByZXR1cm47CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6
Z2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJv
bWlzZSYmIHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCA3YjJjN2NhOTcxZDYyOTU1N2IxMWFkODM1MGY3
NDcwNjA5ZWY5MTYwLi43Y2RhMWViOTVmMjkyMjFkNzQzNGQ3YjQwYTNlNjA3MDkxMmIyNWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlh
VHJhY2tDb25zdHJhaW50cz4gdmlkZW87CiAgICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzPiBhdWRpbzsKICAgICB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVz
ZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CisgICAg
dm9pZCBnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNv
bnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1D
b25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpIGNvbnN0OwogICAgIE1lZGlhVHJhY2tTdXBwb3J0
ZWRDb25zdHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjU4ZWIyZTU5Y2IwZDhiMTFjYjVhNTY0MmMwMWU0MWZiYmVjOGRlZi4uZDYw
OWY4YzVjMjhmZjRlNTA5NTNlNGQ4YmZlZjkzN2ViOTNmMDhjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yMzM5LDYgKzIzMzksOCBAQCB2b2lkIERvY3VtZW50OjphdHRhY2hUb0NhY2hl
ZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAgQVNTRVJUKGNhY2hlZEZy
YW1lLnZpZXcoKSk7CiAgICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgPT0gRG9jdW1lbnQ6Oklu
UGFnZUNhY2hlKTsKICAgICBvYnNlcnZlRnJhbWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUo
KSk7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ct
PmF0dGFjaFRvRnJhbWUoY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgpKTsKIH0KIAogdm9pZCBE
b2N1bWVudDo6ZGV0YWNoRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJh
bWUpCkBAIC04MjUwLDQgKzgyNTIsMTIgQEAgYm9vbCBEb2N1bWVudDo6cmVnaXN0ZXJDU1NQcm9w
ZXJ0eShDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkmJiBwcm9wKQogICAgIHJldHVybiBtX0NT
U1JlZ2lzdGVyZWRQcm9wZXJ0eVNldC5hZGQocHJvcC5uYW1lLCBzdGQ6Om1ha2VfdW5pcXVlPENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eT4oV1RGTW92ZShwcm9wKSkpLmlzTmV3RW50cnk7CiB9
CiAKK3ZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgaWYgKGF1dG8qIHdp
bmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPndpbGxEZXRhY2hEb2N1bWVudEZy
b21GcmFtZSgpOworCisgICAgb2JzZXJ2ZUZyYW1lKG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGE3OTZiNDkwN2MxMjE1OGMwNmJm
YTYyNTMxZDhmMTdlY2UwYWFjNDIuLmFlMTZkNDg4ZmJjYjhmOTY4YTA3YTdlNDhhZjExMWFlOGQ4
ZWU5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTAxLDYgKzE1MDEsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRBc1J1bm5pbmdVc2VyU2NyaXB0cygpIHsgbV9pc1J1bm5pbmdVc2VyU2Ny
aXB0cyA9IHRydWU7IH0KICAgICBib29sIGlzUnVubmluZ1VzZXJTY3JpcHRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1J1bm5pbmdVc2VyU2NyaXB0czsgfQogCisgICAgdm9pZCBkZXRhY2hGcm9tRnJh
bWUoKTsKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVz
aXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVu
c2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CkBAIC0xNTE4LDggKzE1MjAsNiBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBzaG91bGRJbmhlcml0Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbU93
bmVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRldGFjaEZyb21GcmFtZSgpIHsgb2JzZXJ2ZUZyYW1l
KG51bGxwdHIpOyB9Ci0KICAgICB2b2lkIHVwZGF0ZVRpdGxlRWxlbWVudChFbGVtZW50JiBjaGFu
Z2luZ1RpdGxlRWxlbWVudCk7CiAgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggN2JkZTFjYmI4YjYzNzFlN2E3YTA4YmE1NTFl
ODU2YjgxOTJmNjBmYy4uZjZhYTIzYzk4YWY4ZWQ1MzE2MGYzOWI5YWZlNDVkMzMxM2Q4ZTMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNDE0LDYgKzQxNCw3IEBAIERPTVdpbmRv
dzo6RE9NV2luZG93KERvY3VtZW50JiBkb2N1bWVudCkKIHZvaWQgRE9NV2luZG93OjpkaWRTZWN1
cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIG9ic2VydmVDb250ZXh0
KCZkb2N1bWVudCk7CisgICAgb2JzZXJ2ZUZyYW1lKGRvY3VtZW50LmZyYW1lKCkpOwogfQogCiBE
T01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTExLDYgKzUxMiw4IEBAIHZvaWQgRE9NV2luZG93
Ojp3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKQogCiAgICAgaWYgKG1fcGVyZm9ybWFuY2Up
CiAgICAgICAgIG1fcGVyZm9ybWFuY2UtPmNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7CisKKyAgICBk
ZXRhY2hGcm9tRnJhbWUoKTsKIH0KIAogI2lmIEVOQUJMRShHQU1FUEFEKQpAQCAtMTQwMiw3ICsx
NDA1LDE3IEBAIHZvaWQgRE9NV2luZG93OjpzZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91
bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCiAg
ICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwot
fSAKK30KKwordm9pZCBET01XaW5kb3c6OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgb2JzZXJ2
ZUZyYW1lKG51bGxwdHIpOworfQorCit2b2lkIERPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZShGcmFt
ZSYgZnJhbWUpCit7CisgICAgb2JzZXJ2ZUZyYW1lKCZmcmFtZSk7Cit9CiAgICAgCiB2b2lkIERP
TVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAppbmRleCBlMmY0OWQxOTAzZjRhYzQ5YmQ2ODgxODQ0Y2Y4NzQ0NzI0
Y2FhZGVjLi4zZWQ0NzAzN2Y4MWMyNTExZWExNDE4NDIwZThhOTJhYWIyMDI5MjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKQEAgLTMzMyw2ICszMzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3
aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKTsKICAgICB2b2lkIHdpbGxEZXN0cm95Q2FjaGVk
RnJhbWUoKTsKIAorICAgIHZvaWQgYXR0YWNoVG9GcmFtZShGcmFtZSYpOworICAgIHZvaWQgZGV0
YWNoRnJvbUZyYW1lKCk7CisKICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAg
ICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvd1Byb3BlcnR5LmNwcAppbmRleCA1NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlhN2U1
YzYwOWVkNTBmODU3Li4yYzIxOGVkYmEzMzQ3YzQ5MzM4NWQxMjcyZTM0MWE4YTQxNjEzMWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNTcsOSArNTcs
NiBAQCBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1Byb3BlcnR5KCkKIAogdm9pZCBET01X
aW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVjdEZyYW1lRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKIHsK
LSAgICAvLyBJZiB0aGlzIHByb3BlcnR5IGlzIGJlaW5nIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBG
cmFtZSB0byBlbnRlciB0aGUgUGFnZUNhY2hlLCBpdCBtdXN0IGhhdmUKLSAgICAvLyBiZWVuIGNy
ZWF0ZWQgd2l0aCBhIEZyYW1lIGluIHRoZSBmaXJzdCBwbGFjZS4KLSAgICBBU1NFUlQobV9mcmFt
ZSk7CiAgICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAKICAgICBtX2ZyYW1lID0g
bnVsbHB0cjsKQEAgLTkzLDggKzkwLDYgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERl
c3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkKIAogdm9pZCBET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJv
cGVydHkgaXMgZ2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQg
d2l0aCBhIEZyYW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAg
ICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAK
ICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBpc24ndCB0aWVkIGRpcmVjdGx5IHRv
IHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IHVucmVnaXN0
ZXIKQEAgLTEwNyw5ICsxMDIsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJv
eUdsb2JhbE9iamVjdEluRnJhbWUoKQogCiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGV0
YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMg
Z2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgd2l0aCBhIEZy
YW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAgICBBU1NFUlQo
bV9mcmFtZSk7Ci0gICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CisgICAgbV9mcmFt
ZSA9IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggMTkzZWM3NzViMGZl
MzY2ZDA4YzE4NmI1MjMwZDBmMGM4MzgyZjE4Ni4uY2JlNDVlMzg1Y2FlODIxZjEzYmQ2NGRlOTgx
ZGVkOWQwODNiZDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTgzMSw2ICs4MzEsOSBAQCB2
b2lkIEZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KCkKICAgICAgICAgICAgIG1fcGFnZS0+
ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwogICAgIH0KICAgICBtX293bmVyRWxlbWVudCA9IG51
bGxwdHI7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+ZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKIFN0cmluZyBGcmFtZTo6ZGlz
cGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhjb25zdCBTdHJpbmcmIHN0cikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKaW5kZXggZDQ3MDZiYzVmZGNiYTYyNGQ4NTY0MmRiN2VmNjg4NGNjZDQ1YTA0
Yy4uOGZlNGM1ZGRjYjVjMWZkNWM2MWU0N2Q1ZDQxZDhmOTI3ZTgzNzgzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpk
cmF3VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIHN0cmluZyA9IFN0cmlu
Zzo6Zm9ybWF0KCJDYW1lcmE6ICVzIiwgY2FtZXJhKTsKICAgICAgICAgc3RhdHNMb2NhdGlvbi5t
b3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNG
b250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7Ci0gICAg
fSBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKCFuYW1lKCkuaXNOdWxsKCkpIHsKICAgICAgICAgc3Rh
dHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJh
d1RleHQoc3RhdHNGb250LCBUZXh0UnVuIHsgbmFtZSgpIH0sIHN0YXRzTG9jYXRpb24pOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAwNGU1ZDRjMDM1ZmE2MWNmZDY1MmMyMjEyZWNmZjgzZTIwYzczMmVjLi45ZTUy
MmUyZjlmYWZhM2QwMDMwNDRmNzk0ZDc1YjFjM2Y4NTE4NTAwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTgtMTAtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBIERvY3VtZW50IC8gV2luZG93IHNob3VsZCBsb29zZSBpdHMgYnJvd3NpbmcgY29udGV4dCBh
cyBzb29uIGFzIGl0cyBpZnJhbWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5n
IGxheW91dCB0ZXN0IHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZmFz
dC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUtcmVtb3ZlZC5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13
aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtY2hp
bGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3Mt
ZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jl
c291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1s
OgorICAgICAgICAqIGZhc3QvcGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3Jp
cHQtdXJsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93
TG9hZC5qczoKKyAgICAgICAgKGNoZWNrRGlkTG9hZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1k
b2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1l
ZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93
LWV2YWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQuaHRtbDoKKwogMjAxOC0xMC0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgRW5hYmxlIEgyNjQgc2ltdWxjYXN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBkMjFjMDUzMjRlZTY1MmE1YjE1NmM2MTJmNTc5NGJiOTE2OTdlNWEwLi44
YjBkNzdkM2VhMDI0ODM5ODRmNmQ1MWI4M2EzOWI4ZWM3NDNkNjE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMC0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxk
IGxvb3NlIGl0cyBicm93c2luZyBjb250ZXh0IGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyByZW1v
dmVkIGZyb20gdGhlIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAyODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWJhc2VsaW5lIHNldmVyYWwgV1BUIHRlc3RzIHRoYXQgYXJlIG5vdyBw
YXNzaW5nLiBJIGhhdmUgdmVyaWZpZWQgdGhhdCB0aG9zZSB0ZXN0cyBhcmUgYWxzbyBwYXNzaW5n
IGluCisgICAgICAgIEZpcmVmb3ggYW5kIENocm9tZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dp
bmRvdy1wYXJlbnQtbnVsbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lm
cmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0OgorCiAyMDE4LTEwLTAzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaW5wdXQuY2hlY2tlZCBp
cyBpbmNvcnJlY3Qgd2hpbGUgd2UncmUgcGFyc2luZyBpdHMgY2hpbGRyZW4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJlbW92ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJl
bW92ZWQuaHRtbAppbmRleCA0ZjY3NzNiNGQ3YzRmZTY5ZTk4ZGI5ZDE5YTQ2YjZlNTQxZjIzNzZj
Li5kYzgyOWZkZmQzYThmYTMyMTk0NGZlZDk1Zjk1MmNmOGFkZjJmYjc4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvQmFySW5mby1hZnRlci1mcmFtZS1yZW1vdmVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUt
cmVtb3ZlZC5odG1sCkBAIC0xNSw3ICsxNSw5IEBACiAgICAgICAgIHZhciBmcmFtZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZSIpOwogICAgICAgICB2YXIgY2hpbGRXaW5kb3cgPSBm
cmFtZS5jb250ZW50V2luZG93OwogICAgICAgICBmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGZyYW1lKTsKLSAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAgICB9
IGNhdGNoIChlKSB7IH0KICAgICAgICAgCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuZmlyc3RDaGlsZC5kYXRhID0gIlRFU1QgUkFOIjsKICAgICB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUt
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNj
ZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDBmMzhkZDcxMDc2Nzg1
OWY2ZDQzNWJmOWU2ZDkxZjRmYWI5MThhN2UuLmZmOTIwYzYwYzQyNzUxZTY5M2JhNjZhZjAxMDJk
NDJlNzUzYTI5ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1s
CiB3aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3Vy
Y2VzL25vdGlmeS1wYXJlbnQtZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZTogCiB3aW5kb3cu
bmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Rv
bS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBlNzBjMGRiMjc4ODRmZDgzZTM1MjdlYzQ5MDAyYmRhOWM3NjJjZDBlLi44NjFmMjhm
MjQ4NjlhNjQyZDQ0ODRmNjk4YTk5YTE3MmIwMWY3MGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNs
b3N1cmUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xv
c3VyZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTog
Y2hpbGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1n
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1m
cm9tLWNsb3N1cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CmluZGV4IGU3MGMwZGIyNzg4
NGZkODNlMzUyN2VjNDkwMDJiZGE5Yzc2MmNkMGUuLjg2MWYyOGYyNDg2OWE2NDJkNDQ4NGY2OThh
OTlhMTcyYjAxZjcwYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9k
b20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRv
dy13aXRoLWdjLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTogY2hp
bGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1l
LWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1h
Y2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCmluZGV4IDQ1NTBkMTJlNTI4NzNj
NzRiNjM4NGI2NmM2NTE2OTNkNzk2ZjY3MDMuLjZiY2M2MGFiYTUxOTA0YWYxYjg0ZjM1ZTQ3YzJl
ZTYzYTM3NzAyMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS1pZnJhbWUtY2hpbGQuaHRtbApAQCAtMSw0ICsxLDYgQEAKIDxzY3JpcHQ+CisgICAgcCA9IHBh
cmVudDsgLy8gU2F2ZSBwYXJlbnQgYXMgdGhlIHdpbmRvdyB3aWxsIGJlIGRldGFjaGVkIHdoZW4g
YWNjZXNzRnJhbWUoKSBpcyBjYWxsZWQuCisKICAgICBwYXJlbnQuYWNjZXNzRnJhbWUgPSBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBub3JtYWxpemVVUkwodXJsKQpAQCAtNywx
MiArOSwxMiBAQAogICAgICAgICB9CiAKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHBhcmVu
dC5sb2coImRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTChkb2N1bWVudC5VUkwpKTsKLSAg
ICAgICAgICAgIHBhcmVudC5sb2coIndpbmRvdy5kb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVV
Ukwod2luZG93LmRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgcGFyZW50LmxvZygibmFtZTog
IiArIG5hbWUpOwotICAgICAgICAgICAgcGFyZW50LmxvZygid2luZG93Lm5hbWU6ICIgKyB3aW5k
b3cubmFtZSk7CisgICAgICAgICAgICBwLmxvZygiZG9jdW1lbnQuVVJMOiAiICsgbm9ybWFsaXpl
VVJMKGRvY3VtZW50LlVSTCkpOworICAgICAgICAgICAgcC5sb2coIndpbmRvdy5kb2N1bWVudC5V
Ukw6ICIgKyBub3JtYWxpemVVUkwod2luZG93LmRvY3VtZW50LlVSTCkpOworICAgICAgICAgICAg
cC5sb2coIm5hbWU6ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIHAubG9nKCJ3aW5kb3cubmFtZTog
IiArIHdpbmRvdy5uYW1lKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcGFy
ZW50LmxvZygiQW4gZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOworICAgICAg
ICAgICAgcC5sb2coIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1
cmUtd2luZG93LWNoaWxkLmh0bWwKaW5kZXggMzY5MTA5NTQ4MjRiNzZjNzE3MmJkMzNlNGQ2Y2M3
ZmEwNzdiN2VkZS4uNDA3OTNhZGViZDc1ZTdmNTVlZjE1MTNlNTFlMDdkZTc1MDVkZmE2ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5o
dG1sCkBAIC0xLDQgKzEsNiBAQAogPHNjcmlwdD4KKyAgICBvID0gb3BlbmVyOyAvLyBTYXZlIG9w
ZW5lciBhcyB0aGUgd2luZG93IHdpbGwgYmUgZGV0YWNoZWQgd2hlbiBhY2Nlc3NGcmFtZSgpIGlz
IGNhbGxlZC4KKwogICAgIG9wZW5lci5hY2Nlc3NGcmFtZSA9IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVSTCh1cmwpCkBAIC03LDEyICs5LDEyIEBACiAgICAg
ICAgIH0KIAogICAgICAgICB0cnkgewotICAgICAgICAgICAgb3BlbmVyLmxvZygiZG9jdW1lbnQu
VVJMOiAiICsgbm9ybWFsaXplVVJMKGRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgb3BlbmVy
LmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTCh3aW5kb3cuZG9jdW1l
bnQuVVJMKSk7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJuYW1lOiAiICsgbmFtZSk7Ci0gICAg
ICAgICAgICBvcGVuZXIubG9nKCJ3aW5kb3cubmFtZTogIiArIHdpbmRvdy5uYW1lKTsKKyAgICAg
ICAgICAgIG8ubG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9jdW1lbnQuVVJM
KSk7CisgICAgICAgICAgICBvLmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6
ZVVSTCh3aW5kb3cuZG9jdW1lbnQuVVJMKSk7CisgICAgICAgICAgICBvLmxvZygibmFtZTogIiAr
IG5hbWUpOworICAgICAgICAgICAgby5sb2coIndpbmRvdy5uYW1lOiAiICsgd2luZG93Lm5hbWUp
OwogICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJBbiBleGNl
cHRpb24gd2FzIHRocm93bjogIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICBvLmxvZygiQW4g
ZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvYmVmb3JlLXVu
bG9hZC1yZXR1cm4tc3RyaW5nLWNvbnZlcnNpb24tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lv
bi1mcmFtZS5odG1sCmluZGV4IDczODdmYmVjMDBmZjE3NTkxMzAyOWM0YTZkMDk4MGIxMGJhMzUx
OTIuLmJkMTZkZTQyMzNjZDFkZjVhM2I0NDYxZTExYjYzNTJiOTNkZmNkNjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1z
dHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5o
dG1sCkBAIC0xNCw5ICsxNCw3IEBAIHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKSB7CiAgICAg
ICAgIHBhcmVudC5zaG91bGRCZVRydWUoImV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQiKTsKICAgICAg
ICAgcGFyZW50LnNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQucmV0dXJuVmFsdWUiLCAiUEFT
UyIpOwogICAgICAgICBwYXJlbnQuc2hvdWxkQmVUcnVlKCJ0b1N0cmluZ0NhbGxlZCIpOwotICAg
ICAgICBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHBhcmVudC5m
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSwgMCk7CisgICAgICAgIHBhcmVudC5maW5pc2hKU1Rl
c3QoKTsKICAgICB9CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2Fk
IiwgbGlzdGVuZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3Vy
Y2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWwKaW5kZXgg
YTY0YjlhMDMzNWIwMjIwYTNmY2VjODY5N2I1NzdkZjZiMWI0MTk0Ni4uNzZmNzcyYmZkMGEzMWIz
NTBlNTg3ZDk1Yjg1NTQ4OTY0ZjY3ZDE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
YXJzZXIvcmVzb3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvc2V0LXBhcmVudC10by1qYXZhc2NyaXB0
LXVybC5odG1sCkBAIC0xLDYgKzEsNyBAQAogPHNjcmlwdD4KK3AgPSBwYXJlbnQ7CiBhbGVydCgx
KTsKLXBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uc3Jj
ID0gImphdmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwvc2NyaXB0Pici
OworcC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uc3JjID0gImph
dmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwvc2NyaXB0PiciOwogYWxl
cnQoNCk7Ci1wYXJlbnQuc2V0VGltZW91dCgiZG9uZSgpIiwgMCk7CitwLnNldFRpbWVvdXQoImRv
bmUoKSIsIDApOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCmlu
ZGV4IDBmOTcyYzk3YjcyNGE4NWIzODk0NWFjNDI0MTI4YTE3ZDM3OTJmYTIuLjZkYjRiNGU5ZDA1
NDM3ZGE1M2YzNDE2ZTY3MDI1M2ZjMjBmZDFkMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS5odG1sCkBAIC0xMiwyNyArMTIsMjkgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKIAogZnVuY3Rpb24gb25J
ZnJhbWVMb2FkZWQoKSB7Ci0gICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5k
b3cubmF2aWdhdG9yOworICAgIGlmcmFtZU1lZGlhRGV2aWNlcyA9IGlmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CiAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgIG9u
SWZyYW1lVW5sb2FkZWQoKTsKIH0KIAogZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAg
ICBoYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0RmFpbGVkKCdU
aW1lb3V0OiBwcm9taXNlIHJlc29sdmUgYW5kIHJlamVjdCBmdW5jdGlvbnMgbm90IGNhbGxlZC4n
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKKwogICAgIHZhciBvcHRp
b25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci0gICAgaWZyYW1lTmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICBpZnJhbWVNZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKG9wdGlvbnMpCiAgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CiAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdQcm9taXNlIHJlc29sdmVkIHVuZXhwZWN0ZWRseS4nKTsKKyAgICAg
ICAgICAgIGNsZWFyVGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgICAgIH0pCiAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgdGVzdFBh
c3NlZCgnUHJvbWlzZSByZWplY3RlZCBhcyBleHBlY3RlZC4nKTsKKyAgICAgICAgICAgIGNsZWFy
VGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0p
OwotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnVGlt
ZW91dDogcHJvbWlzZSByZXNvbHZlIGFuZCByZWplY3QgZnVuY3Rpb25zIG5vdCBjYWxsZWQuJyk7
Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIDEwMCk7CiB9CiAKIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9j
aGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvY2hlY2tEaWRTYW1l
T3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCmluZGV4IDkxODYwYjI4NzEyYzdmMGM2YTVlZjc4N2Q1
NTA2MDI2ZWI0ODRmNzkuLjI2NDAyN2JiYmFmZWUyOWQyYjI5YzEyOWI0M2Q4MmUyZDdhNWY2OTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9jaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5qcwpAQCAtOSw3
ICs5LDcgQEAgZnVuY3Rpb24gY2hlY2tEaWRTYW1lT3JpZ2luQ2hpbGRXaW5kb3dMb2FkQW5kTm90
aWZ5RG9uZShjaGlsZFdpbmRvdykKIGZ1bmN0aW9uIGNoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2lu
ZG93TG9hZChjaGlsZFdpbmRvdywgY2FsbGJhY2spCiB7CiAgICAgZnVuY3Rpb24gY2hlY2tEaWRM
b2FkKCkgewotICAgICAgICBpZiAoY2hpbGRXaW5kb3cuZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
ICE9PSBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pCisgICAgICAgIGlmIChjaGlsZFdpbmRvdy5k
b2N1bWVudC5sb2NhdGlvbiA9PT0gImFib3V0OmJsYW5rIikKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgLy8gQ2hpbGQgd2luZG93IGRpZCBsb2FkCiAgICAgICAgIHdpbmRvdy5jbGVhcklu
dGVydmFsKGludGVydmFsSUQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1k
b2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25h
bWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4
cGVjdGVkLnR4dAppbmRleCAwNzE4YWQ1ZDE5ZjgxZjFjMDVjYzRiZjgyYmY1OTYwMDg4M2IxMWVj
Li5hYjIwYjk3NDNmNTMzOGFmZTVjYjIzYTAxNzA5MzRkMGMwNjNjNTBmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9t
LXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUt
b3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1l
IGNvcnJlc3BvbmRzIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9j
dW1lbnQ6CiBQQVNTIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQScpIGlz
IG5vdCBlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudAotUEFTUyBlbGVtZW50QUluQWN0aXZlRG9j
dW1lbnRGdW5jdGlvbigpIGlzIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
QScpCitQQVNTIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkgdGhyZXcgZXhjZXB0
aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBLgogCiBMb29rdXAgbmFt
ZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxlbWVudCBp
biB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBBU1MgZWxlbWVudEJJbkFjdGl2
ZURvY3VtZW50RnVuY3Rpb24oKSBpcyBmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ0InKQorUEFTUyBlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRocmV3IGV4
Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQi4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1z
YW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2
ZS1kb2N1bWVudC5odG1sCmluZGV4IGU3ZTRiNjE3NWUzNDBmMjcwODNjZjhlZjE0YjhiZTJmYWIx
MmU1YWUuLmUzNjZmNmRlNGFkN2EwZTNkZTE5NTJhNDQ4YWIzOTgyMWRmYTViMmQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5
LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3Jp
Z2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIgZWxlbWVu
dEFJbkluYWN0aXZlRG9jdW1lbnQgPSBmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQuaWQgPSAiQSI7CiBmcmFtZURvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQpOwogCi12YXIgZWxlbWVu
dEFJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9u
KCJyZXR1cm4gQTsiKTsKLXZhciBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbiA9IGZy
YW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBCOyIpOwordmFyIGVsZW1lbnRBSW5E
ZXRhY2hlZFdpbmRvd0Z1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0
dXJuIEE7Iik7Cit2YXIgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBmcmFtZS5j
b250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKIAogZnJhbWUub25sb2FkID0gZnVu
Y3Rpb24gKCkKIHsKICAgICBkZWJ1ZygiTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBj
b3JyZXNwb25kcyB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3Vt
ZW50OiIpOwogICAgIHNob3VsZE5vdEJlKCJmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ0EnKSIsICJlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudCIpOwotICAgIHNob3VsZEJl
KCJlbGVtZW50QUluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwgImZyYW1lLmNvbnRlbnREb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnQScpIik7CisgICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoImVs
ZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAiUmVmZXJlbmNlRXJyb3IiKTsKIAog
ICAgIGRlYnVnKCI8YnI+TG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBkb2VzIG5vdCBj
b3JyZXNwb25kIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1l
bnQ6Iik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCki
LCAiZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCJykiKTsKKyAgICBzaG91
bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICJS
ZWZlcmVuY2VFcnJvciIpOwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY29udGVudFdpbmRvdy1l
dmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CmluZGV4IGYwZWU4ZDJhODM2MDkw
ZmZmMzk3YTgzMTI5MTU2ZTNhN2M2MjJmODEuLjdmZmEwNGQ2N2U0NThmYTliOTE4MTk0YjM0ZWRj
YzVhN2Q4ODg4ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhw
ZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IKIFRoaXMgdGVzdCBwYXNzZXMgaWYgYWxlcnQoKSBpcyBub3QgY2FsbGVk
LiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklF
RC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVO
SUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1
bWVudC1leHBlY3RlZC50eHQKaW5kZXggODk1ZjliZjAzMGNmZmJhMjQ4NzRmMzk0MmE4ZmZkNGQ1
ZjM3NmJmMC4uZTRmYTk0ZDEyMjVjZjEwMzNkYmEzMTdkZjI3ODM1NGQzNTIwNTQ1NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdp
bmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5h
bWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1l
eHBlY3RlZC50eHQKQEAgLTQsMTAgKzQsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
CiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGNvcnJlc3BvbmRzIHRvIGFuIGVsZW1l
bnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Ci1QQVNTIGVsZW1lbnRBSW5B
Y3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFNlY3VyaXR5RXJyb3I6IEJs
b2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFj
Y2Vzc2luZyBhIGNyb3NzLW9yaWdpbiBmcmFtZS4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9y
dHMgbXVzdCBtYXRjaC4uCitQQVNTIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkg
dGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBLgog
CiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8g
YW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBBU1MgZWxl
bWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gU2VjdXJpdHlF
cnJvcjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
IGZyb20gYWNjZXNzaW5nIGEgY3Jvc3Mtb3JpZ2luIGZyYW1lLiBQcm90b2NvbHMsIGRvbWFpbnMs
IGFuZCBwb3J0cyBtdXN0IG1hdGNoLi4KK1BBU1MgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVu
Y3Rpb24oKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IEIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1u
YW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1uYW1lZC13
aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbApp
bmRleCAzNWU0NTQ0YTEwN2EyMDcxYmVlMmQ5NzA2YWM0YzBjNmM4MjM2MWE5Li44OTNhY2E3MzRm
MzJlY2E4YWRkNmQwYTUxOGM0ZTYxZTFjMjg2MzU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20t
Y3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNy
b3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCkBAIC0xNywxNiArMTcsMTYgQEAgdmFy
IGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50ID0gZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKIGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50LmlkID0gIkEiOwogZnJhbWVEb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50KTsKIAotdmFy
IGVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5G
dW5jdGlvbigicmV0dXJuIEE7Iik7Ci12YXIgZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rp
b24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKK3ZhciBlbGVt
ZW50QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rp
b24oInJldHVybiBBOyIpOwordmFyIGVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uID0g
ZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0dXJuIEI7Iik7CiAKIGZyYW1lLm9ubG9h
ZCA9IGZ1bmN0aW9uICgpCiB7CiAgICAgZGVidWcoIkxvb2t1cCBuYW1lZCBlbGVtZW50IHdob3Nl
IG5hbWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFu
ayBkb2N1bWVudDoiKQotICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QUluQWN0aXZl
RG9jdW1lbnRGdW5jdGlvbigpIiwgJ1NlY3VyaXR5RXJyb3InKTsKKyAgICBzaG91bGRUaHJvd0Vy
cm9yTmFtZSgiZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICdSZWZlcmVuY2VF
cnJvcicpOwogCiAgICAgZGVidWcoIjxicj5Mb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1l
IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpi
bGFuayBkb2N1bWVudDoiKTsKLSAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkFj
dGl2ZURvY3VtZW50RnVuY3Rpb24oKSIsICdTZWN1cml0eUVycm9yJyk7CisgICAgc2hvdWxkVGhy
b3dFcnJvck5hbWUoImVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAnUmVmZXJl
bmNlRXJyb3InKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRv
d3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dpbmRvdy1wYXJlbnQtbnVsbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1udWxs
LWV4cGVjdGVkLnR4dAppbmRleCAxNWU5NTUxNmM5MzQyZWJjYjFiNTRmOWQ0ZmIyNDdlOTQxM2Nm
Y2ViLi4zZjdhOGZhYzA1MjI0NzgzZjVkYzYxOWQwNDU0MDgxYmY0NTdiNmJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1udWxsLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93
LXBhcmVudC1udWxsLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBgd2luZG93
LnBhcmVudGAgaXMgbnVsbCB3aGVuIGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyIGVsZW1lbnQg
cmVtb3ZlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2Jq
ZWN0IFdpbmRvd10iCi1GQUlMIGB3aW5kb3cucGFyZW50YCBudWxsIHdoZW4gcGFyZW50IGJyb3dz
aW5nIGNvbnRleHQgY29udGFpbmVyIHJlbW92ZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiW29iamVjdCBXaW5kb3ddIgotCitQQVNTIGB3aW5kb3cucGFyZW50
YCBpcyBudWxsIHdoZW4gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXIgZWxlbWVudCByZW1vdmVk
IAorUEFTUyBgd2luZG93LnBhcmVudGAgbnVsbCB3aGVuIHBhcmVudCBicm93c2luZyBjb250ZXh0
IGNvbnRhaW5lciByZW1vdmVkIAorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3Ro
ZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lLXN5bmNocm9u
b3VzbHktZGlzY2FyZC1leHBlY3RlZC50eHQKaW5kZXggNDM2YTMxYzcwMjczOThjODQ5MjU0ODFj
OThlYTRjNTIyN2NmMmQyOC4uZjA0M2Q1NTMzNWE0ODgwYWI4NGM0MzllZmExODc2NjBlOWQxYzdi
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJh
bWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIElGcmFtZSBkaXNjYXJkcyBhcmUgcHJv
Y2Vzc2VkIHN5bmNocm9ub3VzbHkgYXNzZXJ0X2VxdWFsczogY2hpbGQgd2luZG93IHNob3VsZCBi
ZSBkaXNjYXJkZWQgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBXaW5kb3dd
IgorUEFTUyBJRnJhbWUgZGlzY2FyZHMgYXJlIHByb2Nlc3NlZCBzeW5jaHJvbm91c2x5IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351618</attachid>
            <date>2018-10-04 13:28:38 -0700</date>
            <delta_ts>2018-10-04 14:17:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190282-20181004132838.patch</filename>
            <type>text/plain</type>
            <size>33333</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY5ZTE1YmJkMDAzZDA5
ZWQ2NDkyN2UzY2ViMTIyODQ4NDhkYzI4Yi4uNTg2NWEwM2MwMDRiYjE1MmY1ZTkzYTNkZDgxYTNh
ODZlODkyN2RjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQSBEb2N1bWVudCAvIFdpbmRv
dyBzaG91bGQgbG9vc2UgaXRzIGJyb3dzaW5nIGNvbnRleHQgYXMgc29vbiBhcyBpdHMgaWZyYW1l
IGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxkIGxvb3NlIGl0
cyBicm93c2luZyBjb250ZXh0IChha2EgRnJhbWUpIGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyBy
ZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIGRvY3VtZW50LiBJbiBXZWJLaXQsIGEgRG9jdW1lbnQg
LyBXaW5kb3cncyBGcmFtZSB3YXMgb25seSBnZXR0aW5nIG51bGxlZCBvdXQgd2hlbiB0aGUgZnJh
bWUgZ2V0cworICAgICAgICBkZXN0cm95ZWQsIHdoaWNoIGhhcHBlbnMgbGF0ZXIgdXN1YWxseSBh
ZnRlciBhIEdDIGhhcHBlbnMuCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN0aGUtaWZyYW1lLWVsZW1lbnQKKyAgICAgICAg
IiIiCisgICAgICAgIFdoZW4gYW4gaWZyYW1lIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9j
dW1lbnQsIHRoZSB1c2VyIGFnZW50IG11c3QgZGlzY2FyZCB0aGUgZWxlbWVudCdzIG5lc3RlZCBi
cm93c2luZworICAgICAgICBjb250ZXh0LCBpZiBpdCBpcyBub3QgbnVsbCwgYW5kIHRoZW4gc2V0
IHRoZSBlbGVtZW50J3MgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgdG8gbnVsbC4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgVGhpcyB3YXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGUgc3BlY2lmaWNh
dGlvbiBvciBvdGhlciBicm93c2VycyAodGVzdGVkIENocm9tZSBhbmQgRmlyZWZveCkgc28gdGhp
cworICAgICAgICBwYXRjaCBpcyBhbGlnbmluZyBvdXIgYmVoYXZpb3IuCisKKyAgICAgICAgSW4g
YSBmb2xsb3ctdXAsIEkgYW0gcGxhbm5pbmcgdG8gbG9vayBpbnRvIG1ha2luZyB0aGUgV2luZG93
IG5vdCBiZSBhIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciwgYW5kIGluc3RlYWQKKyAgICAgICAg
Z2V0IGl0cyBmcmFtZSBmcm9tIHRoZSBEb2N1bWVudC4gVGhpcyBzaG91bGQgbWFrZSB0aGUgY29k
ZSBzaW1wbGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgVXBk
YXRlIGdldFVzZXJNZWRpYSgpIHRvIHJlamVjdCBhIHRoZSBQcm9taXNlIHdpdGggYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiBjYWxsaW5nIGFmdGVyIHRoZQorICAgICAgICBkb2N1bWVudCBoYXMg
YmVlbiBkZXRhY2hlZCwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBJbnZhbGlkU3RhdGVFcnJvci4g
VGhpcyBiZWhhdmlvciBpcyBhcyBwZXIKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAg
LSBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmlj
ZXMtZ2V0dXNlcm1lZGlhIChTdGVwIDQpCisgICAgICAgIEkgbmVlZGVkIHRvIG1ha2UgdGhpcyBj
aGFuZ2UgdG8ga2VlcCBvbmUgb2Ygb3VyIGxheW91dCB0ZXN0cyBwYXNzaW5nLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphdHRhY2hU
b0NhY2hlZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXRhY2hGcm9tRnJh
bWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRv
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaERvY3VtZW50RnJvbUZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV0YWNoRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0RnJhbWVGb3JEb2N1bWVudFN1c3BlbnNpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFs
T2JqZWN0SW5DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KToK
KworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KToKKyAg
ICAgICAgQ2FsbGluZyBkcmF3VGV4dCgpIHdpdGggYSBudWxsIFN0cmluZyBoaXRzIGFuIGFzc2Vy
dGlvbiBpbiBkZWJ1Zy4gVGhpcyB3YXMgdHJpZ2dlcmVkIGJ5IG9uZSBvZgorICAgICAgICBvdXIg
bGF5b3V0IHRlc3RzIHNvIEkgbWFkZSBzdXJlIHdlIG9ubHkgY2FsbCBkcmF3VGV4dCB3aGVuIHRo
ZSBTdHJpbmcgaXMgbm90IG51bGwuCisKIDIwMTgtMTAtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBpbnB1dC5jaGVja2VkIGlzIGluY29ycmVjdCB3aGlsZSB3
ZSdyZSBwYXJzaW5nIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDY5MGZmMzY2ZThmMGUxZjYyYmFk
MDBhNDRjMjYxMGZlMTAxNWNmMTUuLjkxYzUxYWQyNDUyMDVhMGU0NTc0NmQ2YTUxMTc1MWFiMmVh
ZGJiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKQEAgLTk2LDExICs5NiwxMyBAQCBzdGF0aWMgTWVkaWFDb25zdHJhaW50
cyBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0Nv
bgogICAgICk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1l
ZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21p
c2UpIGNvbnN0Cit2b2lkIE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIGF1ZGlvQ29u
c3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKICAg
ICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzLnZpZGVvKTsKQEAgLTExMSw3ICsxMTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURl
dmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludAog
ICAgIGlmIChyZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LT5zdGFydCgpOwogCi0gICAgcmV0dXJu
IHsgfTsKKyAgICByZXR1cm47CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6
Z2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJv
bWlzZSYmIHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCA3YjJjN2NhOTcxZDYyOTU1N2IxMWFkODM1MGY3
NDcwNjA5ZWY5MTYwLi43Y2RhMWViOTVmMjkyMjFkNzQzNGQ3YjQwYTNlNjA3MDkxMmIyNWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlh
VHJhY2tDb25zdHJhaW50cz4gdmlkZW87CiAgICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzPiBhdWRpbzsKICAgICB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVz
ZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CisgICAg
dm9pZCBnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNv
bnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1D
b25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpIGNvbnN0OwogICAgIE1lZGlhVHJhY2tTdXBwb3J0
ZWRDb25zdHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjU4ZWIyZTU5Y2IwZDhiMTFjYjVhNTY0MmMwMWU0MWZiYmVjOGRlZi4uZDYw
OWY4YzVjMjhmZjRlNTA5NTNlNGQ4YmZlZjkzN2ViOTNmMDhjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yMzM5LDYgKzIzMzksOCBAQCB2b2lkIERvY3VtZW50OjphdHRhY2hUb0NhY2hl
ZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAgQVNTRVJUKGNhY2hlZEZy
YW1lLnZpZXcoKSk7CiAgICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgPT0gRG9jdW1lbnQ6Oklu
UGFnZUNhY2hlKTsKICAgICBvYnNlcnZlRnJhbWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUo
KSk7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ct
PmF0dGFjaFRvRnJhbWUoY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgpKTsKIH0KIAogdm9pZCBE
b2N1bWVudDo6ZGV0YWNoRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJh
bWUpCkBAIC04MjUwLDQgKzgyNTIsMTIgQEAgYm9vbCBEb2N1bWVudDo6cmVnaXN0ZXJDU1NQcm9w
ZXJ0eShDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkmJiBwcm9wKQogICAgIHJldHVybiBtX0NT
U1JlZ2lzdGVyZWRQcm9wZXJ0eVNldC5hZGQocHJvcC5uYW1lLCBzdGQ6Om1ha2VfdW5pcXVlPENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eT4oV1RGTW92ZShwcm9wKSkpLmlzTmV3RW50cnk7CiB9
CiAKK3ZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgaWYgKGF1dG8qIHdp
bmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPndpbGxEZXRhY2hEb2N1bWVudEZy
b21GcmFtZSgpOworCisgICAgb2JzZXJ2ZUZyYW1lKG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGE3OTZiNDkwN2MxMjE1OGMwNmJm
YTYyNTMxZDhmMTdlY2UwYWFjNDIuLmFlMTZkNDg4ZmJjYjhmOTY4YTA3YTdlNDhhZjExMWFlOGQ4
ZWU5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTAxLDYgKzE1MDEsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRBc1J1bm5pbmdVc2VyU2NyaXB0cygpIHsgbV9pc1J1bm5pbmdVc2VyU2Ny
aXB0cyA9IHRydWU7IH0KICAgICBib29sIGlzUnVubmluZ1VzZXJTY3JpcHRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1J1bm5pbmdVc2VyU2NyaXB0czsgfQogCisgICAgdm9pZCBkZXRhY2hGcm9tRnJh
bWUoKTsKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVz
aXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVu
c2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CkBAIC0xNTE4LDggKzE1MjAsNiBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBzaG91bGRJbmhlcml0Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbU93
bmVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRldGFjaEZyb21GcmFtZSgpIHsgb2JzZXJ2ZUZyYW1l
KG51bGxwdHIpOyB9Ci0KICAgICB2b2lkIHVwZGF0ZVRpdGxlRWxlbWVudChFbGVtZW50JiBjaGFu
Z2luZ1RpdGxlRWxlbWVudCk7CiAgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggN2JkZTFjYmI4YjYzNzFlN2E3YTA4YmE1NTFl
ODU2YjgxOTJmNjBmYy4uZjZhYTIzYzk4YWY4ZWQ1MzE2MGYzOWI5YWZlNDVkMzMxM2Q4ZTMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNDE0LDYgKzQxNCw3IEBAIERPTVdpbmRv
dzo6RE9NV2luZG93KERvY3VtZW50JiBkb2N1bWVudCkKIHZvaWQgRE9NV2luZG93OjpkaWRTZWN1
cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIG9ic2VydmVDb250ZXh0
KCZkb2N1bWVudCk7CisgICAgb2JzZXJ2ZUZyYW1lKGRvY3VtZW50LmZyYW1lKCkpOwogfQogCiBE
T01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTExLDYgKzUxMiw4IEBAIHZvaWQgRE9NV2luZG93
Ojp3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKQogCiAgICAgaWYgKG1fcGVyZm9ybWFuY2Up
CiAgICAgICAgIG1fcGVyZm9ybWFuY2UtPmNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7CisKKyAgICBk
ZXRhY2hGcm9tRnJhbWUoKTsKIH0KIAogI2lmIEVOQUJMRShHQU1FUEFEKQpAQCAtMTQwMiw3ICsx
NDA1LDE3IEBAIHZvaWQgRE9NV2luZG93OjpzZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91
bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCiAg
ICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwot
fSAKK30KKwordm9pZCBET01XaW5kb3c6OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgb2JzZXJ2
ZUZyYW1lKG51bGxwdHIpOworfQorCit2b2lkIERPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZShGcmFt
ZSYgZnJhbWUpCit7CisgICAgb2JzZXJ2ZUZyYW1lKCZmcmFtZSk7Cit9CiAgICAgCiB2b2lkIERP
TVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAppbmRleCBlMmY0OWQxOTAzZjRhYzQ5YmQ2ODgxODQ0Y2Y4NzQ0NzI0
Y2FhZGVjLi4zZWQ0NzAzN2Y4MWMyNTExZWExNDE4NDIwZThhOTJhYWIyMDI5MjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKQEAgLTMzMyw2ICszMzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3
aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKTsKICAgICB2b2lkIHdpbGxEZXN0cm95Q2FjaGVk
RnJhbWUoKTsKIAorICAgIHZvaWQgYXR0YWNoVG9GcmFtZShGcmFtZSYpOworICAgIHZvaWQgZGV0
YWNoRnJvbUZyYW1lKCk7CisKICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAg
ICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvd1Byb3BlcnR5LmNwcAppbmRleCA1NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlhN2U1
YzYwOWVkNTBmODU3Li4yYzIxOGVkYmEzMzQ3YzQ5MzM4NWQxMjcyZTM0MWE4YTQxNjEzMWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNTcsOSArNTcs
NiBAQCBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1Byb3BlcnR5KCkKIAogdm9pZCBET01X
aW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVjdEZyYW1lRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKIHsK
LSAgICAvLyBJZiB0aGlzIHByb3BlcnR5IGlzIGJlaW5nIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBG
cmFtZSB0byBlbnRlciB0aGUgUGFnZUNhY2hlLCBpdCBtdXN0IGhhdmUKLSAgICAvLyBiZWVuIGNy
ZWF0ZWQgd2l0aCBhIEZyYW1lIGluIHRoZSBmaXJzdCBwbGFjZS4KLSAgICBBU1NFUlQobV9mcmFt
ZSk7CiAgICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAKICAgICBtX2ZyYW1lID0g
bnVsbHB0cjsKQEAgLTkzLDggKzkwLDYgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERl
c3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkKIAogdm9pZCBET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJv
cGVydHkgaXMgZ2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQg
d2l0aCBhIEZyYW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAg
ICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAK
ICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBpc24ndCB0aWVkIGRpcmVjdGx5IHRv
IHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IHVucmVnaXN0
ZXIKQEAgLTEwNyw5ICsxMDIsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJv
eUdsb2JhbE9iamVjdEluRnJhbWUoKQogCiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGV0
YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMg
Z2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgd2l0aCBhIEZy
YW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAgICBBU1NFUlQo
bV9mcmFtZSk7Ci0gICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CisgICAgbV9mcmFt
ZSA9IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggMTkzZWM3NzViMGZl
MzY2ZDA4YzE4NmI1MjMwZDBmMGM4MzgyZjE4Ni4uY2JlNDVlMzg1Y2FlODIxZjEzYmQ2NGRlOTgx
ZGVkOWQwODNiZDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTgzMSw2ICs4MzEsOSBAQCB2
b2lkIEZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KCkKICAgICAgICAgICAgIG1fcGFnZS0+
ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwogICAgIH0KICAgICBtX293bmVyRWxlbWVudCA9IG51
bGxwdHI7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+ZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKIFN0cmluZyBGcmFtZTo6ZGlz
cGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhjb25zdCBTdHJpbmcmIHN0cikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKaW5kZXggZDQ3MDZiYzVmZGNiYTYyNGQ4NTY0MmRiN2VmNjg4NGNjZDQ1YTA0
Yy4uOGZlNGM1ZGRjYjVjMWZkNWM2MWU0N2Q1ZDQxZDhmOTI3ZTgzNzgzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpk
cmF3VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIHN0cmluZyA9IFN0cmlu
Zzo6Zm9ybWF0KCJDYW1lcmE6ICVzIiwgY2FtZXJhKTsKICAgICAgICAgc3RhdHNMb2NhdGlvbi5t
b3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNG
b250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7Ci0gICAg
fSBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKCFuYW1lKCkuaXNOdWxsKCkpIHsKICAgICAgICAgc3Rh
dHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJh
d1RleHQoc3RhdHNGb250LCBUZXh0UnVuIHsgbmFtZSgpIH0sIHN0YXRzTG9jYXRpb24pOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAwNGU1ZDRjMDM1ZmE2MWNmZDY1MmMyMjEyZWNmZjgzZTIwYzczMmVjLi45ZTUy
MmUyZjlmYWZhM2QwMDMwNDRmNzk0ZDc1YjFjM2Y4NTE4NTAwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTgtMTAtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBIERvY3VtZW50IC8gV2luZG93IHNob3VsZCBsb29zZSBpdHMgYnJvd3NpbmcgY29udGV4dCBh
cyBzb29uIGFzIGl0cyBpZnJhbWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5n
IGxheW91dCB0ZXN0IHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZmFz
dC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUtcmVtb3ZlZC5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13
aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtY2hp
bGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3Mt
ZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jl
c291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1s
OgorICAgICAgICAqIGZhc3QvcGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3Jp
cHQtdXJsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93
TG9hZC5qczoKKyAgICAgICAgKGNoZWNrRGlkTG9hZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1k
b2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1l
ZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93
LWV2YWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQuaHRtbDoKKwogMjAxOC0xMC0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgRW5hYmxlIEgyNjQgc2ltdWxjYXN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBkMjFjMDUzMjRlZTY1MmE1YjE1NmM2MTJmNTc5NGJiOTE2OTdlNWEwLi44
YjBkNzdkM2VhMDI0ODM5ODRmNmQ1MWI4M2EzOWI4ZWM3NDNkNjE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMC0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxk
IGxvb3NlIGl0cyBicm93c2luZyBjb250ZXh0IGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyByZW1v
dmVkIGZyb20gdGhlIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAyODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWJhc2VsaW5lIHNldmVyYWwgV1BUIHRlc3RzIHRoYXQgYXJlIG5vdyBw
YXNzaW5nLiBJIGhhdmUgdmVyaWZpZWQgdGhhdCB0aG9zZSB0ZXN0cyBhcmUgYWxzbyBwYXNzaW5n
IGluCisgICAgICAgIEZpcmVmb3ggYW5kIENocm9tZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dp
bmRvdy1wYXJlbnQtbnVsbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lm
cmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0OgorCiAyMDE4LTEwLTAzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaW5wdXQuY2hlY2tlZCBp
cyBpbmNvcnJlY3Qgd2hpbGUgd2UncmUgcGFyc2luZyBpdHMgY2hpbGRyZW4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJlbW92ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJl
bW92ZWQuaHRtbAppbmRleCA0ZjY3NzNiNGQ3YzRmZTY5ZTk4ZGI5ZDE5YTQ2YjZlNTQxZjIzNzZj
Li5kYzgyOWZkZmQzYThmYTMyMTk0NGZlZDk1Zjk1MmNmOGFkZjJmYjc4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvQmFySW5mby1hZnRlci1mcmFtZS1yZW1vdmVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUt
cmVtb3ZlZC5odG1sCkBAIC0xNSw3ICsxNSw5IEBACiAgICAgICAgIHZhciBmcmFtZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZSIpOwogICAgICAgICB2YXIgY2hpbGRXaW5kb3cgPSBm
cmFtZS5jb250ZW50V2luZG93OwogICAgICAgICBmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGZyYW1lKTsKLSAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAgICB9
IGNhdGNoIChlKSB7IH0KICAgICAgICAgCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuZmlyc3RDaGlsZC5kYXRhID0gIlRFU1QgUkFOIjsKICAgICB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUt
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNj
ZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDBmMzhkZDcxMDc2Nzg1
OWY2ZDQzNWJmOWU2ZDkxZjRmYWI5MThhN2UuLmZmOTIwYzYwYzQyNzUxZTY5M2JhNjZhZjAxMDJk
NDJlNzUzYTI5ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1s
CiB3aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3Vy
Y2VzL25vdGlmeS1wYXJlbnQtZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZTogCiB3aW5kb3cu
bmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Rv
bS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBlNzBjMGRiMjc4ODRmZDgzZTM1MjdlYzQ5MDAyYmRhOWM3NjJjZDBlLi44NjFmMjhm
MjQ4NjlhNjQyZDQ0ODRmNjk4YTk5YTE3MmIwMWY3MGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNs
b3N1cmUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xv
c3VyZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTog
Y2hpbGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1n
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1m
cm9tLWNsb3N1cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CmluZGV4IGU3MGMwZGIyNzg4
NGZkODNlMzUyN2VjNDkwMDJiZGE5Yzc2MmNkMGUuLjg2MWYyOGYyNDg2OWE2NDJkNDQ4NGY2OThh
OTlhMTcyYjAxZjcwYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9k
b20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRv
dy13aXRoLWdjLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTogY2hp
bGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1l
LWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1h
Y2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCmluZGV4IDQ1NTBkMTJlNTI4NzNj
NzRiNjM4NGI2NmM2NTE2OTNkNzk2ZjY3MDMuLjZiY2M2MGFiYTUxOTA0YWYxYjg0ZjM1ZTQ3YzJl
ZTYzYTM3NzAyMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS1pZnJhbWUtY2hpbGQuaHRtbApAQCAtMSw0ICsxLDYgQEAKIDxzY3JpcHQ+CisgICAgcCA9IHBh
cmVudDsgLy8gU2F2ZSBwYXJlbnQgYXMgdGhlIHdpbmRvdyB3aWxsIGJlIGRldGFjaGVkIHdoZW4g
YWNjZXNzRnJhbWUoKSBpcyBjYWxsZWQuCisKICAgICBwYXJlbnQuYWNjZXNzRnJhbWUgPSBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBub3JtYWxpemVVUkwodXJsKQpAQCAtNywx
MiArOSwxMiBAQAogICAgICAgICB9CiAKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHBhcmVu
dC5sb2coImRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTChkb2N1bWVudC5VUkwpKTsKLSAg
ICAgICAgICAgIHBhcmVudC5sb2coIndpbmRvdy5kb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVV
Ukwod2luZG93LmRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgcGFyZW50LmxvZygibmFtZTog
IiArIG5hbWUpOwotICAgICAgICAgICAgcGFyZW50LmxvZygid2luZG93Lm5hbWU6ICIgKyB3aW5k
b3cubmFtZSk7CisgICAgICAgICAgICBwLmxvZygiZG9jdW1lbnQuVVJMOiAiICsgbm9ybWFsaXpl
VVJMKGRvY3VtZW50LlVSTCkpOworICAgICAgICAgICAgcC5sb2coIndpbmRvdy5kb2N1bWVudC5V
Ukw6ICIgKyBub3JtYWxpemVVUkwod2luZG93LmRvY3VtZW50LlVSTCkpOworICAgICAgICAgICAg
cC5sb2coIm5hbWU6ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIHAubG9nKCJ3aW5kb3cubmFtZTog
IiArIHdpbmRvdy5uYW1lKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcGFy
ZW50LmxvZygiQW4gZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOworICAgICAg
ICAgICAgcC5sb2coIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1
cmUtd2luZG93LWNoaWxkLmh0bWwKaW5kZXggMzY5MTA5NTQ4MjRiNzZjNzE3MmJkMzNlNGQ2Y2M3
ZmEwNzdiN2VkZS4uNDA3OTNhZGViZDc1ZTdmNTVlZjE1MTNlNTFlMDdkZTc1MDVkZmE2ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5o
dG1sCkBAIC0xLDQgKzEsNiBAQAogPHNjcmlwdD4KKyAgICBvID0gb3BlbmVyOyAvLyBTYXZlIG9w
ZW5lciBhcyB0aGUgd2luZG93IHdpbGwgYmUgZGV0YWNoZWQgd2hlbiBhY2Nlc3NGcmFtZSgpIGlz
IGNhbGxlZC4KKwogICAgIG9wZW5lci5hY2Nlc3NGcmFtZSA9IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVSTCh1cmwpCkBAIC03LDEyICs5LDEyIEBACiAgICAg
ICAgIH0KIAogICAgICAgICB0cnkgewotICAgICAgICAgICAgb3BlbmVyLmxvZygiZG9jdW1lbnQu
VVJMOiAiICsgbm9ybWFsaXplVVJMKGRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgb3BlbmVy
LmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTCh3aW5kb3cuZG9jdW1l
bnQuVVJMKSk7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJuYW1lOiAiICsgbmFtZSk7Ci0gICAg
ICAgICAgICBvcGVuZXIubG9nKCJ3aW5kb3cubmFtZTogIiArIHdpbmRvdy5uYW1lKTsKKyAgICAg
ICAgICAgIG8ubG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9jdW1lbnQuVVJM
KSk7CisgICAgICAgICAgICBvLmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6
ZVVSTCh3aW5kb3cuZG9jdW1lbnQuVVJMKSk7CisgICAgICAgICAgICBvLmxvZygibmFtZTogIiAr
IG5hbWUpOworICAgICAgICAgICAgby5sb2coIndpbmRvdy5uYW1lOiAiICsgd2luZG93Lm5hbWUp
OwogICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJBbiBleGNl
cHRpb24gd2FzIHRocm93bjogIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICBvLmxvZygiQW4g
ZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvYmVmb3JlLXVu
bG9hZC1yZXR1cm4tc3RyaW5nLWNvbnZlcnNpb24tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lv
bi1mcmFtZS5odG1sCmluZGV4IDczODdmYmVjMDBmZjE3NTkxMzAyOWM0YTZkMDk4MGIxMGJhMzUx
OTIuLmJkMTZkZTQyMzNjZDFkZjVhM2I0NDYxZTExYjYzNTJiOTNkZmNkNjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1z
dHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5o
dG1sCkBAIC0xNCw5ICsxNCw3IEBAIHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKSB7CiAgICAg
ICAgIHBhcmVudC5zaG91bGRCZVRydWUoImV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQiKTsKICAgICAg
ICAgcGFyZW50LnNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQucmV0dXJuVmFsdWUiLCAiUEFT
UyIpOwogICAgICAgICBwYXJlbnQuc2hvdWxkQmVUcnVlKCJ0b1N0cmluZ0NhbGxlZCIpOwotICAg
ICAgICBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHBhcmVudC5m
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSwgMCk7CisgICAgICAgIHBhcmVudC5maW5pc2hKU1Rl
c3QoKTsKICAgICB9CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2Fk
IiwgbGlzdGVuZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3Vy
Y2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWwKaW5kZXgg
YTY0YjlhMDMzNWIwMjIwYTNmY2VjODY5N2I1NzdkZjZiMWI0MTk0Ni4uNzZmNzcyYmZkMGEzMWIz
NTBlNTg3ZDk1Yjg1NTQ4OTY0ZjY3ZDE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
YXJzZXIvcmVzb3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvc2V0LXBhcmVudC10by1qYXZhc2NyaXB0
LXVybC5odG1sCkBAIC0xLDYgKzEsNyBAQAogPHNjcmlwdD4KK3AgPSBwYXJlbnQ7CiBhbGVydCgx
KTsKLXBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uc3Jj
ID0gImphdmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwvc2NyaXB0Pici
OworcC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uc3JjID0gImph
dmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwvc2NyaXB0PiciOwogYWxl
cnQoNCk7Ci1wYXJlbnQuc2V0VGltZW91dCgiZG9uZSgpIiwgMCk7CitwLnNldFRpbWVvdXQoImRv
bmUoKSIsIDApOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCmlu
ZGV4IDBmOTcyYzk3YjcyNGE4NWIzODk0NWFjNDI0MTI4YTE3ZDM3OTJmYTIuLjZkYjRiNGU5ZDA1
NDM3ZGE1M2YzNDE2ZTY3MDI1M2ZjMjBmZDFkMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS5odG1sCkBAIC0xMiwyNyArMTIsMjkgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKIAogZnVuY3Rpb24gb25J
ZnJhbWVMb2FkZWQoKSB7Ci0gICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5k
b3cubmF2aWdhdG9yOworICAgIGlmcmFtZU1lZGlhRGV2aWNlcyA9IGlmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CiAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgIG9u
SWZyYW1lVW5sb2FkZWQoKTsKIH0KIAogZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAg
ICBoYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0RmFpbGVkKCdU
aW1lb3V0OiBwcm9taXNlIHJlc29sdmUgYW5kIHJlamVjdCBmdW5jdGlvbnMgbm90IGNhbGxlZC4n
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKKwogICAgIHZhciBvcHRp
b25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci0gICAgaWZyYW1lTmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICBpZnJhbWVNZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKG9wdGlvbnMpCiAgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CiAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdQcm9taXNlIHJlc29sdmVkIHVuZXhwZWN0ZWRseS4nKTsKKyAgICAg
ICAgICAgIGNsZWFyVGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgICAgIH0pCiAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgdGVzdFBh
c3NlZCgnUHJvbWlzZSByZWplY3RlZCBhcyBleHBlY3RlZC4nKTsKKyAgICAgICAgICAgIGNsZWFy
VGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0p
OwotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnVGlt
ZW91dDogcHJvbWlzZSByZXNvbHZlIGFuZCByZWplY3QgZnVuY3Rpb25zIG5vdCBjYWxsZWQuJyk7
Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIDEwMCk7CiB9CiAKIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9j
aGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvY2hlY2tEaWRTYW1l
T3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCmluZGV4IDkxODYwYjI4NzEyYzdmMGM2YTVlZjc4N2Q1
NTA2MDI2ZWI0ODRmNzkuLmZlMjI2YTM1ODE5ZTBiOWZlYjAyYTdiYWRmMzlhZTlhMGZjZjRkNjgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9jaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5qcwpAQCAtOSwx
MSArOSwxMyBAQCBmdW5jdGlvbiBjaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWRBbmRO
b3RpZnlEb25lKGNoaWxkV2luZG93KQogZnVuY3Rpb24gY2hlY2tEaWRTYW1lT3JpZ2luQ2hpbGRX
aW5kb3dMb2FkKGNoaWxkV2luZG93LCBjYWxsYmFjaykKIHsKICAgICBmdW5jdGlvbiBjaGVja0Rp
ZExvYWQoKSB7Ci0gICAgICAgIGlmIChjaGlsZFdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5vcmln
aW4gIT09IGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikKKyAgICAgICAgaWYgKGNoaWxkV2luZG93
LmRvY3VtZW50LmxvY2F0aW9uID09PSAiYWJvdXQ6YmxhbmsiKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBDaGlsZCB3aW5kb3cgZGlkIGxvYWQKICAgICAgICAgd2luZG93LmNsZWFy
SW50ZXJ2YWwoaW50ZXJ2YWxJRCk7Ci0gICAgICAgIGNhbGxiYWNrKCkKKyAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCkKKyAgICAgICAgfSwgMCk7
CiAgICAgfQogICAgIGludGVydmFsSUQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoY2hlY2tEaWRMb2Fk
LCAxMCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25h
bWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93
LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQtZXhwZWN0ZWQudHh0
CmluZGV4IDA3MThhZDVkMTlmODFmMWMwNWNjNGJmODJiZjU5NjAwODgzYjExZWMuLmFiMjBiOTc0
M2Y1MzM4YWZlNWNiMjNhMDE3MDkzNGQwYzA2M2M1MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmln
aW4taW5hY3RpdmUtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5h
Y3RpdmUtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiAKIExvb2t1cCBuYW1lZCBlbGVtZW50IHdob3NlIG5hbWUgY29ycmVzcG9u
ZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKIFBB
U1MgZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJykgaXMgbm90IGVsZW1l
bnRBSW5JbmFjdGl2ZURvY3VtZW50Ci1QQVNTIGVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0
aW9uKCkgaXMgZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJykKK1BBU1Mg
ZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEEuCiAKIExvb2t1cCBuYW1lZCBlbGVtZW50
IHdob3NlIG5hbWUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0
aWFsIGFib3V0OmJsYW5rIGRvY3VtZW50OgotUEFTUyBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRG
dW5jdGlvbigpIGlzIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQicpCitQ
QVNTIGVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBCLgogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2lu
LWluYWN0aXZlLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50
Lmh0bWwKaW5kZXggZTdlNGI2MTc1ZTM0MGYyNzA4M2NmOGVmMTRiOGJlMmZhYjEyZTVhZS4uZTM2
NmY2ZGU0YWQ3YTBlM2RlMTk1MmE0NDhhYjM5ODIxZGZhNWIyZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1l
LW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3Rp
dmUtZG9jdW1lbnQuaHRtbApAQCAtMTcsMTcgKzE3LDE3IEBAIHZhciBlbGVtZW50QUluSW5hY3Rp
dmVEb2N1bWVudCA9IGZyYW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBlbGVtZW50
QUluSW5hY3RpdmVEb2N1bWVudC5pZCA9ICJBIjsKIGZyYW1lRG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudCk7CiAKLXZhciBlbGVtZW50QUluQWN0aXZl
RG9jdW1lbnRGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBB
OyIpOwotdmFyIGVsZW1lbnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uID0gZnJhbWUuY29udGVu
dFdpbmRvdy5GdW5jdGlvbigicmV0dXJuIEI7Iik7Cit2YXIgZWxlbWVudEFJbkRldGFjaGVkV2lu
ZG93RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQTsiKTsK
K3ZhciBlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5k
b3cuRnVuY3Rpb24oInJldHVybiBCOyIpOwogCiBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKQog
ewogICAgIGRlYnVnKCJMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGNvcnJlc3BvbmRz
IHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Iik7CiAg
ICAgc2hvdWxkTm90QmUoImZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQScp
IiwgImVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50Iik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnRB
SW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkiLCAiZnJhbWUuY29udGVudERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdBJykiKTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEFJbkRl
dGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICJSZWZlcmVuY2VFcnJvciIpOwogCiAgICAgZGVidWco
Ijxicj5Mb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQg
dG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoiKTsKLSAg
ICBzaG91bGRCZSgiZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSIsICJmcmFtZS5j
b250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0InKSIpOworICAgIHNob3VsZFRocm93RXJy
b3JOYW1lKCJlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIiwgIlJlZmVyZW5jZUVy
cm9yIik7CiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNvbnRl
bnRXaW5kb3ctZXZhbC1leHBlY3RlZC50eHQKaW5kZXggZjBlZThkMmE4MzYwOTBmZmYzOTdhODMx
MjkxNTZlM2E3YzYyMmY4MS4uN2ZmYTA0ZDY3ZTQ1OGZhOWI5MTgxOTRiMzRlZGNjNWE3ZDg4ODhm
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LWNvbnRlbnRXaW5kb3ctZXZhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNvbnRlbnRXaW5kb3ctZXZhbC1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogVHlwZSBl
cnJvcgogVGhpcyB0ZXN0IHBhc3NlcyBpZiBhbGVydCgpIGlzIG5vdCBjYWxsZWQuIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdp
bmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQt
d2luZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVj
dGVkLnR4dAppbmRleCA4OTVmOWJmMDMwY2ZmYmEyNDg3NGYzOTQyYThmZmQ0ZDVmMzc2YmYwLi5l
NGZhOTRkMTIyNWNmMTAzM2RiYTMxN2RmMjc4MzU0ZDM1MjA1NDU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3Bl
cnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93
LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4
dApAQCAtNCwxMCArNCwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIExvb2t1cCBu
YW1lZCBlbGVtZW50IHdob3NlIG5hbWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUg
aW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBBU1MgZWxlbWVudEFJbkFjdGl2ZURvY3Vt
ZW50RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gU2VjdXJpdHlFcnJvcjogQmxvY2tlZCBhIGZy
YW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEg
Y3Jvc3Mtb3JpZ2luIGZyYW1lLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLi4KK1BBU1MgZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSB0aHJldyBleGNl
cHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEEuCiAKIExvb2t1cCBu
YW1lZCBlbGVtZW50IHdob3NlIG5hbWUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlbGVtZW50
IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3VtZW50OgotUEFTUyBlbGVtZW50QkluQWN0
aXZlRG9jdW1lbnRGdW5jdGlvbigpIHRocmV3IGV4Y2VwdGlvbiBTZWN1cml0eUVycm9yOiBCbG9j
a2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nl
c3NpbmcgYSBjcm9zcy1vcmlnaW4gZnJhbWUuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRz
IG11c3QgbWF0Y2guLgorUEFTUyBlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRo
cmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQi4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRv
dy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9w
ZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCmluZGV4IDM1ZTQ1
NDRhMTA3YTIwNzFiZWUyZDk3MDZhYzRjMGM2YzgyMzYxYTkuLjg5M2FjYTczNGYzMmVjYThhZGQ2
ZDBhNTE4YzRlNjFlMWMyODYzNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzLURFTklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmln
aW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5LWZyb20tY3Jvc3Mtb3JpZ2lu
LWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKQEAgLTE3LDE2ICsxNywxNiBAQCB2YXIgZWxlbWVudEFJ
bkluYWN0aXZlRG9jdW1lbnQgPSBmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwog
ZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQuaWQgPSAiQSI7CiBmcmFtZURvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQpOwogCi12YXIgZWxlbWVudEFJ
bkFjdGl2ZURvY3VtZW50RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJy
ZXR1cm4gQTsiKTsKLXZhciBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbiA9IGZyYW1l
LmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBCOyIpOwordmFyIGVsZW1lbnRBSW5EZXRh
Y2hlZFdpbmRvd0Z1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0dXJu
IEE7Iik7Cit2YXIgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBmcmFtZS5jb250
ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKIAogZnJhbWUub25sb2FkID0gZnVuY3Rp
b24gKCkKIHsKICAgICBkZWJ1ZygiTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBjb3Jy
ZXNwb25kcyB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3VtZW50
OiIpCi0gICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoImVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1
bmN0aW9uKCkiLCAnU2VjdXJpdHlFcnJvcicpOworICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJl
bGVtZW50QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIiwgJ1JlZmVyZW5jZUVycm9yJyk7CiAK
ICAgICBkZWJ1ZygiPGJyPkxvb2t1cCBuYW1lZCBlbGVtZW50IHdob3NlIG5hbWUgZG9lcyBub3Qg
Y29ycmVzcG9uZCB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rIGRvY3Vt
ZW50OiIpOwotICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QkluQWN0aXZlRG9jdW1l
bnRGdW5jdGlvbigpIiwgJ1NlY3VyaXR5RXJyb3InKTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFt
ZSgiZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICdSZWZlcmVuY2VFcnJvcicp
OwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQt
YnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5k
b3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0ZWQu
dHh0CmluZGV4IDE1ZTk1NTE2YzkzNDJlYmNiMWI1NGY5ZDRmYjI0N2U5NDEzY2ZjZWIuLjNmN2E4
ZmFjMDUyMjQ3ODNmNWRjNjE5ZDA0NTQwODFiZjQ1N2I2YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dz
L25lc3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51
bGwtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIGB3aW5kb3cucGFyZW50YCBp
cyBudWxsIHdoZW4gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXIgZWxlbWVudCByZW1vdmVkIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgV2luZG93
XSIKLUZBSUwgYHdpbmRvdy5wYXJlbnRgIG51bGwgd2hlbiBwYXJlbnQgYnJvd3NpbmcgY29udGV4
dCBjb250YWluZXIgcmVtb3ZlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1dCBnb3Qg
b2JqZWN0ICJbb2JqZWN0IFdpbmRvd10iCi0KK1BBU1MgYHdpbmRvdy5wYXJlbnRgIGlzIG51bGwg
d2hlbiBicm93c2luZyBjb250ZXh0IGNvbnRhaW5lciBlbGVtZW50IHJlbW92ZWQgCitQQVNTIGB3
aW5kb3cucGFyZW50YCBudWxsIHdoZW4gcGFyZW50IGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVy
IHJlbW92ZWQgCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1l
bGVtZW50L2lmcmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNj
YXJkLWV4cGVjdGVkLnR4dAppbmRleCA0MzZhMzFjNzAyNzM5OGM4NDkyNTQ4MWM5OGVhNGM1MjI3
Y2YyZDI4Li5mMDQzZDU1MzM1YTQ4ODBhYjg0YzQzOWVmYTE4NzY2MGU5ZDFjN2I4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZS1zeW5jaHJv
bm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUt
aWZyYW1lLWVsZW1lbnQvaWZyYW1lLXN5bmNocm9ub3VzbHktZGlzY2FyZC1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgSUZyYW1lIGRpc2NhcmRzIGFyZSBwcm9jZXNzZWQgc3lu
Y2hyb25vdXNseSBhc3NlcnRfZXF1YWxzOiBjaGlsZCB3aW5kb3cgc2hvdWxkIGJlIGRpc2NhcmRl
ZCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFdpbmRvd10iCitQQVNTIElG
cmFtZSBkaXNjYXJkcyBhcmUgcHJvY2Vzc2VkIHN5bmNocm9ub3VzbHkgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351630</attachid>
            <date>2018-10-04 14:17:17 -0700</date>
            <delta_ts>2018-10-04 16:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190282-20181004141716.patch</filename>
            <type>text/plain</type>
            <size>33235</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY5ZTE1YmJkMDAzZDA5
ZWQ2NDkyN2UzY2ViMTIyODQ4NDhkYzI4Yi4uNTg2NWEwM2MwMDRiYjE1MmY1ZTkzYTNkZDgxYTNh
ODZlODkyN2RjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQSBEb2N1bWVudCAvIFdpbmRv
dyBzaG91bGQgbG9vc2UgaXRzIGJyb3dzaW5nIGNvbnRleHQgYXMgc29vbiBhcyBpdHMgaWZyYW1l
IGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxkIGxvb3NlIGl0
cyBicm93c2luZyBjb250ZXh0IChha2EgRnJhbWUpIGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyBy
ZW1vdmVkIGZyb20KKyAgICAgICAgdGhlIGRvY3VtZW50LiBJbiBXZWJLaXQsIGEgRG9jdW1lbnQg
LyBXaW5kb3cncyBGcmFtZSB3YXMgb25seSBnZXR0aW5nIG51bGxlZCBvdXQgd2hlbiB0aGUgZnJh
bWUgZ2V0cworICAgICAgICBkZXN0cm95ZWQsIHdoaWNoIGhhcHBlbnMgbGF0ZXIgdXN1YWxseSBh
ZnRlciBhIEdDIGhhcHBlbnMuCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN0aGUtaWZyYW1lLWVsZW1lbnQKKyAgICAgICAg
IiIiCisgICAgICAgIFdoZW4gYW4gaWZyYW1lIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9j
dW1lbnQsIHRoZSB1c2VyIGFnZW50IG11c3QgZGlzY2FyZCB0aGUgZWxlbWVudCdzIG5lc3RlZCBi
cm93c2luZworICAgICAgICBjb250ZXh0LCBpZiBpdCBpcyBub3QgbnVsbCwgYW5kIHRoZW4gc2V0
IHRoZSBlbGVtZW50J3MgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgdG8gbnVsbC4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgVGhpcyB3YXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGUgc3BlY2lmaWNh
dGlvbiBvciBvdGhlciBicm93c2VycyAodGVzdGVkIENocm9tZSBhbmQgRmlyZWZveCkgc28gdGhp
cworICAgICAgICBwYXRjaCBpcyBhbGlnbmluZyBvdXIgYmVoYXZpb3IuCisKKyAgICAgICAgSW4g
YSBmb2xsb3ctdXAsIEkgYW0gcGxhbm5pbmcgdG8gbG9vayBpbnRvIG1ha2luZyB0aGUgV2luZG93
IG5vdCBiZSBhIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciwgYW5kIGluc3RlYWQKKyAgICAgICAg
Z2V0IGl0cyBmcmFtZSBmcm9tIHRoZSBEb2N1bWVudC4gVGhpcyBzaG91bGQgbWFrZSB0aGUgY29k
ZSBzaW1wbGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgVXBk
YXRlIGdldFVzZXJNZWRpYSgpIHRvIHJlamVjdCBhIHRoZSBQcm9taXNlIHdpdGggYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiBjYWxsaW5nIGFmdGVyIHRoZQorICAgICAgICBkb2N1bWVudCBoYXMg
YmVlbiBkZXRhY2hlZCwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBJbnZhbGlkU3RhdGVFcnJvci4g
VGhpcyBiZWhhdmlvciBpcyBhcyBwZXIKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAg
LSBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2RvbS1tZWRpYWRldmlj
ZXMtZ2V0dXNlcm1lZGlhIChTdGVwIDQpCisgICAgICAgIEkgbmVlZGVkIHRvIG1ha2UgdGhpcyBj
aGFuZ2UgdG8ga2VlcCBvbmUgb2Ygb3VyIGxheW91dCB0ZXN0cyBwYXNzaW5nLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphdHRhY2hU
b0NhY2hlZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXRhY2hGcm9tRnJh
bWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRv
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6d2lsbERldGFjaERvY3VtZW50RnJvbUZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV0YWNoRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1Byb3BlcnR5OjpkaXNjb25uZWN0RnJhbWVGb3JEb2N1bWVudFN1c3BlbnNpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFs
T2JqZWN0SW5DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KToK
KworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KToKKyAg
ICAgICAgQ2FsbGluZyBkcmF3VGV4dCgpIHdpdGggYSBudWxsIFN0cmluZyBoaXRzIGFuIGFzc2Vy
dGlvbiBpbiBkZWJ1Zy4gVGhpcyB3YXMgdHJpZ2dlcmVkIGJ5IG9uZSBvZgorICAgICAgICBvdXIg
bGF5b3V0IHRlc3RzIHNvIEkgbWFkZSBzdXJlIHdlIG9ubHkgY2FsbCBkcmF3VGV4dCB3aGVuIHRo
ZSBTdHJpbmcgaXMgbm90IG51bGwuCisKIDIwMTgtMTAtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBpbnB1dC5jaGVja2VkIGlzIGluY29ycmVjdCB3aGlsZSB3
ZSdyZSBwYXJzaW5nIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDY5MGZmMzY2ZThmMGUxZjYyYmFk
MDBhNDRjMjYxMGZlMTAxNWNmMTUuLjkxYzUxYWQyNDUyMDVhMGU0NTc0NmQ2YTUxMTc1MWFiMmVh
ZGJiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKQEAgLTk2LDExICs5NiwxMyBAQCBzdGF0aWMgTWVkaWFDb25zdHJhaW50
cyBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0Nv
bgogICAgICk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1l
ZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21p
c2UpIGNvbnN0Cit2b2lkIE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAg
YXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIGF1ZGlvQ29u
c3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKICAg
ICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzLnZpZGVvKTsKQEAgLTExMSw3ICsxMTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURl
dmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludAog
ICAgIGlmIChyZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LT5zdGFydCgpOwogCi0gICAgcmV0dXJu
IHsgfTsKKyAgICByZXR1cm47CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6
Z2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJv
bWlzZSYmIHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCA3YjJjN2NhOTcxZDYyOTU1N2IxMWFkODM1MGY3
NDcwNjA5ZWY5MTYwLi43Y2RhMWViOTVmMjkyMjFkNzQzNGQ3YjQwYTNlNjA3MDkxMmIyNWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlh
VHJhY2tDb25zdHJhaW50cz4gdmlkZW87CiAgICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzPiBhdWRpbzsKICAgICB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVz
ZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CisgICAg
dm9pZCBnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNv
bnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1D
b25zdHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2Vz
KEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYpIGNvbnN0OwogICAgIE1lZGlhVHJhY2tTdXBwb3J0
ZWRDb25zdHJhaW50cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZjU4ZWIyZTU5Y2IwZDhiMTFjYjVhNTY0MmMwMWU0MWZiYmVjOGRlZi4uZDYw
OWY4YzVjMjhmZjRlNTA5NTNlNGQ4YmZlZjkzN2ViOTNmMDhjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yMzM5LDYgKzIzMzksOCBAQCB2b2lkIERvY3VtZW50OjphdHRhY2hUb0NhY2hl
ZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAgQVNTRVJUKGNhY2hlZEZy
YW1lLnZpZXcoKSk7CiAgICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgPT0gRG9jdW1lbnQ6Oklu
UGFnZUNhY2hlKTsKICAgICBvYnNlcnZlRnJhbWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUo
KSk7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ct
PmF0dGFjaFRvRnJhbWUoY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgpKTsKIH0KIAogdm9pZCBE
b2N1bWVudDo6ZGV0YWNoRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJh
bWUpCkBAIC04MjUwLDQgKzgyNTIsMTIgQEAgYm9vbCBEb2N1bWVudDo6cmVnaXN0ZXJDU1NQcm9w
ZXJ0eShDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkmJiBwcm9wKQogICAgIHJldHVybiBtX0NT
U1JlZ2lzdGVyZWRQcm9wZXJ0eVNldC5hZGQocHJvcC5uYW1lLCBzdGQ6Om1ha2VfdW5pcXVlPENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eT4oV1RGTW92ZShwcm9wKSkpLmlzTmV3RW50cnk7CiB9
CiAKK3ZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgaWYgKGF1dG8qIHdp
bmRvdyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPndpbGxEZXRhY2hEb2N1bWVudEZy
b21GcmFtZSgpOworCisgICAgb2JzZXJ2ZUZyYW1lKG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGE3OTZiNDkwN2MxMjE1OGMwNmJm
YTYyNTMxZDhmMTdlY2UwYWFjNDIuLmFlMTZkNDg4ZmJjYjhmOTY4YTA3YTdlNDhhZjExMWFlOGQ4
ZWU5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTAxLDYgKzE1MDEsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRBc1J1bm5pbmdVc2VyU2NyaXB0cygpIHsgbV9pc1J1bm5pbmdVc2VyU2Ny
aXB0cyA9IHRydWU7IH0KICAgICBib29sIGlzUnVubmluZ1VzZXJTY3JpcHRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1J1bm5pbmdVc2VyU2NyaXB0czsgfQogCisgICAgdm9pZCBkZXRhY2hGcm9tRnJh
bWUoKTsKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVz
aXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVu
c2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CkBAIC0xNTE4LDggKzE1MjAsNiBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBzaG91bGRJbmhlcml0Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbU93
bmVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRldGFjaEZyb21GcmFtZSgpIHsgb2JzZXJ2ZUZyYW1l
KG51bGxwdHIpOyB9Ci0KICAgICB2b2lkIHVwZGF0ZVRpdGxlRWxlbWVudChFbGVtZW50JiBjaGFu
Z2luZ1RpdGxlRWxlbWVudCk7CiAgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggN2JkZTFjYmI4YjYzNzFlN2E3YTA4YmE1NTFl
ODU2YjgxOTJmNjBmYy4uZjZhYTIzYzk4YWY4ZWQ1MzE2MGYzOWI5YWZlNDVkMzMxM2Q4ZTMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNDE0LDYgKzQxNCw3IEBAIERPTVdpbmRv
dzo6RE9NV2luZG93KERvY3VtZW50JiBkb2N1bWVudCkKIHZvaWQgRE9NV2luZG93OjpkaWRTZWN1
cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIG9ic2VydmVDb250ZXh0
KCZkb2N1bWVudCk7CisgICAgb2JzZXJ2ZUZyYW1lKGRvY3VtZW50LmZyYW1lKCkpOwogfQogCiBE
T01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTExLDYgKzUxMiw4IEBAIHZvaWQgRE9NV2luZG93
Ojp3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKQogCiAgICAgaWYgKG1fcGVyZm9ybWFuY2Up
CiAgICAgICAgIG1fcGVyZm9ybWFuY2UtPmNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7CisKKyAgICBk
ZXRhY2hGcm9tRnJhbWUoKTsKIH0KIAogI2lmIEVOQUJMRShHQU1FUEFEKQpAQCAtMTQwMiw3ICsx
NDA1LDE3IEBAIHZvaWQgRE9NV2luZG93OjpzZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91
bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCiAg
ICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwot
fSAKK30KKwordm9pZCBET01XaW5kb3c6OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgb2JzZXJ2
ZUZyYW1lKG51bGxwdHIpOworfQorCit2b2lkIERPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZShGcmFt
ZSYgZnJhbWUpCit7CisgICAgb2JzZXJ2ZUZyYW1lKCZmcmFtZSk7Cit9CiAgICAgCiB2b2lkIERP
TVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAppbmRleCBlMmY0OWQxOTAzZjRhYzQ5YmQ2ODgxODQ0Y2Y4NzQ0NzI0
Y2FhZGVjLi4zZWQ0NzAzN2Y4MWMyNTExZWExNDE4NDIwZThhOTJhYWIyMDI5MjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKQEAgLTMzMyw2ICszMzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3
aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKTsKICAgICB2b2lkIHdpbGxEZXN0cm95Q2FjaGVk
RnJhbWUoKTsKIAorICAgIHZvaWQgYXR0YWNoVG9GcmFtZShGcmFtZSYpOworICAgIHZvaWQgZGV0
YWNoRnJvbUZyYW1lKCk7CisKICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAg
ICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvd1Byb3BlcnR5LmNwcAppbmRleCA1NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlhN2U1
YzYwOWVkNTBmODU3Li4yYzIxOGVkYmEzMzQ3YzQ5MzM4NWQxMjcyZTM0MWE4YTQxNjEzMWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNTcsOSArNTcs
NiBAQCBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1Byb3BlcnR5KCkKIAogdm9pZCBET01X
aW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVjdEZyYW1lRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKIHsK
LSAgICAvLyBJZiB0aGlzIHByb3BlcnR5IGlzIGJlaW5nIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBG
cmFtZSB0byBlbnRlciB0aGUgUGFnZUNhY2hlLCBpdCBtdXN0IGhhdmUKLSAgICAvLyBiZWVuIGNy
ZWF0ZWQgd2l0aCBhIEZyYW1lIGluIHRoZSBmaXJzdCBwbGFjZS4KLSAgICBBU1NFUlQobV9mcmFt
ZSk7CiAgICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAKICAgICBtX2ZyYW1lID0g
bnVsbHB0cjsKQEAgLTkzLDggKzkwLDYgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERl
c3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkKIAogdm9pZCBET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJv
cGVydHkgaXMgZ2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQg
d2l0aCBhIEZyYW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAg
ICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAK
ICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBpc24ndCB0aWVkIGRpcmVjdGx5IHRv
IHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IHVucmVnaXN0
ZXIKQEAgLTEwNyw5ICsxMDIsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJv
eUdsb2JhbE9iamVjdEluRnJhbWUoKQogCiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGV0
YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMg
Z2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgd2l0aCBhIEZy
YW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAgICBBU1NFUlQo
bV9mcmFtZSk7Ci0gICAgQVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CisgICAgbV9mcmFt
ZSA9IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggMTkzZWM3NzViMGZl
MzY2ZDA4YzE4NmI1MjMwZDBmMGM4MzgyZjE4Ni4uY2JlNDVlMzg1Y2FlODIxZjEzYmQ2NGRlOTgx
ZGVkOWQwODNiZDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTgzMSw2ICs4MzEsOSBAQCB2
b2lkIEZyYW1lOjpkaXNjb25uZWN0T3duZXJFbGVtZW50KCkKICAgICAgICAgICAgIG1fcGFnZS0+
ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwogICAgIH0KICAgICBtX293bmVyRWxlbWVudCA9IG51
bGxwdHI7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+ZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKIFN0cmluZyBGcmFtZTo6ZGlz
cGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhjb25zdCBTdHJpbmcmIHN0cikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKaW5kZXggZDQ3MDZiYzVmZGNiYTYyNGQ4NTY0MmRiN2VmNjg4NGNjZDQ1YTA0
Yy4uOGZlNGM1ZGRjYjVjMWZkNWM2MWU0N2Q1ZDQxZDhmOTI3ZTgzNzgzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpk
cmF3VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIHN0cmluZyA9IFN0cmlu
Zzo6Zm9ybWF0KCJDYW1lcmE6ICVzIiwgY2FtZXJhKTsKICAgICAgICAgc3RhdHNMb2NhdGlvbi5t
b3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNG
b250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7Ci0gICAg
fSBlbHNlIHsKKyAgICB9IGVsc2UgaWYgKCFuYW1lKCkuaXNOdWxsKCkpIHsKICAgICAgICAgc3Rh
dHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJh
d1RleHQoc3RhdHNGb250LCBUZXh0UnVuIHsgbmFtZSgpIH0sIHN0YXRzTG9jYXRpb24pOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAwNGU1ZDRjMDM1ZmE2MWNmZDY1MmMyMjEyZWNmZjgzZTIwYzczMmVjLi45ZTUy
MmUyZjlmYWZhM2QwMDMwNDRmNzk0ZDc1YjFjM2Y4NTE4NTAwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTgtMTAtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBIERvY3VtZW50IC8gV2luZG93IHNob3VsZCBsb29zZSBpdHMgYnJvd3NpbmcgY29udGV4dCBh
cyBzb29uIGFzIGl0cyBpZnJhbWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5n
IGxheW91dCB0ZXN0IHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZmFz
dC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUtcmVtb3ZlZC5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13
aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtY2hp
bGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3Mt
ZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jl
c291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1s
OgorICAgICAgICAqIGZhc3QvcGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3Jp
cHQtdXJsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlz
Y29ubmVjdGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93
TG9hZC5qczoKKyAgICAgICAgKGNoZWNrRGlkTG9hZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1k
b2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1l
ZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93
LWV2YWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQuaHRtbDoKKwogMjAxOC0xMC0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgRW5hYmxlIEgyNjQgc2ltdWxjYXN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBkMjFjMDUzMjRlZTY1MmE1YjE1NmM2MTJmNTc5NGJiOTE2OTdlNWEwLi44
YjBkNzdkM2VhMDI0ODM5ODRmNmQ1MWI4M2EzOWI4ZWM3NDNkNjE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMC0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxk
IGxvb3NlIGl0cyBicm93c2luZyBjb250ZXh0IGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyByZW1v
dmVkIGZyb20gdGhlIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAyODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWJhc2VsaW5lIHNldmVyYWwgV1BUIHRlc3RzIHRoYXQgYXJlIG5vdyBw
YXNzaW5nLiBJIGhhdmUgdmVyaWZpZWQgdGhhdCB0aG9zZSB0ZXN0cyBhcmUgYWxzbyBwYXNzaW5n
IGluCisgICAgICAgIEZpcmVmb3ggYW5kIENocm9tZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dp
bmRvdy1wYXJlbnQtbnVsbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lm
cmFtZS1zeW5jaHJvbm91c2x5LWRpc2NhcmQtZXhwZWN0ZWQudHh0OgorCiAyMDE4LTEwLTAzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaW5wdXQuY2hlY2tlZCBp
cyBpbmNvcnJlY3Qgd2hpbGUgd2UncmUgcGFyc2luZyBpdHMgY2hpbGRyZW4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJlbW92ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJl
bW92ZWQuaHRtbAppbmRleCA0ZjY3NzNiNGQ3YzRmZTY5ZTk4ZGI5ZDE5YTQ2YjZlNTQxZjIzNzZj
Li5kYzgyOWZkZmQzYThmYTMyMTk0NGZlZDk1Zjk1MmNmOGFkZjJmYjc4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvQmFySW5mby1hZnRlci1mcmFtZS1yZW1vdmVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJhbWUt
cmVtb3ZlZC5odG1sCkBAIC0xNSw3ICsxNSw5IEBACiAgICAgICAgIHZhciBmcmFtZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZSIpOwogICAgICAgICB2YXIgY2hpbGRXaW5kb3cgPSBm
cmFtZS5jb250ZW50V2luZG93OwogICAgICAgICBmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGZyYW1lKTsKLSAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAgICB9
IGNhdGNoIChlKSB7IH0KICAgICAgICAgCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuZmlyc3RDaGlsZC5kYXRhID0gIlRFU1QgUkFOIjsKICAgICB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUt
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNj
ZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDBmMzhkZDcxMDc2Nzg1
OWY2ZDQzNWJmOWU2ZDkxZjRmYWI5MThhN2UuLmZmOTIwYzYwYzQyNzUxZTY5M2JhNjZhZjAxMDJk
NDJlNzUzYTI5ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1s
CiB3aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3Vy
Y2VzL25vdGlmeS1wYXJlbnQtZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZTogCiB3aW5kb3cu
bmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Rv
bS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4
dAppbmRleCBlNzBjMGRiMjc4ODRmZDgzZTM1MjdlYzQ5MDAyYmRhOWM3NjJjZDBlLi44NjFmMjhm
MjQ4NjlhNjQyZDQ0ODRmNjk4YTk5YTE3MmIwMWY3MGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNs
b3N1cmUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xv
c3VyZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTog
Y2hpbGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1n
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1m
cm9tLWNsb3N1cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CmluZGV4IGU3MGMwZGIyNzg4
NGZkODNlMzUyN2VjNDkwMDJiZGE5Yzc2MmNkMGUuLjg2MWYyOGYyNDg2OWE2NDJkNDQ4NGY2OThh
OTlhMTcyYjAxZjcwYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9k
b20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRv
dy13aXRoLWdjLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTogY2hp
bGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1l
LWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1h
Y2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCmluZGV4IDQ1NTBkMTJlNTI4NzNj
NzRiNjM4NGI2NmM2NTE2OTNkNzk2ZjY3MDMuLjZiY2M2MGFiYTUxOTA0YWYxYjg0ZjM1ZTQ3YzJl
ZTYzYTM3NzAyMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNv
dXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS1pZnJhbWUtY2hpbGQuaHRtbApAQCAtMSw0ICsxLDYgQEAKIDxzY3JpcHQ+CisgICAgcCA9IHBh
cmVudDsgLy8gU2F2ZSBwYXJlbnQgYXMgdGhlIHdpbmRvdyB3aWxsIGJlIGRldGFjaGVkIHdoZW4g
YWNjZXNzRnJhbWUoKSBpcyBjYWxsZWQuCisKICAgICBwYXJlbnQuYWNjZXNzRnJhbWUgPSBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBub3JtYWxpemVVUkwodXJsKQpAQCAtNywx
MiArOSwxMiBAQAogICAgICAgICB9CiAKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHBhcmVu
dC5sb2coImRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTChkb2N1bWVudC5VUkwpKTsKLSAg
ICAgICAgICAgIHBhcmVudC5sb2coIndpbmRvdy5kb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVV
Ukwod2luZG93LmRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgcGFyZW50LmxvZygibmFtZTog
IiArIG5hbWUpOwotICAgICAgICAgICAgcGFyZW50LmxvZygid2luZG93Lm5hbWU6ICIgKyB3aW5k
b3cubmFtZSk7CisgICAgICAgICAgICBwLmxvZygiZG9jdW1lbnQuVVJMOiAiICsgbm9ybWFsaXpl
VVJMKGRvY3VtZW50LlVSTCkpOworICAgICAgICAgICAgcC5sb2coIndpbmRvdy5kb2N1bWVudC5V
Ukw6ICIgKyBub3JtYWxpemVVUkwod2luZG93LmRvY3VtZW50LlVSTCkpOworICAgICAgICAgICAg
cC5sb2coIm5hbWU6ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIHAubG9nKCJ3aW5kb3cubmFtZTog
IiArIHdpbmRvdy5uYW1lKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcGFy
ZW50LmxvZygiQW4gZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOworICAgICAg
ICAgICAgcC5sb2coIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duOiAiICsgZS5tZXNzYWdlKTsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1
cmUtd2luZG93LWNoaWxkLmh0bWwKaW5kZXggMzY5MTA5NTQ4MjRiNzZjNzE3MmJkMzNlNGQ2Y2M3
ZmEwNzdiN2VkZS4uNDA3OTNhZGViZDc1ZTdmNTVlZjE1MTNlNTFlMDdkZTc1MDVkZmE2ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5o
dG1sCkBAIC0xLDQgKzEsNiBAQAogPHNjcmlwdD4KKyAgICBvID0gb3BlbmVyOyAvLyBTYXZlIG9w
ZW5lciBhcyB0aGUgd2luZG93IHdpbGwgYmUgZGV0YWNoZWQgd2hlbiBhY2Nlc3NGcmFtZSgpIGlz
IGNhbGxlZC4KKwogICAgIG9wZW5lci5hY2Nlc3NGcmFtZSA9IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVSTCh1cmwpCkBAIC03LDEyICs5LDEyIEBACiAgICAg
ICAgIH0KIAogICAgICAgICB0cnkgewotICAgICAgICAgICAgb3BlbmVyLmxvZygiZG9jdW1lbnQu
VVJMOiAiICsgbm9ybWFsaXplVVJMKGRvY3VtZW50LlVSTCkpOwotICAgICAgICAgICAgb3BlbmVy
LmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6ZVVSTCh3aW5kb3cuZG9jdW1l
bnQuVVJMKSk7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJuYW1lOiAiICsgbmFtZSk7Ci0gICAg
ICAgICAgICBvcGVuZXIubG9nKCJ3aW5kb3cubmFtZTogIiArIHdpbmRvdy5uYW1lKTsKKyAgICAg
ICAgICAgIG8ubG9nKCJkb2N1bWVudC5VUkw6ICIgKyBub3JtYWxpemVVUkwoZG9jdW1lbnQuVVJM
KSk7CisgICAgICAgICAgICBvLmxvZygid2luZG93LmRvY3VtZW50LlVSTDogIiArIG5vcm1hbGl6
ZVVSTCh3aW5kb3cuZG9jdW1lbnQuVVJMKSk7CisgICAgICAgICAgICBvLmxvZygibmFtZTogIiAr
IG5hbWUpOworICAgICAgICAgICAgby5sb2coIndpbmRvdy5uYW1lOiAiICsgd2luZG93Lm5hbWUp
OwogICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICBvcGVuZXIubG9nKCJBbiBleGNl
cHRpb24gd2FzIHRocm93bjogIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICBvLmxvZygiQW4g
ZXhjZXB0aW9uIHdhcyB0aHJvd246ICIgKyBlLm1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvYmVmb3JlLXVu
bG9hZC1yZXR1cm4tc3RyaW5nLWNvbnZlcnNpb24tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lv
bi1mcmFtZS5odG1sCmluZGV4IDczODdmYmVjMDBmZjE3NTkxMzAyOWM0YTZkMDk4MGIxMGJhMzUx
OTIuLmJkMTZkZTQyMzNjZDFkZjVhM2I0NDYxZTExYjYzNTJiOTNkZmNkNjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1z
dHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5o
dG1sCkBAIC0xNCw5ICsxNCw3IEBAIHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKSB7CiAgICAg
ICAgIHBhcmVudC5zaG91bGRCZVRydWUoImV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQiKTsKICAgICAg
ICAgcGFyZW50LnNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQucmV0dXJuVmFsdWUiLCAiUEFT
UyIpOwogICAgICAgICBwYXJlbnQuc2hvdWxkQmVUcnVlKCJ0b1N0cmluZ0NhbGxlZCIpOwotICAg
ICAgICBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHBhcmVudC5m
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSwgMCk7CisgICAgICAgIHBhcmVudC5maW5pc2hKU1Rl
c3QoKTsKICAgICB9CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2Fk
IiwgbGlzdGVuZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3Vy
Y2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL3Jlc291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWwKaW5kZXgg
YTY0YjlhMDMzNWIwMjIwYTNmY2VjODY5N2I1NzdkZjZiMWI0MTk0Ni4uNzZmNzcyYmZkMGEzMWIz
NTBlNTg3ZDk1Yjg1NTQ4OTY0ZjY3ZDE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
YXJzZXIvcmVzb3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvc2V0LXBhcmVudC10by1qYXZhc2NyaXB0
LXVybC5odG1sCkBAIC0xLDYgKzEsNyBAQAogPHNjcmlwdD4KK3AgPSBwYXJlbnQ7CiBhbGVydCgx
KTsKLXBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uc3Jj
ID0gImphdmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwvc2NyaXB0Pici
OworcC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF0uc3JjID0gImph
dmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwvc2NyaXB0PiciOwogYWxl
cnQoNCk7Ci1wYXJlbnQuc2V0VGltZW91dCgiZG9uZSgpIiwgMCk7CitwLnNldFRpbWVvdXQoImRv
bmUoKSIsIDApOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCmlu
ZGV4IDBmOTcyYzk3YjcyNGE4NWIzODk0NWFjNDI0MTI4YTE3ZDM3OTJmYTIuLjZkYjRiNGU5ZDA1
NDM3ZGE1M2YzNDE2ZTY3MDI1M2ZjMjBmZDFkMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS5odG1sCkBAIC0xMiwyNyArMTIsMjkgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKIAogZnVuY3Rpb24gb25J
ZnJhbWVMb2FkZWQoKSB7Ci0gICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5k
b3cubmF2aWdhdG9yOworICAgIGlmcmFtZU1lZGlhRGV2aWNlcyA9IGlmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CiAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgIG9u
SWZyYW1lVW5sb2FkZWQoKTsKIH0KIAogZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAg
ICBoYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0RmFpbGVkKCdU
aW1lb3V0OiBwcm9taXNlIHJlc29sdmUgYW5kIHJlamVjdCBmdW5jdGlvbnMgbm90IGNhbGxlZC4n
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKKwogICAgIHZhciBvcHRp
b25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci0gICAgaWZyYW1lTmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICBpZnJhbWVNZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKG9wdGlvbnMpCiAgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CiAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdQcm9taXNlIHJlc29sdmVkIHVuZXhwZWN0ZWRseS4nKTsKKyAgICAg
ICAgICAgIGNsZWFyVGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgICAgIH0pCiAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgdGVzdFBh
c3NlZCgnUHJvbWlzZSByZWplY3RlZCBhcyBleHBlY3RlZC4nKTsKKyAgICAgICAgICAgIGNsZWFy
VGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0p
OwotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnVGlt
ZW91dDogcHJvbWlzZSByZXNvbHZlIGFuZCByZWplY3QgZnVuY3Rpb25zIG5vdCBjYWxsZWQuJyk7
Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIDEwMCk7CiB9CiAKIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9j
aGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvY2hlY2tEaWRTYW1l
T3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCmluZGV4IDkxODYwYjI4NzEyYzdmMGM2YTVlZjc4N2Q1
NTA2MDI2ZWI0ODRmNzkuLjFlNjg0N2VhZTNiMDgwOGQzNzE2YzgxMTg3YzVkODYxNjJhMDI5YzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9jaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5qcwpAQCAtOCwx
MiArOCw1IEBAIGZ1bmN0aW9uIGNoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZEFuZE5v
dGlmeURvbmUoY2hpbGRXaW5kb3cpCiAKIGZ1bmN0aW9uIGNoZWNrRGlkU2FtZU9yaWdpbkNoaWxk
V2luZG93TG9hZChjaGlsZFdpbmRvdywgY2FsbGJhY2spCiB7Ci0gICAgZnVuY3Rpb24gY2hlY2tE
aWRMb2FkKCkgewotICAgICAgICBpZiAoY2hpbGRXaW5kb3cuZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luICE9PSBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIC8vIENoaWxkIHdpbmRvdyBkaWQgbG9hZAotICAgICAgICB3aW5kb3cuY2xlYXJJbnRl
cnZhbChpbnRlcnZhbElEKTsKLSAgICAgICAgY2FsbGJhY2soKQotICAgIH0KLSAgICBpbnRlcnZh
bElEID0gd2luZG93LnNldEludGVydmFsKGNoZWNrRGlkTG9hZCwgMTApOworICAgIGNoaWxkV2lu
ZG93Lm9ubG9hZCA9IGNhbGxiYWNrOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFj
dGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3Vt
ZW50LWV4cGVjdGVkLnR4dAppbmRleCAwNzE4YWQ1ZDE5ZjgxZjFjMDVjYzRiZjgyYmY1OTYwMDg4
M2IxMWVjLi5hYjIwYjk3NDNmNTMzOGFmZTVjYjIzYTAxNzA5MzRkMGMwNjNjNTBmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0
eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9t
LXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwx
MCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9z
ZSBuYW1lIGNvcnJlc3BvbmRzIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6Ymxh
bmsgZG9jdW1lbnQ6CiBQQVNTIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
QScpIGlzIG5vdCBlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudAotUEFTUyBlbGVtZW50QUluQWN0
aXZlRG9jdW1lbnRGdW5jdGlvbigpIGlzIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnQScpCitQQVNTIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkgdGhyZXcg
ZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBLgogCiBMb29r
dXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxl
bWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBBU1MgZWxlbWVudEJJ
bkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSBpcyBmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ0InKQorUEFTUyBlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRo
cmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQi4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHkt
ZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1p
bmFjdGl2ZS1kb2N1bWVudC5odG1sCmluZGV4IGU3ZTRiNjE3NWUzNDBmMjcwODNjZjhlZjE0Yjhi
ZTJmYWIxMmU1YWUuLmUzNjZmNmRlNGFkN2EwZTNkZTE5NTJhNDQ4YWIzOTgyMWRmYTViMmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXBy
b3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNh
bWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIg
ZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQgPSBmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQuaWQgPSAiQSI7CiBmcmFtZURvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQpOwogCi12YXIg
ZWxlbWVudEFJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1
bmN0aW9uKCJyZXR1cm4gQTsiKTsKLXZhciBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlv
biA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBCOyIpOwordmFyIGVsZW1l
bnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlv
bigicmV0dXJuIEE7Iik7Cit2YXIgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBm
cmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKIAogZnJhbWUub25sb2Fk
ID0gZnVuY3Rpb24gKCkKIHsKICAgICBkZWJ1ZygiTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2Ug
bmFtZSBjb3JyZXNwb25kcyB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5r
IGRvY3VtZW50OiIpOwogICAgIHNob3VsZE5vdEJlKCJmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ0EnKSIsICJlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudCIpOwotICAgIHNo
b3VsZEJlKCJlbGVtZW50QUluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwgImZyYW1lLmNvbnRl
bnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQScpIik7CisgICAgc2hvdWxkVGhyb3dFcnJvck5h
bWUoImVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAiUmVmZXJlbmNlRXJyb3Ii
KTsKIAogICAgIGRlYnVnKCI8YnI+TG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBkb2Vz
IG5vdCBjb3JyZXNwb25kIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6Ymxhbmsg
ZG9jdW1lbnQ6Iik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0
aW9uKCkiLCAiZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCJykiKTsKKyAg
ICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24o
KSIsICJSZWZlcmVuY2VFcnJvciIpOwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY29udGVudFdp
bmRvdy1ldmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CmluZGV4IGYwZWU4ZDJh
ODM2MDkwZmZmMzk3YTgzMTI5MTU2ZTNhN2M2MjJmODEuLjdmZmEwNGQ2N2U0NThmYTliOTE4MTk0
YjM0ZWRjYzVhN2Q4ODg4ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2
YWwtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IKIFRoaXMgdGVzdCBwYXNzZXMgaWYgYWxlcnQoKSBpcyBub3Qg
Y2FsbGVkLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
LURFTklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUt
ZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2
ZS1kb2N1bWVudC1leHBlY3RlZC50eHQKaW5kZXggODk1ZjliZjAzMGNmZmJhMjQ4NzRmMzk0MmE4
ZmZkNGQ1ZjM3NmJmMC4uZTRmYTk0ZDEyMjVjZjEwMzNkYmEzMTdkZjI3ODM1NGQzNTIwNTQ1NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5h
bWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVO
SUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1
bWVudC1leHBlY3RlZC50eHQKQEAgLTQsMTAgKzQsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIAogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGNvcnJlc3BvbmRzIHRvIGFu
IGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Ci1QQVNTIGVsZW1l
bnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFNlY3VyaXR5RXJy
b3I6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGNyb3NzLW9yaWdpbiBmcmFtZS4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4uCitQQVNTIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0
aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBBLgogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3Bv
bmQgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBB
U1MgZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gU2Vj
dXJpdHlFcnJvcjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgY3Jvc3Mtb3JpZ2luIGZyYW1lLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLi4KK1BBU1MgZWxlbWVudEJJbkRldGFjaGVkV2lu
ZG93RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1u
YW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQu
aHRtbAppbmRleCAzNWU0NTQ0YTEwN2EyMDcxYmVlMmQ5NzA2YWM0YzBjNmM4MjM2MWE5Li44OTNh
Y2E3MzRmMzJlY2E4YWRkNmQwYTUxOGM0ZTYxZTFjMjg2MzU5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5
LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1m
cm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCkBAIC0xNywxNiArMTcsMTYg
QEAgdmFyIGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50ID0gZnJhbWVEb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKIGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50LmlkID0gIkEiOwogZnJh
bWVEb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50KTsK
IAotdmFyIGVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uID0gZnJhbWUuY29udGVudFdp
bmRvdy5GdW5jdGlvbigicmV0dXJuIEE7Iik7Ci12YXIgZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50
RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKK3Zh
ciBlbGVtZW50QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cu
RnVuY3Rpb24oInJldHVybiBBOyIpOwordmFyIGVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0
aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0dXJuIEI7Iik7CiAKIGZyYW1l
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCiB7CiAgICAgZGVidWcoIkxvb2t1cCBuYW1lZCBlbGVtZW50
IHdob3NlIG5hbWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91
dDpibGFuayBkb2N1bWVudDoiKQotICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QUlu
QWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwgJ1NlY3VyaXR5RXJyb3InKTsKKyAgICBzaG91bGRU
aHJvd0Vycm9yTmFtZSgiZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICdSZWZl
cmVuY2VFcnJvcicpOwogCiAgICAgZGVidWcoIjxicj5Mb29rdXAgbmFtZWQgZWxlbWVudCB3aG9z
ZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBh
Ym91dDpibGFuayBkb2N1bWVudDoiKTsKLSAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVu
dEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSIsICdTZWN1cml0eUVycm9yJyk7CisgICAgc2hv
dWxkVGhyb3dFcnJvck5hbWUoImVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAn
UmVmZXJlbmNlRXJyb3InKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3dpbmRvd3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dpbmRvdy1wYXJlbnQtbnVsbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVu
dC1udWxsLWV4cGVjdGVkLnR4dAppbmRleCAxNWU5NTUxNmM5MzQyZWJjYjFiNTRmOWQ0ZmIyNDdl
OTQxM2NmY2ViLi4zZjdhOGZhYzA1MjI0NzgzZjVkYzYxOWQwNDU0MDgxYmY0NTdiNmJmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1u
dWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMv
d2luZG93LXBhcmVudC1udWxsLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBg
d2luZG93LnBhcmVudGAgaXMgbnVsbCB3aGVuIGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyIGVs
ZW1lbnQgcmVtb3ZlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0
ICJbb2JqZWN0IFdpbmRvd10iCi1GQUlMIGB3aW5kb3cucGFyZW50YCBudWxsIHdoZW4gcGFyZW50
IGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyIHJlbW92ZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBXaW5kb3ddIgotCitQQVNTIGB3aW5kb3cu
cGFyZW50YCBpcyBudWxsIHdoZW4gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXIgZWxlbWVudCBy
ZW1vdmVkIAorUEFTUyBgd2luZG93LnBhcmVudGAgbnVsbCB3aGVuIHBhcmVudCBicm93c2luZyBj
b250ZXh0IGNvbnRhaW5lciByZW1vdmVkIAorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lLXN5
bmNocm9ub3VzbHktZGlzY2FyZC1leHBlY3RlZC50eHQKaW5kZXggNDM2YTMxYzcwMjczOThjODQ5
MjU0ODFjOThlYTRjNTIyN2NmMmQyOC4uZjA0M2Q1NTMzNWE0ODgwYWI4NGM0MzllZmExODc2NjBl
OWQxYzdiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVu
dC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZS1zeW5jaHJvbm91c2x5LWRpc2Nh
cmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIElGcmFtZSBkaXNjYXJkcyBh
cmUgcHJvY2Vzc2VkIHN5bmNocm9ub3VzbHkgYXNzZXJ0X2VxdWFsczogY2hpbGQgd2luZG93IHNo
b3VsZCBiZSBkaXNjYXJkZWQgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBX
aW5kb3ddIgorUEFTUyBJRnJhbWUgZGlzY2FyZHMgYXJlIHByb2Nlc3NlZCBzeW5jaHJvbm91c2x5
IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351642</attachid>
            <date>2018-10-04 16:40:01 -0700</date>
            <delta_ts>2018-10-04 17:19:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190282-20181004164001.patch</filename>
            <type>text/plain</type>
            <size>31753</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQzYzI0MDBjZDljYzli
YmYwMDA2MThjYzc0N2IzOWQ2YmEyNzI1OS4uMjUyNWI5MTc1ZDViNGQ4Yjg5MzExYTA1OWY0YjYw
Mzg5ZWU0OGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE4LTEwLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQSBEb2N1bWVudCAvIFdpbmRv
dyBzaG91bGQgbG9zZSBpdHMgYnJvd3NpbmcgY29udGV4dCBhcyBzb29uIGFzIGl0cyBpZnJhbWUg
aXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3Vr
ZSBOaXdhLgorCisgICAgICAgIEEgRG9jdW1lbnQgLyBXaW5kb3cgc2hvdWxkIGxvc2UgaXRzIGJy
b3dzaW5nIGNvbnRleHQgKGFrYSBGcmFtZSkgYXMgc29vbiBhcyBpdHMgaWZyYW1lIGlzIHJlbW92
ZWQgZnJvbQorICAgICAgICB0aGUgZG9jdW1lbnQuIEluIFdlYktpdCwgYSBEb2N1bWVudCAvIFdp
bmRvdydzIEZyYW1lIHdhcyBvbmx5IGdldHRpbmcgbnVsbGVkIG91dCB3aGVuIHRoZSBmcmFtZSBn
ZXRzCisgICAgICAgIGRlc3Ryb3llZCwgd2hpY2ggaGFwcGVucyBsYXRlciB1c3VhbGx5IGFmdGVy
IGEgR0MgaGFwcGVucy4KKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3RoZS1pZnJhbWUtZWxlbWVudAorICAgICAgICAiIiIK
KyAgICAgICAgV2hlbiBhbiBpZnJhbWUgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVu
dCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBkaXNjYXJkIHRoZSBlbGVtZW50J3MgbmVzdGVkIGJyb3dz
aW5nCisgICAgICAgIGNvbnRleHQsIGlmIGl0IGlzIG5vdCBudWxsLCBhbmQgdGhlbiBzZXQgdGhl
IGVsZW1lbnQncyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCB0byBudWxsLgorICAgICAgICAiIiIK
KworICAgICAgICBUaGlzIHdhcyBub3QgY29uc2lzdGVudCB3aXRoIHRoZSBzcGVjaWZpY2F0aW9u
IG9yIG90aGVyIGJyb3dzZXJzICh0ZXN0ZWQgQ2hyb21lIGFuZCBGaXJlZm94KSBzbyB0aGlzCisg
ICAgICAgIHBhdGNoIGlzIGFsaWduaW5nIG91ciBiZWhhdmlvci4KKworICAgICAgICBJbiBhIGZv
bGxvdy11cCwgSSBhbSBwbGFubmluZyB0byBsb29rIGludG8gbWFraW5nIHRoZSBXaW5kb3cgbm90
IGJlIGEgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLCBhbmQgaW5zdGVhZAorICAgICAgICBnZXQg
aXRzIGZyYW1lIGZyb20gdGhlIERvY3VtZW50LiBUaGlzIHNob3VsZCBtYWtlIHRoZSBjb2RlIHNp
bXBsZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICBVcGRhdGUg
Z2V0VXNlck1lZGlhKCkgdG8gcmVqZWN0IGEgdGhlIFByb21pc2Ugd2l0aCBhbiBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIGNhbGxpbmcgYWZ0ZXIgdGhlCisgICAgICAgIGRvY3VtZW50IGhhcyBiZWVu
IGRldGFjaGVkLCBpbnN0ZWFkIG9mIHRocm93aW5nIGFuIEludmFsaWRTdGF0ZUVycm9yLiBUaGlz
IGJlaGF2aW9yIGlzIGFzIHBlcgorICAgICAgICBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi8jZG9tLW1lZGlhZGV2aWNlcy1n
ZXR1c2VybWVkaWEgKFN0ZXAgNCkKKyAgICAgICAgSSBuZWVkZWQgdG8gbWFrZSB0aGlzIGNoYW5n
ZSB0byBrZWVwIG9uZSBvZiBvdXIgbGF5b3V0IHRlc3RzIHBhc3NpbmcuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmF0dGFjaFRvQ2Fj
aGVkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaEZyb21GcmFtZSk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8pOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXRTdGF0dXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93OjpkZXRhY2hGcm9tRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphdHRhY2hUb0ZyYW1lKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93UHJvcGVydHk6OmRpc2Nvbm5lY3RGcmFtZUZvckRvY3VtZW50U3VzcGVuc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmpl
Y3RJbkNhY2hlZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpc2Nvbm5lY3RPd25lckVsZW1lbnQpOgorCisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQpOgorICAgICAg
ICBDYWxsaW5nIGRyYXdUZXh0KCkgd2l0aCBhIG51bGwgU3RyaW5nIGhpdHMgYW4gYXNzZXJ0aW9u
IGluIGRlYnVnLiBUaGlzIHdhcyB0cmlnZ2VyZWQgYnkgb25lIG9mCisgICAgICAgIG91ciBsYXlv
dXQgdGVzdHMgc28gSSBtYWRlIHN1cmUgd2Ugb25seSBjYWxsIGRyYXdUZXh0IHdoZW4gdGhlIFN0
cmluZyBpcyBub3QgbnVsbC4KKwogMjAxOC0xMC0wNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5f
bWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgQmluZGluZ3MgZ2VuZXJhdG9yIHNob3VsZCBz
dXBwb3J0IHN0YXRpYyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGludGVyZmFjZXMgd2l0aCBDYWxsV2l0
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwCmluZGV4IDY5MGZmMzY2ZThmMGUxZjYyYmFkMDBhNDRjMjYxMGZlMTAxNWNmMTUuLjkx
YzUxYWQyNDUyMDVhMGU0NTc0NmQ2YTUxMTc1MWFiMmVhZGJiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTk2LDEx
ICs5NiwxMyBAQCBzdGF0aWMgTWVkaWFDb25zdHJhaW50cyBjcmVhdGVNZWRpYUNvbnN0cmFpbnRz
KGNvbnN0IFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbgogICAgICk7CiB9CiAKLUV4Y2VwdGlv
bk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFp
bnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0Cit2b2lkIE1lZGlhRGV2
aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywg
UHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBjcmVhdGVNZWRpYUNv
bnN0cmFpbnRzKGNvbnN0cmFpbnRzLmF1ZGlvKTsKICAgICBhdXRvIHZpZGVvQ29uc3RyYWludHMg
PSBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVvKTsKQEAgLTExMSw3ICsx
MTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25z
dCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludAogICAgIGlmIChyZXF1ZXN0KQogICAgICAg
ICByZXF1ZXN0LT5zdGFydCgpOwogCi0gICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm47CiB9CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlhKGNvbnN0IFN0
cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApp
bmRleCA3YjJjN2NhOTcxZDYyOTU1N2IxMWFkODM1MGY3NDcwNjA5ZWY5MTYwLi43Y2RhMWViOTVm
MjkyMjFkNzQzNGQ3YjQwYTNlNjA3MDkxMmIyNWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVi
bGljOgogICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4gdmlkZW87
CiAgICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiBhdWRpbzsKICAg
ICB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25z
dHJhaW50cyYsIFByb21pc2UmJikgY29uc3Q7CisgICAgdm9pZCBnZXRVc2VyTWVkaWEoY29uc3Qg
U3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IGdldERpc3BsYXlNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJikg
Y29uc3Q7CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmljZXNQcm9taXNl
JiYpIGNvbnN0OwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBnZXRTdXBwb3J0
ZWRDb25zdHJhaW50cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTQ1NmE3Y2IyMjRi
Yzc0YThlNzUwYjYwMGFjMTg5N2I1MTBhYTAyMS4uNzVhODJjZTRlYjhjMWMwZTg0OGM5NGVmMTM4
ZDVlZGRkY2E4MWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMzQxLDYgKzIzNDEs
OCBAQCB2b2lkIERvY3VtZW50OjphdHRhY2hUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYg
Y2FjaGVkRnJhbWUpCiAgICAgQVNTRVJUKGNhY2hlZEZyYW1lLnZpZXcoKSk7CiAgICAgQVNTRVJU
KG1fcGFnZUNhY2hlU3RhdGUgPT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKICAgICBvYnNlcnZl
RnJhbWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgaWYgKGF1dG8qIHdpbmRv
dyA9IGRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPmF0dGFjaFRvRnJhbWUoY2FjaGVkRnJh
bWUudmlldygpLT5mcmFtZSgpKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6ZGV0YWNoRnJvbUNhY2hl
ZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCkBAIC04MjQ1LDQgKzgyNDcsMTIg
QEAgYm9vbCBEb2N1bWVudDo6cmVnaXN0ZXJDU1NQcm9wZXJ0eShDU1NSZWdpc3RlcmVkQ3VzdG9t
UHJvcGVydHkmJiBwcm9wKQogICAgIHJldHVybiBtX0NTU1JlZ2lzdGVyZWRQcm9wZXJ0eVNldC5h
ZGQocHJvcC5uYW1lLCBzdGQ6Om1ha2VfdW5pcXVlPENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0
eT4oV1RGTW92ZShwcm9wKSkpLmlzTmV3RW50cnk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmRldGFj
aEZyb21GcmFtZSgpCit7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvbVdpbmRvdygpKQorICAg
ICAgICB3aW5kb3ctPndpbGxEZXRhY2hEb2N1bWVudEZyb21GcmFtZSgpOworCisgICAgb2JzZXJ2
ZUZyYW1lKG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IGI0NDJkNDlkMjUwNTc1Mzk0NTQyNzhkMTc2ODVkYzUwMDI2NzFlNWYuLmQ4
YjFhZDkxZjA0MzhhNjdhYzA1NjY4M2I3ZWZlZTNiYzU3NmI0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xNTA1LDYgKzE1MDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBc1J1bm5pbmdV
c2VyU2NyaXB0cygpIHsgbV9pc1J1bm5pbmdVc2VyU2NyaXB0cyA9IHRydWU7IH0KICAgICBib29s
IGlzUnVubmluZ1VzZXJTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gbV9pc1J1bm5pbmdVc2VyU2Ny
aXB0czsgfQogCisgICAgdm9pZCBkZXRhY2hGcm9tRnJhbWUoKTsKKwogcHJvdGVjdGVkOgogICAg
IGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxh
Y2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYsIHVu
c2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdz
ID0gMCk7CkBAIC0xNTIyLDggKzE1MjQsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRJ
bmhlcml0Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbU93bmVyKCkgY29uc3Q7CiAKLSAgICB2b2lk
IGRldGFjaEZyb21GcmFtZSgpIHsgb2JzZXJ2ZUZyYW1lKG51bGxwdHIpOyB9Ci0KICAgICB2b2lk
IHVwZGF0ZVRpdGxlRWxlbWVudChFbGVtZW50JiBjaGFuZ2luZ1RpdGxlRWxlbWVudCk7CiAgICAg
dm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
aW5kZXggN2JkZTFjYmI4YjYzNzFlN2E3YTA4YmE1NTFlODU2YjgxOTJmNjBmYy4uZjZhYTIzYzk4
YWY4ZWQ1MzE2MGYzOWI5YWZlNDVkMzMxM2Q4ZTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcApAQCAtNDE0LDYgKzQxNCw3IEBAIERPTVdpbmRvdzo6RE9NV2luZG93KERvY3VtZW50JiBk
b2N1bWVudCkKIHZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQm
IGRvY3VtZW50KQogewogICAgIG9ic2VydmVDb250ZXh0KCZkb2N1bWVudCk7CisgICAgb2JzZXJ2
ZUZyYW1lKGRvY3VtZW50LmZyYW1lKCkpOwogfQogCiBET01XaW5kb3c6On5ET01XaW5kb3coKQpA
QCAtNTExLDYgKzUxMiw4IEBAIHZvaWQgRE9NV2luZG93Ojp3aWxsRGV0YWNoRG9jdW1lbnRGcm9t
RnJhbWUoKQogCiAgICAgaWYgKG1fcGVyZm9ybWFuY2UpCiAgICAgICAgIG1fcGVyZm9ybWFuY2Ut
PmNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7CisKKyAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0KIAog
I2lmIEVOQUJMRShHQU1FUEFEKQpAQCAtMTQwMiw3ICsxNDA1LDE3IEBAIHZvaWQgRE9NV2luZG93
OjpzZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAKICAgICBBU1NFUlQobV9mcmFtZS0+
ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBm
cmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCiAgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3Rh
dHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwotfSAKK30KKwordm9pZCBET01XaW5kb3c6
OmRldGFjaEZyb21GcmFtZSgpCit7CisgICAgb2JzZXJ2ZUZyYW1lKG51bGxwdHIpOworfQorCit2
b2lkIERPTVdpbmRvdzo6YXR0YWNoVG9GcmFtZShGcmFtZSYgZnJhbWUpCit7CisgICAgb2JzZXJ2
ZUZyYW1lKCZmcmFtZSk7Cit9CiAgICAgCiB2b2lkIERPTVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1
cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBl
MmY0OWQxOTAzZjRhYzQ5YmQ2ODgxODQ0Y2Y4NzQ0NzI0Y2FhZGVjLi4zZWQ0NzAzN2Y4MWMyNTEx
ZWExNDE4NDIwZThhOTJhYWIyMDI5MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTMz
Myw2ICszMzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJh
bWUoKTsKICAgICB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkRnJhbWUoKTsKIAorICAgIHZvaWQgYXR0
YWNoVG9GcmFtZShGcmFtZSYpOworICAgIHZvaWQgZGV0YWNoRnJvbUZyYW1lKCk7CisKICAgICB2
b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVy
bWluYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQ
cm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApp
bmRleCA1NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlhN2U1YzYwOWVkNTBmODU3Li4yYzIxOGVkYmEz
MzQ3YzQ5MzM4NWQxMjcyZTM0MWE4YTQxNjEzMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNTcsOSArNTcsNiBAQCBET01XaW5kb3dQcm9wZXJ0eTo6
fkRPTVdpbmRvd1Byb3BlcnR5KCkKIAogdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6ZGlzY29ubmVj
dEZyYW1lRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKIHsKLSAgICAvLyBJZiB0aGlzIHByb3BlcnR5
IGlzIGJlaW5nIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBGcmFtZSB0byBlbnRlciB0aGUgUGFnZUNh
Y2hlLCBpdCBtdXN0IGhhdmUKLSAgICAvLyBiZWVuIGNyZWF0ZWQgd2l0aCBhIEZyYW1lIGluIHRo
ZSBmaXJzdCBwbGFjZS4KLSAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fYXNzb2Np
YXRlZERPTVdpbmRvdyk7CiAKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKQEAgLTkzLDggKzkwLDYg
QEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hl
ZEZyYW1lKCkKIAogdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmpl
Y3RJbkZyYW1lKCkKIHsKLSAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgZ2V0dGluZyB0aGlzIGNh
bGxiYWNrIGl0IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgd2l0aCBhIEZyYW1lL0RPTVdpbmRvdyBh
bmQgaXQgc2hvdWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAg
QVNTRVJUKG1fYXNzb2NpYXRlZERPTVdpbmRvdyk7CiAKICAgICAvLyBET01XaW5kb3dQcm9wZXJ0
eSBsaWZldGltZSBpc24ndCB0aWVkIGRpcmVjdGx5IHRvIHRoZSBET01XaW5kb3cgaXRzZWxmIHNv
IGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IHVucmVnaXN0ZXIKQEAgLTEwNyw5ICsxMDIsNyBAQCB2
b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKQog
CiB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1l
KCkKIHsKLSAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgZ2V0dGluZyB0aGlzIGNhbGxiYWNrIGl0
IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgd2l0aCBhIEZyYW1lL0RPTVdpbmRvdyBhbmQgaXQgc2hv
dWxkIHN0aWxsIGhhdmUgdGhlbS4KLSAgICBBU1NFUlQobV9mcmFtZSk7Ci0gICAgQVNTRVJUKG1f
YXNzb2NpYXRlZERPTVdpbmRvdyk7CisgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggMTkzZWM3NzViMGZlMzY2ZDA4YzE4NmI1MjMwZDBmMGM4Mzgy
ZjE4Ni4uY2JlNDVlMzg1Y2FlODIxZjEzYmQ2NGRlOTgxZGVkOWQwODNiZDYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKQEAgLTgzMSw2ICs4MzEsOSBAQCB2b2lkIEZyYW1lOjpkaXNjb25uZWN0T3du
ZXJFbGVtZW50KCkKICAgICAgICAgICAgIG1fcGFnZS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgp
OwogICAgIH0KICAgICBtX293bmVyRWxlbWVudCA9IG51bGxwdHI7CisKKyAgICBpZiAoYXV0byog
ZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+ZGV0YWNoRnJv
bUZyYW1lKCk7CiB9CiAKIFN0cmluZyBGcmFtZTo6ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhjb25zdCBTdHJpbmcmIHN0cikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggNWQzZmI5
MTM3ODM1MDk2NjU5YWI5MmNjMzI4OTBhMDA3ODU0NDk2NS4uODY4MWY2NjRhMWZlNWQ1ZTA1NmY4
YmJlYTMxZDQwNTVkNjcyZWMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM3Miw3ICszNzIsNyBA
QCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpkcmF3VGV4dChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQpCiAgICAgICAgIHN0cmluZyA9IFN0cmluZzo6Zm9ybWF0KCJDYW1lcmE6ICVzIiwg
Y2FtZXJhKTsKICAgICAgICAgc3RhdHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7
CiAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNGb250LCBUZXh0UnVuKChTdHJpbmdWaWV3
KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2UgaWYg
KCFuYW1lKCkuaXNOdWxsKCkpIHsKICAgICAgICAgc3RhdHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3Rh
dHNGb250U2l6ZSk7CiAgICAgICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNGb250LCBUZXh0UnVu
IHsgbmFtZSgpIH0sIHN0YXRzTG9jYXRpb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YzI1OWM0Yjc5YzE0
YjljNWFkOTUzZDgzOTkwOGM1ODdjMWUwYmQ2Li41OWRlNmM1ZDA1NjVkMDBjNTlkMDdiZWIzZDYx
NDU4M2IzNGUxZjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgtMTAtMDQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBIERvY3VtZW50IC8gV2luZG93IHNo
b3VsZCBsb3NlIGl0cyBicm93c2luZyBjb250ZXh0IGFzIHNvb24gYXMgaXRzIGlmcmFtZSBpcyBy
ZW1vdmVkIGZyb20gdGhlIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTAyODIKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIGxheW91dCB0ZXN0IHRvIHJlZmxlY3QgYmVo
YXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXIt
ZnJhbWUtcmVtb3ZlZC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNz
LWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dp
bmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1n
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5o
dG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVy
bi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvcGFyc2VyL3Jl
c291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2Vz
L2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5qczoKKyAgICAgICAgKGNoZWNrRGlk
TG9hZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVy
dHktZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1l
LW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHkt
ZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHkt
ZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbDoKKwogMjAxOC0xMC0wNCAg
Um9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCB0ZXN0IGdhcmRlbmluZyBmb3IgV2luQ2Fpcm8gKGFuZCBvbmUgY3Jvc3MtcGxhdGZvcm0g
dGVzdCkuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggODQwMjE3ODAzMDkzNGVl
MTU2MDU0MTE3OGVkYmVkM2Y0MWU0ZDFlZS4uOGIzMWJjYjgxMmM3ZGM3NDRlYjQ2ZDg1MTM4YjJm
ODg0ZDYxYzU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTgtMTAtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBBIERvY3VtZW50IC8gV2luZG93IHNob3VsZCBsb3NlIGl0cyBicm93c2luZyBjb250ZXh0IGFz
IHNvb24gYXMgaXRzIGlmcmFtZSBpcyByZW1vdmVkIGZyb20gdGhlIGRvY3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAyODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgUmViYXNlbGluZSBzZXZlcmFs
IFdQVCB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4gSSBoYXZlIHZlcmlmaWVkIHRoYXQgdGhv
c2UgdGVzdHMgYXJlIGFsc28gcGFzc2luZyBpbgorICAgICAgICBGaXJlZm94IGFuZCBDaHJvbWUu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL25l
c3RlZC1icm93c2luZy1jb250ZXh0cy93aW5kb3ctcGFyZW50LW51bGwtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVj
dGVkLnR4dDoKKwogMjAxOC0xMC0wNCAgWVVIQU4gV1UgIDx5dWhhbl93dUBhcHBsZS5jb20+CiAK
ICAgICAgICAgcnVudGltZSBmbGFnIGFuZCBJREwgZm9yIE1lZGlhUmVjb3JkZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1lLXJlbW92
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9CYXJJbmZvLWFmdGVyLWZyYW1l
LXJlbW92ZWQuaHRtbAppbmRleCA0ZjY3NzNiNGQ3YzRmZTY5ZTk4ZGI5ZDE5YTQ2YjZlNTQxZjIz
NzZjLi5kYzgyOWZkZmQzYThmYTMyMTk0NGZlZDk1Zjk1MmNmOGFkZjJmYjc4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvQmFySW5mby1hZnRlci1mcmFtZS1yZW1vdmVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0JhckluZm8tYWZ0ZXItZnJh
bWUtcmVtb3ZlZC5odG1sCkBAIC0xNSw3ICsxNSw5IEBACiAgICAgICAgIHZhciBmcmFtZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZSIpOwogICAgICAgICB2YXIgY2hpbGRXaW5kb3cg
PSBmcmFtZS5jb250ZW50V2luZG93OwogICAgICAgICBmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGZyYW1lKTsKLSAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAg
ICB0cnkgeworICAgICAgICAgICAgY2hpbGRXaW5kb3cudG9vbGJhci52aXNpYmxlOworICAgICAg
ICB9IGNhdGNoIChlKSB7IH0KICAgICAgICAgCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuZmlyc3RDaGlsZC5kYXRhID0gIlRFU1QgUkFOIjsKICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1
cmUtaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20t
YWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDBmMzhkZDcxMDc2
Nzg1OWY2ZDQzNWJmOWU2ZDkxZjRmYWI5MThhN2UuLmZmOTIwYzYwYzQyNzUxZTY5M2JhNjZhZjAx
MDJkNDJlNzUzYTI5ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9k
b20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS1pZnJhbWUtZXhwZWN0
ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5o
dG1sCiB3aW5kb3cuZG9jdW1lbnQuVVJMOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVz
b3VyY2VzL25vdGlmeS1wYXJlbnQtZG9uZS5odG1sCi1uYW1lOiBjaGlsZAorbmFtZTogCiB3aW5k
b3cubmFtZTogY2hpbGQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBlNzBjMGRiMjc4ODRmZDgzZTM1MjdlYzQ5MDAyYmRhOWM3NjJjZDBlLi44NjFm
MjhmMjQ4NjlhNjQyZDQ0ODRmNjk4YTk5YTE3MmIwMWY3MGM5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vzcy1mcm9t
LWNsb3N1cmUtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVS
TDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20t
Y2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFt
ZTogY2hpbGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0
aC1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZG9tLWFjY2Vz
cy1mcm9tLWNsb3N1cmUtd2luZG93LXdpdGgtZ2MtZXhwZWN0ZWQudHh0CmluZGV4IGU3MGMwZGIy
Nzg4NGZkODNlMzUyN2VjNDkwMDJiZGE5Yzc2MmNkMGUuLjg2MWYyOGYyNDg2OWE2NDJkNDQ4NGY2
OThhOTlhMTcyYjAxZjcwYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0aC1nYy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdp
bmRvdy13aXRoLWdjLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIGRvY3VtZW50LlVSTDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xv
c3VyZS13aW5kb3ctY2hpbGQuaHRtbAogd2luZG93LmRvY3VtZW50LlVSTDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9ub3RpZnktb3BlbmVyLWRvbmUuaHRtbAotbmFtZTog
Y2hpbGQKK25hbWU6IAogd2luZG93Lm5hbWU6IGNoaWxkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZy
YW1lLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL2Rv
bS1hY2Nlc3MtZnJvbS1jbG9zdXJlLWlmcmFtZS1jaGlsZC5odG1sCmluZGV4IDQ1NTBkMTJlNTI4
NzNjNzRiNjM4NGI2NmM2NTE2OTNkNzk2ZjY3MDMuLjI5Mjc3NGNmNTYzMjk1MGYyZjcwODllOWU2
NjM0MzA4ZjI0ZWM1ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9y
ZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUtaWZyYW1lLWNoaWxkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xv
c3VyZS1pZnJhbWUtY2hpbGQuaHRtbApAQCAtMSw0ICsxLDYgQEAKIDxzY3JpcHQ+CisgICAgY29u
c3QgcGFyZW50ID0gd2luZG93LnBhcmVudDsgLy8gU2F2ZSBwYXJlbnQgYXMgdGhlIHdpbmRvdyB3
aWxsIGJlIGRldGFjaGVkIHdoZW4gYWNjZXNzRnJhbWUoKSBpcyBjYWxsZWQuCisKICAgICBwYXJl
bnQuYWNjZXNzRnJhbWUgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBub3Jt
YWxpemVVUkwodXJsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jl
c291cmNlcy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvZG9tLWFjY2Vzcy1mcm9tLWNsb3N1cmUt
d2luZG93LWNoaWxkLmh0bWwKaW5kZXggMzY5MTA5NTQ4MjRiNzZjNzE3MmJkMzNlNGQ2Y2M3ZmEw
NzdiN2VkZS4uM2I5YjIzNGYyZmZmZGVkYWZhZTFiNWM2N2EzMTA5NzlkZmU4MGQyMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9kb20tYWNjZXNzLWZy
b20tY2xvc3VyZS13aW5kb3ctY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvcmVzb3VyY2VzL2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy1jaGlsZC5odG1s
CkBAIC0xLDQgKzEsNiBAQAogPHNjcmlwdD4KKyAgICBjb25zdCBvcGVuZXIgPSB3aW5kb3cub3Bl
bmVyOyAvLyBTYXZlIG9wZW5lciBhcyB0aGUgd2luZG93IHdpbGwgYmUgZGV0YWNoZWQgd2hlbiBh
Y2Nlc3NGcmFtZSgpIGlzIGNhbGxlZC4KKwogICAgIG9wZW5lci5hY2Nlc3NGcmFtZSA9IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVSTCh1cmwpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvYmVmb3JlLXVubG9hZC1yZXR1
cm4tc3RyaW5nLWNvbnZlcnNpb24tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5o
dG1sCmluZGV4IDczODdmYmVjMDBmZjE3NTkxMzAyOWM0YTZkMDk4MGIxMGJhMzUxOTIuLmJkMTZk
ZTQyMzNjZDFkZjVhM2I0NDYxZTExYjYzNTJiOTNkZmNkNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29u
dmVyc2lvbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy9iZWZvcmUtdW5sb2FkLXJldHVybi1zdHJpbmctY29udmVyc2lvbi1mcmFtZS5odG1sCkBAIC0x
NCw5ICsxNCw3IEBAIHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHBhcmVu
dC5zaG91bGRCZVRydWUoImV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQiKTsKICAgICAgICAgcGFyZW50
LnNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQucmV0dXJuVmFsdWUiLCAiUEFTUyIpOwogICAg
ICAgICBwYXJlbnQuc2hvdWxkQmVUcnVlKCJ0b1N0cmluZ0NhbGxlZCIpOwotICAgICAgICBwYXJl
bnQuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHBhcmVudC5maW5pc2hKU1Rl
c3QoKTsKLSAgICAgICAgfSwgMCk7CisgICAgICAgIHBhcmVudC5maW5pc2hKU1Rlc3QoKTsKICAg
ICB9CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwgbGlzdGVu
ZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVzb3VyY2VzL3NldC1w
YXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3Jl
c291cmNlcy9zZXQtcGFyZW50LXRvLWphdmFzY3JpcHQtdXJsLmh0bWwKaW5kZXggYTY0YjlhMDMz
NWIwMjIwYTNmY2VjODY5N2I1NzdkZjZiMWI0MTk0Ni4uNzFkNzhiZjY4ZjMwZWQwNGFiYTE0Nzc5
ZmQ4Mzc2YjU0NjBmZWRiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcmVz
b3VyY2VzL3NldC1wYXJlbnQtdG8tamF2YXNjcmlwdC11cmwuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci9yZXNvdXJjZXMvc2V0LXBhcmVudC10by1qYXZhc2NyaXB0LXVybC5odG1s
CkBAIC0xLDQgKzEsNSBAQAogPHNjcmlwdD4KK2NvbnN0IHBhcmVudCA9IHdpbmRvdy5wYXJlbnQ7
CiBhbGVydCgxKTsKIHBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1l
JylbMF0uc3JjID0gImphdmFzY3JpcHQ6YWxlcnQoMiksJ1BBU1M8c2NyaXB0PmFsZXJ0KDMpPFwv
c2NyaXB0PiciOwogYWxlcnQoNCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXN0cmVhbS9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCmlu
ZGV4IDBmOTcyYzk3YjcyNGE4NWIzODk0NWFjNDI0MTI4YTE3ZDM3OTJmYTIuLjZkYjRiNGU5ZDA1
NDM3ZGE1M2YzNDE2ZTY3MDI1M2ZjMjBmZDFkMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Rpc2Nvbm5lY3RlZC1m
cmFtZS5odG1sCkBAIC0xMiwyNyArMTIsMjkgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKIAogZnVuY3Rpb24gb25J
ZnJhbWVMb2FkZWQoKSB7Ci0gICAgaWZyYW1lTmF2aWdhdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5k
b3cubmF2aWdhdG9yOworICAgIGlmcmFtZU1lZGlhRGV2aWNlcyA9IGlmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CiAgICAgaWZyYW1lLnJlbW92ZSgpOwogICAgIG9u
SWZyYW1lVW5sb2FkZWQoKTsKIH0KIAogZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAg
ICBoYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0RmFpbGVkKCdU
aW1lb3V0OiBwcm9taXNlIHJlc29sdmUgYW5kIHJlamVjdCBmdW5jdGlvbnMgbm90IGNhbGxlZC4n
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMTAwKTsKKwogICAgIHZhciBvcHRp
b25zID0ge2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX07Ci0gICAgaWZyYW1lTmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEob3B0aW9ucykKKyAgICBpZnJhbWVNZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKG9wdGlvbnMpCiAgICAgICAgIC50aGVuKHN0cmVhbSA9PiB7CiAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCdQcm9taXNlIHJlc29sdmVkIHVuZXhwZWN0ZWRseS4nKTsKKyAgICAg
ICAgICAgIGNsZWFyVGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgICAgIH0pCiAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgdGVzdFBh
c3NlZCgnUHJvbWlzZSByZWplY3RlZCBhcyBleHBlY3RlZC4nKTsKKyAgICAgICAgICAgIGNsZWFy
VGltZW91dChoYW5kbGUpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0p
OwotCi0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnVGlt
ZW91dDogcHJvbWlzZSByZXNvbHZlIGFuZCByZWplY3QgZnVuY3Rpb25zIG5vdCBjYWxsZWQuJyk7
Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIDEwMCk7CiB9CiAKIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9j
aGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvY2hlY2tEaWRTYW1l
T3JpZ2luQ2hpbGRXaW5kb3dMb2FkLmpzCmluZGV4IDkxODYwYjI4NzEyYzdmMGM2YTVlZjc4N2Q1
NTA2MDI2ZWI0ODRmNzkuLjFlNjg0N2VhZTNiMDgwOGQzNzE2YzgxMTg3YzVkODYxNjJhMDI5YzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9jaGVja0RpZFNhbWVPcmlnaW5DaGlsZFdpbmRvd0xvYWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL2NoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZC5qcwpAQCAtOCwx
MiArOCw1IEBAIGZ1bmN0aW9uIGNoZWNrRGlkU2FtZU9yaWdpbkNoaWxkV2luZG93TG9hZEFuZE5v
dGlmeURvbmUoY2hpbGRXaW5kb3cpCiAKIGZ1bmN0aW9uIGNoZWNrRGlkU2FtZU9yaWdpbkNoaWxk
V2luZG93TG9hZChjaGlsZFdpbmRvdywgY2FsbGJhY2spCiB7Ci0gICAgZnVuY3Rpb24gY2hlY2tE
aWRMb2FkKCkgewotICAgICAgICBpZiAoY2hpbGRXaW5kb3cuZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luICE9PSBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIC8vIENoaWxkIHdpbmRvdyBkaWQgbG9hZAotICAgICAgICB3aW5kb3cuY2xlYXJJbnRl
cnZhbChpbnRlcnZhbElEKTsKLSAgICAgICAgY2FsbGJhY2soKQotICAgIH0KLSAgICBpbnRlcnZh
bElEID0gd2luZG93LnNldEludGVydmFsKGNoZWNrRGlkTG9hZCwgMTApOworICAgIGNoaWxkV2lu
ZG93Lm9ubG9hZCA9IGNhbGxiYWNrOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1pbmFj
dGl2ZS1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3Vt
ZW50LWV4cGVjdGVkLnR4dAppbmRleCAwNzE4YWQ1ZDE5ZjgxZjFjMDVjYzRiZjgyYmY1OTYwMDg4
M2IxMWVjLi5hYjIwYjk3NDNmNTMzOGFmZTVjYjIzYTAxNzA5MzRkMGMwNjNjNTBmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0
eS1mcm9tLXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9t
LXNhbWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwx
MCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9z
ZSBuYW1lIGNvcnJlc3BvbmRzIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6Ymxh
bmsgZG9jdW1lbnQ6CiBQQVNTIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
QScpIGlzIG5vdCBlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudAotUEFTUyBlbGVtZW50QUluQWN0
aXZlRG9jdW1lbnRGdW5jdGlvbigpIGlzIGZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnQScpCitQQVNTIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkgdGhyZXcg
ZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBBLgogCiBMb29r
dXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxl
bWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBBU1MgZWxlbWVudEJJ
bkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSBpcyBmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ0InKQorUEFTUyBlbGVtZW50QkluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbigpIHRo
cmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogQi4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHkt
ZnJvbS1zYW1lLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1zYW1lLW9yaWdpbi1p
bmFjdGl2ZS1kb2N1bWVudC5odG1sCmluZGV4IGU3ZTRiNjE3NWUzNDBmMjcwODNjZjhlZjE0Yjhi
ZTJmYWIxMmU1YWUuLmUzNjZmNmRlNGFkN2EwZTNkZTE5NTJhNDQ4YWIzOTgyMWRmYTViMmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmFtZWQtd2luZG93LXBy
b3BlcnR5LWZyb20tc2FtZS1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLXNh
bWUtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKQEAgLTE3LDE3ICsxNywxNyBAQCB2YXIg
ZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQgPSBmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQuaWQgPSAiQSI7CiBmcmFtZURvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEFJbkluYWN0aXZlRG9jdW1lbnQpOwogCi12YXIg
ZWxlbWVudEFJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1
bmN0aW9uKCJyZXR1cm4gQTsiKTsKLXZhciBlbGVtZW50QkluQWN0aXZlRG9jdW1lbnRGdW5jdGlv
biA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuRnVuY3Rpb24oInJldHVybiBCOyIpOwordmFyIGVsZW1l
bnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlv
bigicmV0dXJuIEE7Iik7Cit2YXIgZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24gPSBm
cmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKIAogZnJhbWUub25sb2Fk
ID0gZnVuY3Rpb24gKCkKIHsKICAgICBkZWJ1ZygiTG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2Ug
bmFtZSBjb3JyZXNwb25kcyB0byBhbiBlbGVtZW50IGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5r
IGRvY3VtZW50OiIpOwogICAgIHNob3VsZE5vdEJlKCJmcmFtZS5jb250ZW50RG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ0EnKSIsICJlbGVtZW50QUluSW5hY3RpdmVEb2N1bWVudCIpOwotICAgIHNo
b3VsZEJlKCJlbGVtZW50QUluQWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwgImZyYW1lLmNvbnRl
bnREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQScpIik7CisgICAgc2hvdWxkVGhyb3dFcnJvck5h
bWUoImVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAiUmVmZXJlbmNlRXJyb3Ii
KTsKIAogICAgIGRlYnVnKCI8YnI+TG9va3VwIG5hbWVkIGVsZW1lbnQgd2hvc2UgbmFtZSBkb2Vz
IG5vdCBjb3JyZXNwb25kIHRvIGFuIGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6Ymxhbmsg
ZG9jdW1lbnQ6Iik7Ci0gICAgc2hvdWxkQmUoImVsZW1lbnRCSW5BY3RpdmVEb2N1bWVudEZ1bmN0
aW9uKCkiLCAiZnJhbWUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCJykiKTsKKyAg
ICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVudEJJbkRldGFjaGVkV2luZG93RnVuY3Rpb24o
KSIsICJSZWZlcmVuY2VFcnJvciIpOwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY29udGVudFdp
bmRvdy1ldmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CmluZGV4IGYwZWU4ZDJh
ODM2MDkwZmZmMzk3YTgzMTI5MTU2ZTNhN2M2MjJmODEuLjdmZmEwNGQ2N2U0NThmYTliOTE4MTk0
YjM0ZWRjYzVhN2Q4ODg4ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jb250ZW50V2luZG93LWV2
YWwtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IKIFRoaXMgdGVzdCBwYXNzZXMgaWYgYWxlcnQoKSBpcyBub3Qg
Y2FsbGVkLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
LURFTklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUt
ZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2
ZS1kb2N1bWVudC1leHBlY3RlZC50eHQKaW5kZXggODk1ZjliZjAzMGNmZmJhMjQ4NzRmMzk0MmE4
ZmZkNGQ1ZjM3NmJmMC4uZTRmYTk0ZDEyMjVjZjEwMzNkYmEzMTdkZjI3ODM1NGQzNTIwNTQ1NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5h
bWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVO
SUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1mcm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1
bWVudC1leHBlY3RlZC50eHQKQEAgLTQsMTAgKzQsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIAogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGNvcnJlc3BvbmRzIHRvIGFu
IGVsZW1lbnQgaW4gdGhlIGluaXRpYWwgYWJvdXQ6YmxhbmsgZG9jdW1lbnQ6Ci1QQVNTIGVsZW1l
bnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFNlY3VyaXR5RXJy
b3I6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBm
cm9tIGFjY2Vzc2luZyBhIGNyb3NzLW9yaWdpbiBmcmFtZS4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4uCitQQVNTIGVsZW1lbnRBSW5EZXRhY2hlZFdpbmRvd0Z1bmN0
aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBBLgogCiBMb29rdXAgbmFtZWQgZWxlbWVudCB3aG9zZSBuYW1lIGRvZXMgbm90IGNvcnJlc3Bv
bmQgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91dDpibGFuayBkb2N1bWVudDoKLVBB
U1MgZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gU2Vj
dXJpdHlFcnJvcjogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgY3Jvc3Mtb3JpZ2luIGZyYW1lLiBQcm90b2NvbHMsIGRv
bWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLi4KK1BBU1MgZWxlbWVudEJJbkRldGFjaGVkV2lu
ZG93RnVuY3Rpb24oKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1uYW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9j
dW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1u
YW1lZC13aW5kb3ctcHJvcGVydHktZnJvbS1jcm9zcy1vcmlnaW4taW5hY3RpdmUtZG9jdW1lbnQu
aHRtbAppbmRleCAzNWU0NTQ0YTEwN2EyMDcxYmVlMmQ5NzA2YWM0YzBjNmM4MjM2MWE5Li44OTNh
Y2E3MzRmMzJlY2E4YWRkNmQwYTUxOGM0ZTYxZTFjMjg2MzU5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtbmFtZWQtd2luZG93LXByb3BlcnR5
LWZyb20tY3Jvc3Mtb3JpZ2luLWluYWN0aXZlLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELW5hbWVkLXdpbmRvdy1wcm9wZXJ0eS1m
cm9tLWNyb3NzLW9yaWdpbi1pbmFjdGl2ZS1kb2N1bWVudC5odG1sCkBAIC0xNywxNiArMTcsMTYg
QEAgdmFyIGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50ID0gZnJhbWVEb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKIGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50LmlkID0gIkEiOwogZnJh
bWVEb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnRBSW5JbmFjdGl2ZURvY3VtZW50KTsK
IAotdmFyIGVsZW1lbnRBSW5BY3RpdmVEb2N1bWVudEZ1bmN0aW9uID0gZnJhbWUuY29udGVudFdp
bmRvdy5GdW5jdGlvbigicmV0dXJuIEE7Iik7Ci12YXIgZWxlbWVudEJJbkFjdGl2ZURvY3VtZW50
RnVuY3Rpb24gPSBmcmFtZS5jb250ZW50V2luZG93LkZ1bmN0aW9uKCJyZXR1cm4gQjsiKTsKK3Zh
ciBlbGVtZW50QUluRGV0YWNoZWRXaW5kb3dGdW5jdGlvbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3cu
RnVuY3Rpb24oInJldHVybiBBOyIpOwordmFyIGVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0
aW9uID0gZnJhbWUuY29udGVudFdpbmRvdy5GdW5jdGlvbigicmV0dXJuIEI7Iik7CiAKIGZyYW1l
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCiB7CiAgICAgZGVidWcoIkxvb2t1cCBuYW1lZCBlbGVtZW50
IHdob3NlIG5hbWUgY29ycmVzcG9uZHMgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBhYm91
dDpibGFuayBkb2N1bWVudDoiKQotICAgIHNob3VsZFRocm93RXJyb3JOYW1lKCJlbGVtZW50QUlu
QWN0aXZlRG9jdW1lbnRGdW5jdGlvbigpIiwgJ1NlY3VyaXR5RXJyb3InKTsKKyAgICBzaG91bGRU
aHJvd0Vycm9yTmFtZSgiZWxlbWVudEFJbkRldGFjaGVkV2luZG93RnVuY3Rpb24oKSIsICdSZWZl
cmVuY2VFcnJvcicpOwogCiAgICAgZGVidWcoIjxicj5Mb29rdXAgbmFtZWQgZWxlbWVudCB3aG9z
ZSBuYW1lIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWxlbWVudCBpbiB0aGUgaW5pdGlhbCBh
Ym91dDpibGFuayBkb2N1bWVudDoiKTsKLSAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgiZWxlbWVu
dEJJbkFjdGl2ZURvY3VtZW50RnVuY3Rpb24oKSIsICdTZWN1cml0eUVycm9yJyk7CisgICAgc2hv
dWxkVGhyb3dFcnJvck5hbWUoImVsZW1lbnRCSW5EZXRhY2hlZFdpbmRvd0Z1bmN0aW9uKCkiLCAn
UmVmZXJlbmNlRXJyb3InKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3dpbmRvd3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL3dpbmRvdy1wYXJlbnQtbnVsbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVu
dC1udWxsLWV4cGVjdGVkLnR4dAppbmRleCAxNWU5NTUxNmM5MzQyZWJjYjFiNTRmOWQ0ZmIyNDdl
OTQxM2NmY2ViLi4zZjdhOGZhYzA1MjI0NzgzZjVkYzYxOWQwNDU0MDgxYmY0NTdiNmJmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMvd2luZG93LXBhcmVudC1u
dWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMv
d2luZG93LXBhcmVudC1udWxsLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBg
d2luZG93LnBhcmVudGAgaXMgbnVsbCB3aGVuIGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyIGVs
ZW1lbnQgcmVtb3ZlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0
ICJbb2JqZWN0IFdpbmRvd10iCi1GQUlMIGB3aW5kb3cucGFyZW50YCBudWxsIHdoZW4gcGFyZW50
IGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyIHJlbW92ZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBXaW5kb3ddIgotCitQQVNTIGB3aW5kb3cu
cGFyZW50YCBpcyBudWxsIHdoZW4gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXIgZWxlbWVudCBy
ZW1vdmVkIAorUEFTUyBgd2luZG93LnBhcmVudGAgbnVsbCB3aGVuIHBhcmVudCBicm93c2luZyBj
b250ZXh0IGNvbnRhaW5lciByZW1vdmVkIAorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvaWZyYW1lLXN5
bmNocm9ub3VzbHktZGlzY2FyZC1leHBlY3RlZC50eHQKaW5kZXggNDM2YTMxYzcwMjczOThjODQ5
MjU0ODFjOThlYTRjNTIyN2NmMmQyOC4uZjA0M2Q1NTMzNWE0ODgwYWI4NGM0MzllZmExODc2NjBl
OWQxYzdiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVu
dC9pZnJhbWUtc3luY2hyb25vdXNseS1kaXNjYXJkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZS1zeW5jaHJvbm91c2x5LWRpc2Nh
cmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIElGcmFtZSBkaXNjYXJkcyBh
cmUgcHJvY2Vzc2VkIHN5bmNocm9ub3VzbHkgYXNzZXJ0X2VxdWFsczogY2hpbGQgd2luZG93IHNo
b3VsZCBiZSBkaXNjYXJkZWQgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBX
aW5kb3ddIgorUEFTUyBJRnJhbWUgZGlzY2FyZHMgYXJlIHByb2Nlc3NlZCBzeW5jaHJvbm91c2x5
IAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>