<?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>203349</bug_id>
          
          <creation_ts>2019-10-23 16:34:44 -0700</creation_ts>
          <short_desc>Web Inspector: DOMDebugger: Node Removed breakpoints should fire whenever the node is removed from the main DOM tree, not just when it&apos;s removed from it&apos;s parent</short_desc>
          <delta_ts>2019-10-31 13:21:16 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1583139</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-23 16:34:44 -0700</bug_when>
    <thetext>If I have a DOM tree

    &lt;a&gt;
        &lt;b&gt;
            &lt;c&gt;

where &lt;c&gt; has a Node Removed DOM breakpoint, we currently only trigger that breakpoint of &lt;c&gt; is removed from &lt;b&gt;, but not if &lt;b&gt; is removed from &lt;a&gt; or if &lt;a&gt; is removed from its parent (and so on, all the way up to the root).  We should treat the Node Removed DOM breakpoint as a &quot;trigger when this node is about to be removed from the main DOM tree&quot; instead of &quot;trigger when this node is about to be removed from its parent&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583179</commentid>
    <comment_count>1</comment_count>
      <attachid>381760</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-23 18:01:25 -0700</bug_when>
    <thetext>Created attachment 381760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583458</commentid>
    <comment_count>2</comment_count>
      <attachid>381760</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-10-24 12:37:53 -0700</bug_when>
    <thetext>Comment on attachment 381760
Patch

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

Nice! Great test clean up too. A few minor comments.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

A short comment mentioning the change to `pauseData` would be nice.

&gt; Source/WebCore/inspector/agents/page/PageDOMDebuggerAgent.cpp:197
&gt; +    {

Why the nested scope? Nested scopes are usually to control the lifetime of an RAII object.

&gt; LayoutTests/inspector/dom-debugger/dom-breakpoints.html:255
&gt; +        name: &quot;NodeRemovedDirect&quot;,

How about &quot;NodeRemovedSelf&quot;? It pairs nicely with &quot;NodeRemovedAncestor&quot;, whereas &quot;Direct&quot; makes me think of something as opposed to &quot;indirect&quot;, which also sort of makes sense but isn&apos;t how we usually refer to DOM relationships.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584070</commentid>
    <comment_count>3</comment_count>
      <attachid>381760</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-25 16:09:02 -0700</bug_when>
    <thetext>Comment on attachment 381760
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; A short comment mentioning the change to `pauseData` would be nice.

Can do :)

&gt;&gt; Source/WebCore/inspector/agents/page/PageDOMDebuggerAgent.cpp:197
&gt;&gt; +    {
&gt; 
&gt; Why the nested scope? Nested scopes are usually to control the lifetime of an RAII object.

I did this to make it clearer what `rootBit`, `derivedBit`, and `matchBit` are used for.  I often use scopes for more than just RAII, as it&apos;s a nice way of segmenting code.

&gt;&gt; LayoutTests/inspector/dom-debugger/dom-breakpoints.html:255
&gt;&gt; +        name: &quot;NodeRemovedDirect&quot;,
&gt; 
&gt; How about &quot;NodeRemovedSelf&quot;? It pairs nicely with &quot;NodeRemovedAncestor&quot;, whereas &quot;Direct&quot; makes me think of something as opposed to &quot;indirect&quot;, which also sort of makes sense but isn&apos;t how we usually refer to DOM relationships.

Ooo I like it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584080</commentid>
    <comment_count>4</comment_count>
      <attachid>381760</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-10-25 16:24:59 -0700</bug_when>
    <thetext>Comment on attachment 381760
Patch

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

&gt;&gt;&gt; Source/WebCore/inspector/agents/page/PageDOMDebuggerAgent.cpp:197
&gt;&gt;&gt; +    {
&gt;&gt; 
&gt;&gt; Why the nested scope? Nested scopes are usually to control the lifetime of an RAII object.
&gt; 
&gt; I did this to make it clearer what `rootBit`, `derivedBit`, and `matchBit` are used for.  I often use scopes for more than just RAII, as it&apos;s a nice way of segmenting code.

I think this goes against the grain of typical WebKit C++ style. I&apos;d rather we didn&apos;t use nested scopes like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585779</commentid>
    <comment_count>5</comment_count>
      <attachid>382426</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-30 22:19:34 -0700</bug_when>
    <thetext>Created attachment 382426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585780</commentid>
    <comment_count>6</comment_count>
      <attachid>382427</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-30 22:22:27 -0700</bug_when>
    <thetext>Created attachment 382427
Patch

This is what I get for trying to manually edit a diff -.-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586009</commentid>
    <comment_count>7</comment_count>
      <attachid>382427</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2019-10-31 12:24:49 -0700</bug_when>
    <thetext>Comment on attachment 382427
Patch

r=me, nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586042</commentid>
    <comment_count>8</comment_count>
      <attachid>382427</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-31 13:20:51 -0700</bug_when>
    <thetext>Comment on attachment 382427
Patch

Clearing flags on attachment: 382427

Committed r251871: &lt;https://trac.webkit.org/changeset/251871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586043</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-31 13:20:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586044</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-31 13:21:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56792748&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381760</attachid>
            <date>2019-10-23 18:01:25 -0700</date>
            <delta_ts>2019-10-30 22:19:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203349-20191023180125.patch</filename>
            <type>text/plain</type>
            <size>20651</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDI0NjhkZmExZmNlMGJkYjExMjU0MTU5MjI0MTQxYTM0ZDg1ZWQ2Li5j
NTdmMzZhNWI1YjA2ZThiZDBkMDk1MjA4ZmZiY2Q0MjkwNzk4OGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTktMTAtMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTURlYnVnZ2VyOiBOb2RlIFJlbW92ZWQgYnJl
YWtwb2ludHMgc2hvdWxkIGZpcmUgd2hlbmV2ZXIgdGhlIG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRo
ZSBtYWluIERPTSB0cmVlLCBub3QganVzdCB3aGVuIGl0J3MgcmVtb3ZlZCBmcm9tIGl0J3MgcGFy
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMz
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZURPTURlYnVnZ2VyQWdlbnQ6OndpbGxSZW1vdmVET01Ob2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2VET01EZWJ1Z2dlckFnZW50OjpkZXNjcmlwdGlvbkZvckRPTUV2
ZW50KToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOiBBZGRl
ZC4KKwogMjAxOS0xMC0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICB3cHQvY3NzL2Nzcy1pbWFnZXMvZ3JhZGllbnQvY29sb3Itc3RvcHMtcGFyc2lu
Zy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4ZDkyZDdlYzQ1YjZlMzky
YTRhNjg2YzQ4Nzk4ZTE2YTY2NWYyYTJjLi42YjQzMTU5NDU5MmEzOGJmMzM3ZDUyMDFjYzhhNjBh
MmRhNmIyZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
OS0xMC0yMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogRE9NRGVidWdnZXI6IE5vZGUgUmVtb3ZlZCBicmVha3BvaW50cyBzaG91bGQg
ZmlyZSB3aGVuZXZlciB0aGUgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIG1haW4gRE9NIHRyZWUs
IG5vdCBqdXN0IHdoZW4gaXQncyByZW1vdmVkIGZyb20gaXQncyBwYXJlbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzM0OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNvdXJjZXNO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdXBkYXRlUGF1c2VSZWFzb25TZWN0aW9u
KToKKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
czoKKwogMjAxOS0xMC0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczoga2VlcCB0aGUgZnVuY3Rpb24vb2JqZWN0IG5h
bWUgc3RpY2t5IGluIHRoZSBvYmplY3QgcHJldmlldyBwb3BvdmVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDYw
NGRiNTJkOTY4MTZkNzg5YWMwYjE2NThiYTlmODM2YTA1OTk3M2EuLjRjZTQwMWJlOTIzYWFmNDY0
ODRlYmJiMDc3ZDQ5ZTFmMmM1NGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NDEsNiArNTQxLDE1IEBA
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAgbV9jaGlsZHJl
blJlcXVlc3RlZC5jbGVhcigpOwogfQogCitpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2Rl
VG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNoKQoreworICAgIGlmICghbm9kZVRvUHVzaCkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHJldHVybiBw
dXNoTm9kZVRvRnJvbnRlbmQoaWdub3JlZCwgYm91bmROb2RlSWQoJm5vZGVUb1B1c2gtPmRvY3Vt
ZW50KCkpLCBub2RlVG9QdXNoKTsKK30KKwogaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9k
ZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnROb2RlSWQs
IE5vZGUqIG5vZGVUb1B1c2gpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gYXNzZXJ0RG9j
dW1lbnQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBjYjdiZWFhMTNh
YzM1NGU5NGY4MDdiNWI4MzY1OTI1MzJjOTlkNGI1Li43MTdhMTgwOWQyZTViMGE5ZWEyMTE0ZDk2
OTJlMDJiNjAxYTkxY2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xNzgsNiArMTc4LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzdHlsZUF0dHJpYnV0ZUludmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4m
IGVsZW1lbnRzKTsKIAorICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoTm9kZSopOwogICAgIGlu
dCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBpbnQgZG9jdW1lbnROb2RlSWQsIE5v
ZGUqKTsKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5kTm9k
ZUlkKGNvbnN0IE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDlhYTVlOTBh
OTZkNjdjZmQzZDA0OTRmNzcwODI0YTc4YzYzYjNhNDcuLjYxZGNjZDhhNWE3ZTlmMGUyYmNjYmJm
ODA3OTZlMmFlZmRjNmNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtMTg3LDE1
ICsxODcsMzUgQEAgdm9pZCBQYWdlRE9NRGVidWdnZXJBZ2VudDo6d2lsbFJlbW92ZURPTU5vZGUo
Tm9kZSYgbm9kZSkKICAgICBpZiAoIW1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTm9kZSogcGFyZW50Tm9kZSA9IEluc3BlY3RvckRP
TUFnZW50Ojppbm5lclBhcmVudE5vZGUoJm5vZGUpOwogICAgIGlmIChoYXNCcmVha3BvaW50KCZu
b2RlLCBOb2RlUmVtb3ZlZCkpIHsKLSAgICAgICAgUmVmPEpTT046Ok9iamVjdD4gZXZlbnREYXRh
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgYXV0byBldmVudERhdGEgPSBKU09O
OjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2ZW50KG5vZGUs
IE5vZGVSZW1vdmVkLCBmYWxzZSwgZXZlbnREYXRhLmdldCgpKTsKICAgICAgICAgbV9kZWJ1Z2dl
ckFnZW50LT5icmVha1Byb2dyYW0oSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlzcGF0Y2hl
cjo6UmVhc29uOjpET00sIFdURk1vdmUoZXZlbnREYXRhKSk7Ci0gICAgfSBlbHNlIGlmIChwYXJl
bnROb2RlICYmIGhhc0JyZWFrcG9pbnQocGFyZW50Tm9kZSwgU3VidHJlZU1vZGlmaWVkKSkgewot
ICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBldmVudERhdGEgPSBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgeworICAgICAgICB1aW50MzJfdCBy
b290Qml0ID0gMSA8PCBOb2RlUmVtb3ZlZDsKKyAgICAgICAgdWludDMyX3QgZGVyaXZlZEJpdCA9
IHJvb3RCaXQgPDwgZG9tQnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQ7CisgICAgICAgIHVpbnQz
Ml90IG1hdGNoQml0ID0gcm9vdEJpdCB8IGRlcml2ZWRCaXQ7CisgICAgICAgIGZvciAoYXV0byYg
W25vZGVXaXRoQnJlYWtwb2ludCwgYnJlYWtwb2ludFR5cGVzXSA6IG1fZG9tQnJlYWtwb2ludHMp
IHsKKyAgICAgICAgICAgIGlmIChub2RlLmNvbnRhaW5zKG5vZGVXaXRoQnJlYWtwb2ludCkgJiYg
KGJyZWFrcG9pbnRUeXBlcyAmIG1hdGNoQml0KSkgeworICAgICAgICAgICAgICAgIGF1dG8gZXZl
bnREYXRhID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbkZvckRPTUV2ZW50KCpub2RlV2l0aEJyZWFrcG9pbnQsIE5vZGVSZW1vdmVkLCBmYWxzZSwg
ZXZlbnREYXRhLmdldCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogZG9tQWdlbnQgPSBt
X2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKKyAgICAgICAgICAgICAg
ICAgICAgZXZlbnREYXRhLT5zZXRJbnRlZ2VyKCJ0YXJnZXROb2RlSWQiX3MsIGRvbUFnZW50LT5w
dXNoTm9kZVRvRnJvbnRlbmQoJm5vZGUpKTsKKyAgICAgICAgICAgICAgICBtX2RlYnVnZ2VyQWdl
bnQtPmJyZWFrUHJvZ3JhbShJbnNwZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpS
ZWFzb246OkRPTSwgV1RGTW92ZShldmVudERhdGEpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvKiBwYXJlbnROb2Rl
ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVyUGFyZW50Tm9kZSgmbm9kZSk7CisgICAgaWYgKHBh
cmVudE5vZGUgJiYgaGFzQnJlYWtwb2ludChwYXJlbnROb2RlLCBTdWJ0cmVlTW9kaWZpZWQpKSB7
CisgICAgICAgIGF1dG8gZXZlbnREYXRhID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAg
ICAgZGVzY3JpcHRpb25Gb3JET01FdmVudChub2RlLCBTdWJ0cmVlTW9kaWZpZWQsIGZhbHNlLCBl
dmVudERhdGEuZ2V0KCkpOwogICAgICAgICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShJ
bnNwZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb246OkRPTSwgV1RGTW92
ZShldmVudERhdGEpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KIApAQCAtMjczLDggKzI5
Myw3IEBAIHZvaWQgUGFnZURPTURlYnVnZ2VyQWdlbnQ6OmRlc2NyaXB0aW9uRm9yRE9NRXZlbnQo
Tm9kZSYgdGFyZ2V0LCBpbnQgYnJlYWtwb2ludFR5CiAgICAgICAgIGlmIChkb21BZ2VudCkgewog
ICAgICAgICAgICAgLy8gRm9yIGluaGVyaXRhYmxlIGJyZWFrcG9pbnQgdHlwZXMsIHRhcmdldCBu
b2RlIGlzbid0IGFsd2F5cyB0aGUgc2FtZSBhcyB0aGUgbm9kZSB0aGF0IG93bnMgYSBicmVha3Bv
aW50LgogICAgICAgICAgICAgLy8gVGFyZ2V0IG5vZGUgbWF5IGJlIHVua25vd24gdG8gZnJvbnRl
bmQsIHNvIHdlIG5lZWQgdG8gcHVzaCBpdCBmaXJzdC4KLSAgICAgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IHRhcmdldE5vZGVPYmplY3Qg
PSBkb21BZ2VudC0+cmVzb2x2ZU5vZGUoJnRhcmdldCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
YmFja3RyYWNlT2JqZWN0R3JvdXApOwotICAgICAgICAgICAgZGVzY3JpcHRpb24uc2V0VmFsdWUo
InRhcmdldE5vZGUiLCB0YXJnZXROb2RlT2JqZWN0KTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
LnNldEludGVnZXIoInRhcmdldE5vZGVJZCJfcywgZG9tQWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVu
ZCgmdGFyZ2V0KSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaW5kIGJyZWFrcG9pbnQgb3du
ZXIgbm9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggNzdiMWJiZDVhODJiODA1ZTg2Nzhl
NjYyNzBhMzQwM2ViNmQ0OWQzNy4uN2RkZjQ1M2I5NDE5ZDIwZmE5MTQ2YzExN2ZhYWJmYTUxZmYz
NDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VET01EZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgZGVzY3JpcHRpb25Gb3JET01FdmVudChOb2RlJiwgaW50IGJyZWFrcG9pbnRU
eXBlLCBib29sIGluc2VydGlvbiwgSlNPTjo6T2JqZWN0JiBkZXNjcmlwdGlvbik7CiAgICAgdm9p
ZCB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9kZSosIHVpbnQzMl90IHJvb3RNYXNrLCBib29s
IHNldCk7CisgICAgYm9vbCBjaGVja1N1YnRyZWVGb3JOb2RlUmVtb3ZlZChOb2RlKik7CiAgICAg
Ym9vbCBoYXNCcmVha3BvaW50KE5vZGUqLCBpbnQgdHlwZSk7CiAKICAgICBIYXNoTWFwPE5vZGUq
LCB1aW50MzJfdD4gbV9kb21CcmVha3BvaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDU3MjU2YjU0Y2ExMDhiZjJkMzQ1NDVhMzM4MTUyMDM0ZDE2MzhkZmEuLjEzY2M3
ODcwMDRiNTk2OTg0ZmZiM2UzYzU1MTJhNTc0NzZjNzVlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcwpAQCAtODg3LDYgKzg4Nyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92
ZSBMb2NhbCBPdmVycmlkZSJdID0gIlJlbW92ZSBMb2NhbCBPdmVycmlkZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiJdID0gIlJlbW92ZSBXYXRjaCBFeHByZXNz
aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSBwcm9iZSJdID0gIlJlbW92ZSBwcm9iZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUgdGhpcyBicmVha3BvaW50IGFjdGlvbiJdID0gIlJl
bW92ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlbW92ZWQg
YW5jZXN0b3IgIl0gPSAiUmVtb3ZlZCBhbmNlc3RvciAiOwogbG9jYWxpemVkU3RyaW5nc1siUmVt
b3ZlZCBkZXNjZW5kYW50ICJdID0gIlJlbW92ZWQgZGVzY2VuZGFudCAiOwogbG9jYWxpemVkU3Ry
aW5nc1siUmVuZGVyIFBpcGVsaW5lICVkIl0gPSAiUmVuZGVyIFBpcGVsaW5lICVkIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlbmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJj
ZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKaW5kZXggYmVh
MjI2ZTI2NmQ0NmYwZDY5OThkMGMwOWNiMGI3OTU3MmQwMDNmYS4uN2NjNDFjY2UyNWQyMjczM2Jj
ZTgxNDIwMTQ4Y2Y4OTU0NmY2ZDkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmln
YXRpb25TaWRlYmFyUGFuZWwuanMKQEAgLTE0NDQsMTMgKzE0NDQsNyBAQCBXSS5Tb3VyY2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
IGV4dGVuZHMgVwogICAgICAgICAgICAgbGV0IG93bmVyRWxlbWVudFJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRWxlbWVudCIpLCBXSS5saW5raWZ5Tm9k
ZVJlZmVyZW5jZShkb21Ob2RlKSk7CiAgICAgICAgICAgICB0aGlzLl9wYXVzZVJlYXNvbkdyb3Vw
LnJvd3MgPSBbZG9tQnJlYWtwb2ludFJvdywgb3duZXJFbGVtZW50Um93XTsKIAotICAgICAgICAg
ICAgaWYgKGRvbUJyZWFrcG9pbnQudHlwZSAhPT0gV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRy
ZWVNb2RpZmllZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQocGF1c2VEYXRhLnRhcmdldE5vZGUpOwotCi0gICAgICAgICAgICBsZXQg
cmVtb3RlT2JqZWN0ID0gV0kuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHBhdXNlRGF0YS50YXJn
ZXROb2RlLCB0YXJnZXQpOwotICAgICAgICAgICAgcmVtb3RlT2JqZWN0LnB1c2hOb2RlVG9Gcm9u
dGVuZCgobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBsZXQgdXBkYXRlVGFyZ2V0RGVzY3JpcHRp
b24gPSAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFub2RlSWQpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ2MCwxNCArMTQ1NCwzMyBAQCBXSS5Tb3VyY2Vz
TmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsIGV4dGVuZHMgVwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAg
ICAgICBsZXQgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0g
ICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gcGF1c2VEYXRhLmluc2VydGlvbiA/IFdJ
LlVJU3RyaW5nKCJDaGlsZCBhZGRlZCB0byAiKSA6IFdJLlVJU3RyaW5nKCJSZW1vdmVkIGRlc2Nl
bmRhbnQgIik7CisKKyAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSBudWxsOworICAg
ICAgICAgICAgICAgIHN3aXRjaCAoZG9tQnJlYWtwb2ludC50eXBlKSB7CisgICAgICAgICAgICAg
ICAgY2FzZSBXSS5ET01CcmVha3BvaW50LlR5cGUuU3VidHJlZU1vZGlmaWVkOgorICAgICAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHBhdXNlRGF0YS5pbnNlcnRpb24gPyBXSS5VSVN0cmlu
ZygiQ2hpbGQgYWRkZWQgdG8gIikgOiBXSS5VSVN0cmluZygiUmVtb3ZlZCBkZXNjZW5kYW50ICIp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFdJLkRP
TUJyZWFrcG9pbnQuVHlwZS5Ob2RlUmVtb3ZlZDoKKyAgICAgICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gPSBXSS5VSVN0cmluZygiUmVtb3ZlZCBhbmNlc3RvciAiKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICBmcmFnbWVudC5hcHBlbmQoZGVz
Y3JpcHRpb24sIFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKG5vZGUpKTsKIAogICAgICAgICAgICAg
ICAgIGxldCB0YXJnZXREZXNjcmlwdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBs
ZVJvdyhXSS5VSVN0cmluZygiRGV0YWlscyIpLCBmcmFnbWVudCk7CiAgICAgICAgICAgICAgICAg
dGFyZ2V0RGVzY3JpcHRpb25Sb3cuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0YXJnZXQtZGVzY3Jp
cHRpb24iKTsKIAogICAgICAgICAgICAgICAgIHRoaXMuX3BhdXNlUmVhc29uR3JvdXAucm93cyA9
IHRoaXMuX3BhdXNlUmVhc29uR3JvdXAucm93cy5jb25jYXQodGFyZ2V0RGVzY3JpcHRpb25Sb3cp
OwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBpZiAocGF1
c2VEYXRhLnRhcmdldE5vZGVJZCkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRv
bUJyZWFrcG9pbnQudHlwZSA9PT0gV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRyZWVNb2RpZmll
ZCB8fCBkb21CcmVha3BvaW50LnR5cGUgPT09IFdJLkRPTUJyZWFrcG9pbnQuVHlwZS5Ob2RlUmVt
b3ZlZCk7CisgICAgICAgICAgICAgICAgdXBkYXRlVGFyZ2V0RGVzY3JpcHRpb24ocGF1c2VEYXRh
LnRhcmdldE5vZGVJZCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhdXNlRGF0YS50YXJnZXRO
b2RlKSB7IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGB0YXJnZXROb2RlYCB3YXMgcmVuYW1l
ZCB0byBgdGFyZ2V0Tm9kZUlkYCBhbmQgd2FzIGNoYW5nZWQgZnJvbSBhIGBSdW50aW1lLlJlbW90
ZU9iamVjdGAgdG8gYSBgRE9NLk5vZGVJZGAuCisgICAgICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQoZG9tQnJlYWtwb2ludC50eXBlID09PSBXSS5ET01CcmVha3BvaW50LlR5cGUuU3VidHJlZU1v
ZGlmaWVkKTsKKyAgICAgICAgICAgICAgICBsZXQgcmVtb3RlT2JqZWN0ID0gV0kuUmVtb3RlT2Jq
ZWN0LmZyb21QYXlsb2FkKHBhdXNlRGF0YS50YXJnZXROb2RlLCB0YXJnZXQpOworICAgICAgICAg
ICAgICAgIHJlbW90ZU9iamVjdC5wdXNoTm9kZVRvRnJvbnRlbmQodXBkYXRlVGFyZ2V0RGVzY3Jp
cHRpb24pOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGEyZGMyMDc3NWQzN2EzMzdkZmQ5MzEwYjkzYjdhYjBhMWJlNmNiYjguLjAw
OGI4OTEzZDkzMzk3MzdlZjc4OTAwYTQ4NDkyMDlhYTBhOWJiYTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxOS0xMC0yMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogRE9NRGVidWdnZXI6IE5vZGUgUmVtb3ZlZCBicmVha3BvaW50
cyBzaG91bGQgZmlyZSB3aGVuZXZlciB0aGUgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIG1haW4g
RE9NIHRyZWUsIG5vdCBqdXN0IHdoZW4gaXQncyByZW1vdmVkIGZyb20gaXQncyBwYXJlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzM0OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9y
L2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTAtMjIg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgd3B0L2Nz
cy9jc3MtaW1hZ2VzL2dyYWRpZW50L2NvbG9yLXN0b3BzLXBhcnNpbmcuaHRtbCBmYWlscwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2lu
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20t
YnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IDBlMTM0MmY2NjRlMzUwMDU5NTIxODYzY2Fl
NzZjNzBhOTI2YTc0OTcuLjVmYTlhODU0Y2Y0MjczNjZmMmM2OGU5YmM2Y2U5NTk2YTdhOTgxOTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZG9tLWJyZWFr
cG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVn
Z2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTE1LDYgKzE1LDEwIEBAIFBBU1M6
IEJyZWFrcG9pbnQgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgdHlwZS4KIENhbGwgRE9NIG9wZXJhdGlv
bi4KIFBBVVNFRDoKIFBBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRE9NLgorUEFTUzogUGF1
c2UgdHlwZSBzaG91bGQgYmUgJ3N1YnRyZWUtbW9kaWZpZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlk
IHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KK1BBU1M6IFBhdXNlIGluc2VydGlvbiBzaG91bGQg
YmUgJ3RydWUnLgorUEFTUzogUGF1c2UgdGFyZ2V0Tm9kZUlkIHNob3VsZCBtYXRjaCBub2RlSWQu
CiBDQUxMIFNUQUNLOgogMDogW0ZdIHN1YnRyZWVNb2RpZmllZFRlc3QKIDE6IFtQXSBHbG9iYWwg
Q29kZQpAQCAtNDUsNiArNDksOCBAQCBQQVNTOiBCcmVha3BvaW50IHNob3VsZCBoYXZlIGV4cGVj
dGVkIHR5cGUuCiBDYWxsIERPTSBvcGVyYXRpb24uCiBQQVVTRUQ6CiBQQVNTOiBQYXVzZSByZWFz
b24gc2hvdWxkIGJlIERPTS4KK1BBU1M6IFBhdXNlIHR5cGUgc2hvdWxkIGJlICdhdHRyaWJ1dGUt
bW9kaWZpZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlkIHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4K
IENBTEwgU1RBQ0s6CiAwOiBbRl0gYXR0cmlidXRlTW9kaWZpZWRUZXN0CiAxOiBbUF0gR2xvYmFs
IENvZGUKQEAgLTY5LDMwICs3NSw2NSBAQCBXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJl
dHVybi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4KIC0t
IFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFr
cG9pbnRzLk5vZGVSZW1vdmVkLkJyZWFrcG9pbnRFbmFibGVkCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogRE9NQnJlYWtwb2ludHMuTm9kZVJlbW92ZWREaXJlY3QuQnJlYWtwb2ludEVuYWJsZWQKIFBB
U1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJyZWFrcG9pbnQuCiBQQVNTOiBCcmVha3BvaW50IHNo
b3VsZCBoYXZlIGV4cGVjdGVkIHR5cGUuCiBDYWxsIERPTSBvcGVyYXRpb24uCiBQQVVTRUQ6CiBQ
QVNTOiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIERPTS4KK1BBU1M6IFBhdXNlIHR5cGUgc2hvdWxk
IGJlICdub2RlLXJlbW92ZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlkIHNob3VsZCBiZSBleHBlY3Rl
ZCB2YWx1ZS4KIENBTEwgU1RBQ0s6Ci0wOiBbRl0gbm9kZVJlbW92ZWRUZXN0CiswOiBbRl0gbm9k
ZVJlbW92ZWREaXJlY3RUZXN0CiAxOiBbUF0gR2xvYmFsIENvZGUKIC0tIFJ1bm5pbmcgdGVzdCB0
ZWFyZG93bi4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9pbnRzLk5vZGVSZW1v
dmVkLkJyZWFrcG9pbnREaXNhYmxlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9p
bnRzLk5vZGVSZW1vdmVkRGlyZWN0LkJyZWFrcG9pbnREaXNhYmxlZAogUEFTUzogQWRkZWQgJ25v
ZGUtcmVtb3ZlZCcgYnJlYWtwb2ludC4KIFdhaXQgZm9yIGV2YWx1YXRlIGluIHBhZ2UgdG8gcmV0
dXJuLgogUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBmb3IgZGlzYWJsZWQgYnJlYWtwb2ludC4KIC0t
IFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFr
cG9pbnRzLk5vZGVSZW1vdmVkLkRlYnVnZ2VyRGlzYWJsZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBET01CcmVha3BvaW50cy5Ob2RlUmVtb3ZlZERpcmVjdC5EZWJ1Z2dlckRpc2FibGVkCiBQQVNT
OiBBZGRlZCAnbm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgogV2FpdCBmb3IgZXZhbHVhdGUgaW4g
cGFnZSB0byByZXR1cm4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBkaXNhYmxlZCBicmVh
a3BvaW50LgogLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCi0tLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogRE9NQnJlYWtwb2ludHMuTm9kZVJlbW92ZWQuUmVtb3ZlQnJlYWtwb2ludAorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9pbnRzLk5vZGVSZW1vdmVkRGlyZWN0LlJlbW92ZUJyZWFr
cG9pbnQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJyZWFrcG9pbnQuCitSZW1vdmUgYnJl
YWtwb2ludC4KK1dhaXQgZm9yIGV2YWx1YXRlIGluIHBhZ2UgdG8gcmV0dXJuLgorUEFTUzogU2hv
dWxkIG5vdCBwYXVzZSBmb3IgcmVtb3ZlZCBicmVha3BvaW50LgorLS0gUnVubmluZyB0ZXN0IHRl
YXJkb3duLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJlYWtwb2ludHMuTm9kZVJlbW92
ZWRBbmNlc3Rvci5CcmVha3BvaW50RW5hYmxlZAorUEFTUzogQWRkZWQgJ25vZGUtcmVtb3ZlZCcg
YnJlYWtwb2ludC4KK1BBU1M6IEJyZWFrcG9pbnQgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgdHlwZS4K
K0NhbGwgRE9NIG9wZXJhdGlvbi4KK1BBVVNFRDoKK1BBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQg
YmUgRE9NLgorUEFTUzogUGF1c2UgdHlwZSBzaG91bGQgYmUgJ25vZGUtcmVtb3ZlZCcuCitQQVNT
OiBQYXVzZSBub2RlSWQgc2hvdWxkIGJlIGV4cGVjdGVkIHZhbHVlLgorUEFTUzogUGF1c2UgdGFy
Z2V0Tm9kZUlkIHNob3VsZCBub3QgbWF0Y2ggbm9kZUlkLgorQ0FMTCBTVEFDSzoKKzA6IFtGXSBu
b2RlUmVtb3ZlZEFuY2VzdG9yVGVzdAorMTogW1BdIEdsb2JhbCBDb2RlCistLSBSdW5uaW5nIHRl
c3QgdGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2Rl
UmVtb3ZlZEFuY2VzdG9yLkJyZWFrcG9pbnREaXNhYmxlZAorUEFTUzogQWRkZWQgJ25vZGUtcmVt
b3ZlZCcgYnJlYWtwb2ludC4KK1dhaXQgZm9yIGV2YWx1YXRlIGluIHBhZ2UgdG8gcmV0dXJuLgor
UEFTUzogU2hvdWxkIG5vdCBwYXVzZSBmb3IgZGlzYWJsZWQgYnJlYWtwb2ludC4KKy0tIFJ1bm5p
bmcgdGVzdCB0ZWFyZG93bi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9pbnRz
Lk5vZGVSZW1vdmVkQW5jZXN0b3IuRGVidWdnZXJEaXNhYmxlZAorUEFTUzogQWRkZWQgJ25vZGUt
cmVtb3ZlZCcgYnJlYWtwb2ludC4KK1dhaXQgZm9yIGV2YWx1YXRlIGluIHBhZ2UgdG8gcmV0dXJu
LgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBmb3IgZGlzYWJsZWQgYnJlYWtwb2ludC4KKy0tIFJ1
bm5pbmcgdGVzdCB0ZWFyZG93bi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9p
bnRzLk5vZGVSZW1vdmVkQW5jZXN0b3IuUmVtb3ZlQnJlYWtwb2ludAogUEFTUzogQWRkZWQgJ25v
ZGUtcmVtb3ZlZCcgYnJlYWtwb2ludC4KIFJlbW92ZSBicmVha3BvaW50LgogV2FpdCBmb3IgZXZh
bHVhdGUgaW4gcGFnZSB0byByZXR1cm4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbAppbmRleCAwNDdkNjljMjI3ZmNm
ODU1MGFlNmVjOTQyN2IxN2IxMjU4N2U0NTFmLi40OGNiMjcwZjA3MWJhMjQ1MzAwMTE4MjUwOGRh
NDNkZWM3YmU4YjY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVn
Z2VyL2RvbS1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20t
ZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKQEAgLTEyLDE4ICsxMiwyNyBAQCBmdW5jdGlv
biBhdHRyaWJ1dGVNb2RpZmllZFRlc3QoKSB7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImF0dHJpYnV0ZS1tb2RpZmllZC10ZXN0Iikuc2V0QXR0cmlidXRlKCJkaXNwbGF5IiwgIm5vbmUi
KTsKIH0KIAotZnVuY3Rpb24gbm9kZVJlbW92ZWRUZXN0KCkgewotICAgIGxldCBub2RlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vZGUtcmVtb3ZlZC10ZXN0Iik7CitmdW5jdGlvbiBub2Rl
UmVtb3ZlZERpcmVjdFRlc3QoKSB7CisgICAgbGV0IG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibm9kZS1yZW1vdmVkLWRpcmVjdC10ZXN0Iik7CiAgICAgbGV0IHBhcmVudCA9IG5vZGUu
cGFyZW50Tm9kZTsKICAgICBub2RlLnJlbW92ZSgpOwogICAgIHBhcmVudC5hcHBlbmQobm9kZSk7
CiB9CiAKK2Z1bmN0aW9uIG5vZGVSZW1vdmVkQW5jZXN0b3JUZXN0KCkgeworICAgIGxldCBub2Rl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vZGUtcmVtb3ZlZC1hbmNlc3Rvci10ZXN0Iik7
CisgICAgbGV0IHBhcmVudCA9IG5vZGUucGFyZW50Tm9kZTsKKyAgICBsZXQgZ3JhbmRwYXJlbnQg
PSBwYXJlbnQucGFyZW50Tm9kZTsKKyAgICBwYXJlbnQucmVtb3ZlKG5vZGUpOworICAgIGdyYW5k
cGFyZW50LmFwcGVuZChwYXJlbnQpOworfQorCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBjb25z
dCBzdWJ0cmVlTW9kaWZpZWRUZXN0SWQgPSAic3VidHJlZS1tb2RpZmllZC10ZXN0IjsKICAgICBj
b25zdCBhdHRyaWJ1dGVNb2RpZmllZFRlc3RJZCA9ICJhdHRyaWJ1dGUtbW9kaWZpZWQtdGVzdCI7
Ci0gICAgY29uc3Qgbm9kZVJlbW92ZWRUZXN0SWQgPSAibm9kZS1yZW1vdmVkLXRlc3QiOworICAg
IGNvbnN0IG5vZGVSZW1vdmVkRGlyZWN0VGVzdElkID0gIm5vZGUtcmVtb3ZlZC1kaXJlY3QtdGVz
dCI7CisgICAgY29uc3Qgbm9kZVJlbW92ZWRBbmNlc3RvclRlc3RJZCA9ICJub2RlLXJlbW92ZWQt
YW5jZXN0b3ItdGVzdCI7CiAgICAgY29uc3QgbXVsdGlwbGVCcmVha3BvaW50c1Rlc3RJZCA9ICJt
dWx0aXBsZS1icmVha3BvaW50cy10ZXN0IjsKIAogICAgIGxldCBkZWJ1Z2dlclBhdXNlZExpc3Rl
bmVyID0gbnVsbDsKQEAgLTEwOSw3ICsxMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
fSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gYWRkVGVzdHNGb3JCcmVha3BvaW50VHlwZSh7bmFt
ZSwgZWxlbWVudElkZW50aWZpZXIsIHR5cGUsIGV4cHJlc3Npb259KSB7CisgICAgZnVuY3Rpb24g
YWRkVGVzdHNGb3JCcmVha3BvaW50VHlwZSh7bmFtZSwgZWxlbWVudElkZW50aWZpZXIsIHR5cGUs
IGV4cHJlc3Npb24sIGluc2VydGlvbiwgc2hvdWxkTWF0Y2h9KSB7CiAgICAgICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWU6IGBET01CcmVha3BvaW50cy4ke25hbWV9LkJy
ZWFrcG9pbnRFbmFibGVkYCwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBk
ZWJ1Z2dlciBwYXVzZXMgZm9yIGJyZWFrcG9pbnQgdHlwZS4iLApAQCAtMTI4LDggKzEzNywyMiBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBX
SS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZl
Q2FsbEZyYW1lLnRhcmdldCk7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQQVVTRUQ6Iik7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwodGFyZ2V0RGF0YS5wYXVzZVJlYXNvbiwgV0kuRGVidWdnZXJNYW5hZ2VyLlBhdXNlUmVhc29u
LkRPTSwgIlBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRE9NLiIpOwotICAgICAgICAgICAgICAgICAg
ICBsb2dBY3RpdmVTdGFja1RyYWNlKCk7CiAKKyAgICAgICAgICAgICAgICAgICAgbGV0IHBhdXNl
RGF0YSA9IHRhcmdldERhdGEucGF1c2VEYXRhOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHBhdXNlRGF0YS50eXBlLCB0eXBlLCBgUGF1c2UgdHlwZSBzaG91
bGQgYmUgJyR7dHlwZX0nLmApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHBhdXNlRGF0YS5ub2RlSWQsIGRvbU5vZGVJZGVudGlmaWVyLCBgUGF1c2Ugbm9k
ZUlkIHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS5gKTsKKworICAgICAgICAgICAgICAgICAgICBp
ZiAoaW5zZXJ0aW9uICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGluc2VydGlvbiwgdGFyZ2V0LnBhdXNlRGF0YS5pbnNlcnRp
b24sIGBQYXVzZSBpbnNlcnRpb24gc2hvdWxkIGJlICcke2luc2VydGlvbn0nLmApOworCisgICAg
ICAgICAgICAgICAgICAgIGlmIChwYXVzZURhdGEudGFyZ2V0Tm9kZUlkKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoc2hvdWxkTWF0Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChwYXVzZURhdGEudGFyZ2V0Tm9kZUlkLCBwYXVz
ZURhdGEubm9kZUlkLCAiUGF1c2UgdGFyZ2V0Tm9kZUlkIHNob3VsZCBtYXRjaCBub2RlSWQuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbChwYXVzZURhdGEudGFyZ2V0Tm9kZUlkLCBw
YXVzZURhdGEubm9kZUlkLCAiUGF1c2UgdGFyZ2V0Tm9kZUlkIHNob3VsZCBub3QgbWF0Y2ggbm9k
ZUlkLiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbG9n
QWN0aXZlU3RhY2tUcmFjZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gV0kuZGVidWdn
ZXJNYW5hZ2VyLnJlc3VtZSgpOwogICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg
LnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKQEAgLTIxNyw2ICsyNDAsOCBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgZWxlbWVudElkZW50aWZpZXI6IHN1YnRyZWVNb2RpZmllZFRlc3RJZCwKICAg
ICAgICAgdHlwZTogV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRyZWVNb2RpZmllZCwKICAgICAg
ICAgZXhwcmVzc2lvbjogInN1YnRyZWVNb2RpZmllZFRlc3QoKSIsCisgICAgICAgIGluc2VydGlv
bjogdHJ1ZSwKKyAgICAgICAgc2hvdWxkTWF0Y2g6IHRydWUsCiAgICAgfSk7CiAKICAgICBhZGRU
ZXN0c0ZvckJyZWFrcG9pbnRUeXBlKHsKQEAgLTIyNywxMCArMjUyLDE4IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIH0pOwogCiAgICAgYWRkVGVzdHNGb3JCcmVha3BvaW50VHlwZSh7Ci0gICAgICAg
IG5hbWU6ICJOb2RlUmVtb3ZlZCIsCi0gICAgICAgIGVsZW1lbnRJZGVudGlmaWVyOiBub2RlUmVt
b3ZlZFRlc3RJZCwKKyAgICAgICAgbmFtZTogIk5vZGVSZW1vdmVkRGlyZWN0IiwKKyAgICAgICAg
ZWxlbWVudElkZW50aWZpZXI6IG5vZGVSZW1vdmVkRGlyZWN0VGVzdElkLAogICAgICAgICB0eXBl
OiBXSS5ET01CcmVha3BvaW50LlR5cGUuTm9kZVJlbW92ZWQsCi0gICAgICAgIGV4cHJlc3Npb246
ICJub2RlUmVtb3ZlZFRlc3QoKSIsCisgICAgICAgIGV4cHJlc3Npb246ICJub2RlUmVtb3ZlZERp
cmVjdFRlc3QoKSIsCisgICAgfSk7CisKKyAgICBhZGRUZXN0c0ZvckJyZWFrcG9pbnRUeXBlKHsK
KyAgICAgICAgbmFtZTogIk5vZGVSZW1vdmVkQW5jZXN0b3IiLAorICAgICAgICBlbGVtZW50SWRl
bnRpZmllcjogbm9kZVJlbW92ZWRBbmNlc3RvclRlc3RJZCwKKyAgICAgICAgdHlwZTogV0kuRE9N
QnJlYWtwb2ludC5UeXBlLk5vZGVSZW1vdmVkLAorICAgICAgICBleHByZXNzaW9uOiAibm9kZVJl
bW92ZWRBbmNlc3RvclRlc3QoKSIsCisgICAgICAgIHNob3VsZE1hdGNoOiB0cnVlLAogICAgIH0p
OwogCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewpAQCAtMzUzLDcgKzM4Niw4IEBAIGZ1bmN0aW9u
IHRlc3QoKQogPGRpdiBpZD0idGVzdC1jb250YWluZXIiIHN0eWxlPSJkaXNwbGF5OiBub25lIj4K
ICAgICA8ZGl2IGlkPSJzdWJ0cmVlLW1vZGlmaWVkLXRlc3QiPjwvZGl2PgogICAgIDxkaXYgaWQ9
ImF0dHJpYnV0ZS1tb2RpZmllZC10ZXN0Ij48L2Rpdj4KLSAgICA8ZGl2IGlkPSJub2RlLXJlbW92
ZWQtdGVzdCI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm9kZS1yZW1vdmVkLWRpcmVjdC10ZXN0Ij48
L2Rpdj4KKyAgICA8ZGl2PjxkaXYgaWQ9Im5vZGUtcmVtb3ZlZC1hbmNlc3Rvci10ZXN0Ij48L2Rp
dj48L2Rpdj4KICAgICA8ZGl2IGlkPSJtdWx0aXBsZS1icmVha3BvaW50cy10ZXN0Ij48L2Rpdj4K
IDwvZGl2PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382426</attachid>
            <date>2019-10-30 22:19:34 -0700</date>
            <delta_ts>2019-10-30 22:22:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203349.patch</filename>
            <type>text/plain</type>
            <size>21265</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDI0NjhkZmExZmNlMGJkYjExMjU0MTU5MjI0MTQxYTM0ZDg1ZWQ2Li5j
NTdmMzZhNWI1YjA2ZThiZDBkMDk1MjA4ZmZiY2Q0MjkwNzk4OGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTktMTAtMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTURlYnVnZ2VyOiBOb2RlIFJlbW92ZWQgYnJl
YWtwb2ludHMgc2hvdWxkIGZpcmUgd2hlbmV2ZXIgdGhlIG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRo
ZSBtYWluIERPTSB0cmVlLCBub3QganVzdCB3aGVuIGl0J3MgcmVtb3ZlZCBmcm9tIGl0J3MgcGFy
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMz
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCisKKyAgICAgICAg
UmVwbGFjZSBgdGFyZ2V0Tm9kZWAgKHdoaWNoIHdhcyBhIGBSdW50aW1lLlJlbW90ZU9iamVjdGAp
IHdpdGggYSBgdGFyZ2V0Tm9kZUlkYCAod2hpY2ggaXMgYQorICAgICAgICBgRE9NLk5vZGVJZGAp
IHdoZW4gZGlzcGF0Y2hpbmcgYERPTURlYnVnZ2VyYCBwYXVzZXMuIEFkZGl0aW9uYWxseSwgaW5j
bHVkZSB0aGUgYW5jZXN0b3IncworICAgICAgICBgRE9NLk5vZGVJZGAgYXMgdGhlIGB0YXJnZXRO
b2RlSWRgIHdoZW5ldmVyIGFuIGFuY2VzdG9yIGlzIHJlbW92ZWQgdGhhdCBoYXMgYSBkZXNjZW5k
YW50CisgICAgICAgIHdpdGggYSBub2RlIHJlbW92ZWQgRE9NIGJyZWFrcG9pbnQuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZURPTURlYnVnZ2VyQWdlbnQ6OndpbGxSZW1vdmVET01Ob2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VET01EZWJ1Z2dlckFnZW50OjpkZXNjcmlwdGlvbkZvckRP
TUV2ZW50KToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOiBB
ZGRlZC4KKwogMjAxOS0xMC0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICB3cHQvY3NzL2Nzcy1pbWFnZXMvZ3JhZGllbnQvY29sb3Itc3RvcHMtcGFy
c2luZy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4ZDkyZDdlYzQ1YjZl
MzkyYTRhNjg2YzQ4Nzk4ZTE2YTY2NWYyYTJjLi42YjQzMTU5NDU5MmEzOGJmMzM3ZDUyMDFjYzhh
NjBhMmRhNmIyZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxOS0xMC0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogRE9NRGVidWdnZXI6IE5vZGUgUmVtb3ZlZCBicmVha3BvaW50cyBzaG91
bGQgZmlyZSB3aGVuZXZlciB0aGUgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIG1haW4gRE9NIHRy
ZWUsIG5vdCBqdXN0IHdoZW4gaXQncyByZW1vdmVkIGZyb20gaXQncyBwYXJlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzM0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgYHRhcmdldE5v
ZGVgICh3aGljaCB3YXMgYSBgUnVudGltZS5SZW1vdGVPYmplY3RgKSB3aXRoIGEgYHRhcmdldE5v
ZGVJZGAgKHdoaWNoIGlzIGEKKyAgICAgICAgYERPTS5Ob2RlSWRgKSB3aGVuIGRpc3BhdGNoaW5n
IGBET01EZWJ1Z2dlcmAgcGF1c2VzLiBBZGRpdGlvbmFsbHksIGluY2x1ZGUgdGhlIGFuY2VzdG9y
J3MKKyAgICAgICAgYERPTS5Ob2RlSWRgIGFzIHRoZSBgdGFyZ2V0Tm9kZUlkYCB3aGVuZXZlciBh
biBhbmNlc3RvciBpcyByZW1vdmVkIHRoYXQgaGFzIGEgZGVzY2VuZGFudAorICAgICAgICB3aXRo
IGEgbm9kZSByZW1vdmVkIERPTSBicmVha3BvaW50LgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNv
dXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdXBkYXRlUGF1c2VSZWFzb25T
ZWN0aW9uKToKKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKwogMjAxOS0xMC0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczoga2VlcCB0aGUgZnVuY3Rpb24vb2Jq
ZWN0IG5hbWUgc3RpY2t5IGluIHRoZSBvYmplY3QgcHJldmlldyBwb3BvdmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmlu
ZGV4IDYwNGRiNTJkOTY4MTZkNzg5YWMwYjE2NThiYTlmODM2YTA1OTk3M2EuLjRjZTQwMWJlOTIz
YWFmNDY0ODRlYmJiMDc3ZDQ5ZTFmMmM1NGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NDEsNiArNTQx
LDE1IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAgbV9j
aGlsZHJlblJlcXVlc3RlZC5jbGVhcigpOwogfQogCitpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1
c2hOb2RlVG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNoKQoreworICAgIGlmICghbm9kZVRvUHVz
aCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHJl
dHVybiBwdXNoTm9kZVRvRnJvbnRlbmQoaWdub3JlZCwgYm91bmROb2RlSWQoJm5vZGVUb1B1c2gt
PmRvY3VtZW50KCkpLCBub2RlVG9QdXNoKTsKK30KKwogaW50IEluc3BlY3RvckRPTUFnZW50Ojpw
dXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnRO
b2RlSWQsIE5vZGUqIG5vZGVUb1B1c2gpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gYXNz
ZXJ0RG9jdW1lbnQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBjYjdi
ZWFhMTNhYzM1NGU5NGY4MDdiNWI4MzY1OTI1MzJjOTlkNGI1Li43MTdhMTgwOWQyZTViMGE5ZWEy
MTE0ZDk2OTJlMDJiNjAxYTkxY2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xNzgsNiArMTc4LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzdHlsZUF0dHJpYnV0ZUludmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxFbGVt
ZW50Kj4mIGVsZW1lbnRzKTsKIAorICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoTm9kZSopOwog
ICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBpbnQgZG9jdW1lbnROb2Rl
SWQsIE5vZGUqKTsKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJv
dW5kTm9kZUlkKGNvbnN0IE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDlh
YTVlOTBhOTZkNjdjZmQzZDA0OTRmNzcwODI0YTc4YzYzYjNhNDcuLjYxZGNjZDhhNWE3ZTlmMGUy
YmNjYmJmODA3OTZlMmFlZmRjNmNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmNwcApAQCAt
MTg3LDE1ICsxODcsMzUgQEAgdm9pZCBQYWdlRE9NRGVidWdnZXJBZ2VudDo6d2lsbFJlbW92ZURP
TU5vZGUoTm9kZSYgbm9kZSkKICAgICBpZiAoIW1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNB
Y3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTm9kZSogcGFyZW50Tm9kZSA9IEluc3Bl
Y3RvckRPTUFnZW50Ojppbm5lclBhcmVudE5vZGUoJm5vZGUpOwogICAgIGlmIChoYXNCcmVha3Bv
aW50KCZub2RlLCBOb2RlUmVtb3ZlZCkpIHsKLSAgICAgICAgUmVmPEpTT046Ok9iamVjdD4gZXZl
bnREYXRhID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgYXV0byBldmVudERhdGEg
PSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2ZW50
KG5vZGUsIE5vZGVSZW1vdmVkLCBmYWxzZSwgZXZlbnREYXRhLmdldCgpKTsKICAgICAgICAgbV9k
ZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlz
cGF0Y2hlcjo6UmVhc29uOjpET00sIFdURk1vdmUoZXZlbnREYXRhKSk7Ci0gICAgfSBlbHNlIGlm
IChwYXJlbnROb2RlICYmIGhhc0JyZWFrcG9pbnQocGFyZW50Tm9kZSwgU3VidHJlZU1vZGlmaWVk
KSkgewotICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBldmVudERhdGEgPSBKU09OOjpPYmplY3Q6
OmNyZWF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdWludDMyX3Qgcm9vdEJp
dCA9IDEgPDwgTm9kZVJlbW92ZWQ7CisgICAgdWludDMyX3QgZGVyaXZlZEJpdCA9IHJvb3RCaXQg
PDwgZG9tQnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQ7CisgICAgdWludDMyX3QgbWF0Y2hCaXQg
PSByb290Qml0IHwgZGVyaXZlZEJpdDsKKyAgICBmb3IgKGF1dG8mIFtub2RlV2l0aEJyZWFrcG9p
bnQsIGJyZWFrcG9pbnRUeXBlc10gOiBtX2RvbUJyZWFrcG9pbnRzKSB7CisgICAgICAgIGlmIChu
b2RlLmNvbnRhaW5zKG5vZGVXaXRoQnJlYWtwb2ludCkgJiYgKGJyZWFrcG9pbnRUeXBlcyAmIG1h
dGNoQml0KSkgeworICAgICAgICAgICAgYXV0byBldmVudERhdGEgPSBKU09OOjpPYmplY3Q6OmNy
ZWF0ZSgpOworICAgICAgICAgICAgZGVzY3JpcHRpb25Gb3JET01FdmVudCgqbm9kZVdpdGhCcmVh
a3BvaW50LCBOb2RlUmVtb3ZlZCwgZmFsc2UsIGV2ZW50RGF0YS5nZXQoKSk7CisgICAgICAgICAg
ICBpZiAoYXV0byogZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9N
QWdlbnQoKSkKKyAgICAgICAgICAgICAgICBldmVudERhdGEtPnNldEludGVnZXIoInRhcmdldE5v
ZGVJZCJfcywgZG9tQWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVuZCgmbm9kZSkpOworICAgICAgICAg
ICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250
ZW5kRGlzcGF0Y2hlcjo6UmVhc29uOjpET00sIFdURk1vdmUoZXZlbnREYXRhKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvKiBwYXJlbnROb2RlID0g
SW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVyUGFyZW50Tm9kZSgmbm9kZSk7CisgICAgaWYgKHBhcmVu
dE5vZGUgJiYgaGFzQnJlYWtwb2ludChwYXJlbnROb2RlLCBTdWJ0cmVlTW9kaWZpZWQpKSB7Cisg
ICAgICAgIGF1dG8gZXZlbnREYXRhID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAg
ZGVzY3JpcHRpb25Gb3JET01FdmVudChub2RlLCBTdWJ0cmVlTW9kaWZpZWQsIGZhbHNlLCBldmVu
dERhdGEuZ2V0KCkpOwogICAgICAgICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShJbnNw
ZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb246OkRPTSwgV1RGTW92ZShl
dmVudERhdGEpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KIApAQCAtMjczLDggKzI5MSw3
IEBAIHZvaWQgUGFnZURPTURlYnVnZ2VyQWdlbnQ6OmRlc2NyaXB0aW9uRm9yRE9NRXZlbnQoTm9k
ZSYgdGFyZ2V0LCBpbnQgYnJlYWtwb2ludFR5CiAgICAgICAgIGlmIChkb21BZ2VudCkgewogICAg
ICAgICAgICAgLy8gRm9yIGluaGVyaXRhYmxlIGJyZWFrcG9pbnQgdHlwZXMsIHRhcmdldCBub2Rl
IGlzbid0IGFsd2F5cyB0aGUgc2FtZSBhcyB0aGUgbm9kZSB0aGF0IG93bnMgYSBicmVha3BvaW50
LgogICAgICAgICAgICAgLy8gVGFyZ2V0IG5vZGUgbWF5IGJlIHVua25vd24gdG8gZnJvbnRlbmQs
IHNvIHdlIG5lZWQgdG8gcHVzaCBpdCBmaXJzdC4KLSAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IHRhcmdldE5vZGVPYmplY3QgPSBk
b21BZ2VudC0+cmVzb2x2ZU5vZGUoJnRhcmdldCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFj
a3RyYWNlT2JqZWN0R3JvdXApOwotICAgICAgICAgICAgZGVzY3JpcHRpb24uc2V0VmFsdWUoInRh
cmdldE5vZGUiLCB0YXJnZXROb2RlT2JqZWN0KTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLnNl
dEludGVnZXIoInRhcmdldE5vZGVJZCJfcywgZG9tQWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVuZCgm
dGFyZ2V0KSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaW5kIGJyZWFrcG9pbnQgb3duZXIg
bm9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9Q
YWdlRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggNzdiMWJiZDVhODJiODA1ZTg2NzhlNjYy
NzBhMzQwM2ViNmQ0OWQzNy4uN2RkZjQ1M2I5NDE5ZDIwZmE5MTQ2YzExN2ZhYWJmYTUxZmYzNDYw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VE
T01EZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgZGVzY3JpcHRpb25Gb3JET01FdmVudChOb2RlJiwgaW50IGJyZWFrcG9pbnRUeXBl
LCBib29sIGluc2VydGlvbiwgSlNPTjo6T2JqZWN0JiBkZXNjcmlwdGlvbik7CiAgICAgdm9pZCB1
cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9kZSosIHVpbnQzMl90IHJvb3RNYXNrLCBib29sIHNl
dCk7CisgICAgYm9vbCBjaGVja1N1YnRyZWVGb3JOb2RlUmVtb3ZlZChOb2RlKik7CiAgICAgYm9v
bCBoYXNCcmVha3BvaW50KE5vZGUqLCBpbnQgdHlwZSk7CiAKICAgICBIYXNoTWFwPE5vZGUqLCB1
aW50MzJfdD4gbV9kb21CcmVha3BvaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CmluZGV4IDU3MjU2YjU0Y2ExMDhiZjJkMzQ1NDVhMzM4MTUyMDM0ZDE2MzhkZmEuLjEzY2M3ODcw
MDRiNTk2OTg0ZmZiM2UzYzU1MTJhNTc0NzZjNzVlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcwpAQCAtODg3LDYgKzg4Nyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSBM
b2NhbCBPdmVycmlkZSJdID0gIlJlbW92ZSBMb2NhbCBPdmVycmlkZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiJdID0gIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSBwcm9iZSJdID0gIlJlbW92ZSBwcm9iZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUgdGhpcyBicmVha3BvaW50IGFjdGlvbiJdID0gIlJlbW92
ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlbW92ZWQgYW5j
ZXN0b3IgIl0gPSAiUmVtb3ZlZCBhbmNlc3RvciAiOwogbG9jYWxpemVkU3RyaW5nc1siUmVtb3Zl
ZCBkZXNjZW5kYW50ICJdID0gIlJlbW92ZWQgZGVzY2VuZGFudCAiOwogbG9jYWxpemVkU3RyaW5n
c1siUmVuZGVyIFBpcGVsaW5lICVkIl0gPSAiUmVuZGVyIFBpcGVsaW5lICVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKaW5kZXggYmVhMjI2
ZTI2NmQ0NmYwZDY5OThkMGMwOWNiMGI3OTU3MmQwMDNmYS4uN2NjNDFjY2UyNWQyMjczM2JjZTgx
NDIwMTQ4Y2Y4OTU0NmY2ZDkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRp
b25TaWRlYmFyUGFuZWwuanMKQEAgLTE0NDQsMTMgKzE0NDQsNyBAQCBXSS5Tb3VyY2VzTmF2aWdh
dGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4
dGVuZHMgVwogICAgICAgICAgICAgbGV0IG93bmVyRWxlbWVudFJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRWxlbWVudCIpLCBXSS5saW5raWZ5Tm9kZVJl
ZmVyZW5jZShkb21Ob2RlKSk7CiAgICAgICAgICAgICB0aGlzLl9wYXVzZVJlYXNvbkdyb3VwLnJv
d3MgPSBbZG9tQnJlYWtwb2ludFJvdywgb3duZXJFbGVtZW50Um93XTsKIAotICAgICAgICAgICAg
aWYgKGRvbUJyZWFrcG9pbnQudHlwZSAhPT0gV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRyZWVN
b2RpZmllZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQocGF1c2VEYXRhLnRhcmdldE5vZGUpOwotCi0gICAgICAgICAgICBsZXQgcmVt
b3RlT2JqZWN0ID0gV0kuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHBhdXNlRGF0YS50YXJnZXRO
b2RlLCB0YXJnZXQpOwotICAgICAgICAgICAgcmVtb3RlT2JqZWN0LnB1c2hOb2RlVG9Gcm9udGVu
ZCgobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBsZXQgdXBkYXRlVGFyZ2V0RGVzY3JpcHRpb24g
PSAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFub2RlSWQpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ2MCwxNCArMTQ1NCwzMyBAQCBXSS5Tb3VyY2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
IGV4dGVuZHMgVwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAg
ICBsZXQgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAg
ICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gcGF1c2VEYXRhLmluc2VydGlvbiA/IFdJLlVJ
U3RyaW5nKCJDaGlsZCBhZGRlZCB0byAiKSA6IFdJLlVJU3RyaW5nKCJSZW1vdmVkIGRlc2NlbmRh
bnQgIik7CisKKyAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSBudWxsOworICAgICAg
ICAgICAgICAgIHN3aXRjaCAoZG9tQnJlYWtwb2ludC50eXBlKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSBXSS5ET01CcmVha3BvaW50LlR5cGUuU3VidHJlZU1vZGlmaWVkOgorICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbiA9IHBhdXNlRGF0YS5pbnNlcnRpb24gPyBXSS5VSVN0cmluZygi
Q2hpbGQgYWRkZWQgdG8gIikgOiBXSS5VSVN0cmluZygiUmVtb3ZlZCBkZXNjZW5kYW50ICIpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFdJLkRPTUJy
ZWFrcG9pbnQuVHlwZS5Ob2RlUmVtb3ZlZDoKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24gPSBXSS5VSVN0cmluZygiUmVtb3ZlZCBhbmNlc3RvciAiKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICBmcmFnbWVudC5hcHBlbmQoZGVzY3Jp
cHRpb24sIFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKG5vZGUpKTsKIAogICAgICAgICAgICAgICAg
IGxldCB0YXJnZXREZXNjcmlwdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiRGV0YWlscyIpLCBmcmFnbWVudCk7CiAgICAgICAgICAgICAgICAgdGFy
Z2V0RGVzY3JpcHRpb25Sb3cuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0YXJnZXQtZGVzY3JpcHRp
b24iKTsKIAogICAgICAgICAgICAgICAgIHRoaXMuX3BhdXNlUmVhc29uR3JvdXAucm93cyA9IHRo
aXMuX3BhdXNlUmVhc29uR3JvdXAucm93cy5jb25jYXQodGFyZ2V0RGVzY3JpcHRpb25Sb3cpOwot
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBpZiAocGF1c2VE
YXRhLnRhcmdldE5vZGVJZCkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbUJy
ZWFrcG9pbnQudHlwZSA9PT0gV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRyZWVNb2RpZmllZCB8
fCBkb21CcmVha3BvaW50LnR5cGUgPT09IFdJLkRPTUJyZWFrcG9pbnQuVHlwZS5Ob2RlUmVtb3Zl
ZCk7CisgICAgICAgICAgICAgICAgdXBkYXRlVGFyZ2V0RGVzY3JpcHRpb24ocGF1c2VEYXRhLnRh
cmdldE5vZGVJZCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhdXNlRGF0YS50YXJnZXROb2Rl
KSB7IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGB0YXJnZXROb2RlYCB3YXMgcmVuYW1lZCB0
byBgdGFyZ2V0Tm9kZUlkYCBhbmQgd2FzIGNoYW5nZWQgZnJvbSBhIGBSdW50aW1lLlJlbW90ZU9i
amVjdGAgdG8gYSBgRE9NLk5vZGVJZGAuCisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
ZG9tQnJlYWtwb2ludC50eXBlID09PSBXSS5ET01CcmVha3BvaW50LlR5cGUuU3VidHJlZU1vZGlm
aWVkKTsKKyAgICAgICAgICAgICAgICBsZXQgcmVtb3RlT2JqZWN0ID0gV0kuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHBhdXNlRGF0YS50YXJnZXROb2RlLCB0YXJnZXQpOworICAgICAgICAgICAg
ICAgIHJlbW90ZU9iamVjdC5wdXNoTm9kZVRvRnJvbnRlbmQodXBkYXRlVGFyZ2V0RGVzY3JpcHRp
b24pOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGEyZGMyMDc3NWQzN2EzMzdkZmQ5MzEwYjkzYjdhYjBhMWJlNmNiYjguLjAwOGI4
OTEzZDkzMzk3MzdlZjc4OTAwYTQ4NDkyMDlhYTBhOWJiYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxOS0xMC0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogRE9NRGVidWdnZXI6IE5vZGUgUmVtb3ZlZCBicmVha3BvaW50cyBz
aG91bGQgZmlyZSB3aGVuZXZlciB0aGUgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIG1haW4gRE9N
IHRyZWUsIG5vdCBqdXN0IHdoZW4gaXQncyByZW1vdmVkIGZyb20gaXQncyBwYXJlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzM0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9t
LWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTAtMjIgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgd3B0L2Nzcy9j
c3MtaW1hZ2VzL2dyYWRpZW50L2NvbG9yLXN0b3BzLXBhcnNpbmcuaHRtbCBmYWlscwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJl
YWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IDBlMTM0MmY2NjRlMzUwMDU5NTIxODYzY2FlNzZj
NzBhOTI2YTc0OTcuLjVmYTlhODU0Y2Y0MjczNjZmMmM2OGU5YmM2Y2U5NTk2YTdhOTgxOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZG9tLWJyZWFrcG9p
bnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2Vy
L2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTE1LDYgKzE1LDEwIEBAIFBBU1M6IEJy
ZWFrcG9pbnQgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgdHlwZS4KIENhbGwgRE9NIG9wZXJhdGlvbi4K
IFBBVVNFRDoKIFBBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRE9NLgorUEFTUzogUGF1c2Ug
dHlwZSBzaG91bGQgYmUgJ3N1YnRyZWUtbW9kaWZpZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlkIHNo
b3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KK1BBU1M6IFBhdXNlIGluc2VydGlvbiBzaG91bGQgYmUg
J3RydWUnLgorUEFTUzogUGF1c2UgdGFyZ2V0Tm9kZUlkIHNob3VsZCBtYXRjaCBub2RlSWQuCiBD
QUxMIFNUQUNLOgogMDogW0ZdIHN1YnRyZWVNb2RpZmllZFRlc3QKIDE6IFtQXSBHbG9iYWwgQ29k
ZQpAQCAtNDUsNiArNDksOCBAQCBQQVNTOiBCcmVha3BvaW50IHNob3VsZCBoYXZlIGV4cGVjdGVk
IHR5cGUuCiBDYWxsIERPTSBvcGVyYXRpb24uCiBQQVVTRUQ6CiBQQVNTOiBQYXVzZSByZWFzb24g
c2hvdWxkIGJlIERPTS4KK1BBU1M6IFBhdXNlIHR5cGUgc2hvdWxkIGJlICdhdHRyaWJ1dGUtbW9k
aWZpZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlkIHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KIENB
TEwgU1RBQ0s6CiAwOiBbRl0gYXR0cmlidXRlTW9kaWZpZWRUZXN0CiAxOiBbUF0gR2xvYmFsIENv
ZGUKQEAgLTY5LDMwICs3NSw2NSBAQCBXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVy
bi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4KIC0tIFJ1
bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9p
bnRzLk5vZGVSZW1vdmVkLkJyZWFrcG9pbnRFbmFibGVkCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
RE9NQnJlYWtwb2ludHMuTm9kZVJlbW92ZWRTZWxmLkJyZWFrcG9pbnRFbmFibGVkCiBQQVNTOiBB
ZGRlZCAnbm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgogUEFTUzogQnJlYWtwb2ludCBzaG91bGQg
aGF2ZSBleHBlY3RlZCB0eXBlLgogQ2FsbCBET00gb3BlcmF0aW9uLgogUEFVU0VEOgogUEFTUzog
UGF1c2UgcmVhc29uIHNob3VsZCBiZSBET00uCitQQVNTOiBQYXVzZSB0eXBlIHNob3VsZCBiZSAn
bm9kZS1yZW1vdmVkJy4KK1BBU1M6IFBhdXNlIG5vZGVJZCBzaG91bGQgYmUgZXhwZWN0ZWQgdmFs
dWUuCiBDQUxMIFNUQUNLOgotMDogW0ZdIG5vZGVSZW1vdmVkVGVzdAorMDogW0ZdIG5vZGVSZW1v
dmVkRGlyZWN0VGVzdAogMTogW1BdIEdsb2JhbCBDb2RlCiAtLSBSdW5uaW5nIHRlc3QgdGVhcmRv
d24uCiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2RlUmVtb3ZlZC5C
cmVha3BvaW50RGlzYWJsZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5O
b2RlUmVtb3ZlZFNlbGYuQnJlYWtwb2ludERpc2FibGVkCiBQQVNTOiBBZGRlZCAnbm9kZS1yZW1v
dmVkJyBicmVha3BvaW50LgogV2FpdCBmb3IgZXZhbHVhdGUgaW4gcGFnZSB0byByZXR1cm4uCiBQ
QVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBkaXNhYmxlZCBicmVha3BvaW50LgogLS0gUnVubmlu
ZyB0ZXN0IHRlYXJkb3duLgogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJlYWtwb2ludHMu
Tm9kZVJlbW92ZWQuRGVidWdnZXJEaXNhYmxlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJy
ZWFrcG9pbnRzLk5vZGVSZW1vdmVkU2VsZi5EZWJ1Z2dlckRpc2FibGVkCiBQQVNTOiBBZGRlZCAn
bm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgogV2FpdCBmb3IgZXZhbHVhdGUgaW4gcGFnZSB0byBy
ZXR1cm4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBkaXNhYmxlZCBicmVha3BvaW50Lgog
LS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJl
YWtwb2ludHMuTm9kZVJlbW92ZWQuUmVtb3ZlQnJlYWtwb2ludAorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IERPTUJyZWFrcG9pbnRzLk5vZGVSZW1vdmVkU2VsZi5SZW1vdmVCcmVha3BvaW50CitQQVNT
OiBBZGRlZCAnbm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgorUmVtb3ZlIGJyZWFrcG9pbnQuCitX
YWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVybi4KK1BBU1M6IFNob3VsZCBub3QgcGF1
c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4KKy0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9pbnRzLk5vZGVSZW1vdmVkQW5jZXN0b3Iu
QnJlYWtwb2ludEVuYWJsZWQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJyZWFrcG9pbnQu
CitQQVNTOiBCcmVha3BvaW50IHNob3VsZCBoYXZlIGV4cGVjdGVkIHR5cGUuCitDYWxsIERPTSBv
cGVyYXRpb24uCitQQVVTRUQ6CitQQVNTOiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIERPTS4KK1BB
U1M6IFBhdXNlIHR5cGUgc2hvdWxkIGJlICdub2RlLXJlbW92ZWQnLgorUEFTUzogUGF1c2Ugbm9k
ZUlkIHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KK1BBU1M6IFBhdXNlIHRhcmdldE5vZGVJZCBz
aG91bGQgbm90IG1hdGNoIG5vZGVJZC4KK0NBTEwgU1RBQ0s6CiswOiBbRl0gbm9kZVJlbW92ZWRB
bmNlc3RvclRlc3QKKzE6IFtQXSBHbG9iYWwgQ29kZQorLS0gUnVubmluZyB0ZXN0IHRlYXJkb3du
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJlYWtwb2ludHMuTm9kZVJlbW92ZWRBbmNl
c3Rvci5CcmVha3BvaW50RGlzYWJsZWQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJyZWFr
cG9pbnQuCitXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVybi4KK1BBU1M6IFNob3Vs
ZCBub3QgcGF1c2UgZm9yIGRpc2FibGVkIGJyZWFrcG9pbnQuCistLSBSdW5uaW5nIHRlc3QgdGVh
cmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2RlUmVtb3Zl
ZEFuY2VzdG9yLkRlYnVnZ2VyRGlzYWJsZWQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJy
ZWFrcG9pbnQuCitXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVybi4KK1BBU1M6IFNo
b3VsZCBub3QgcGF1c2UgZm9yIGRpc2FibGVkIGJyZWFrcG9pbnQuCistLSBSdW5uaW5nIHRlc3Qg
dGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2RlUmVt
b3ZlZEFuY2VzdG9yLlJlbW92ZUJyZWFrcG9pbnQKIFBBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQn
IGJyZWFrcG9pbnQuCiBSZW1vdmUgYnJlYWtwb2ludC4KIFdhaXQgZm9yIGV2YWx1YXRlIGluIHBh
Z2UgdG8gcmV0dXJuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1
Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggMDQ3ZDY5YzIyN2ZjZjg1NTBhZTZlYzk0
MjdiMTdiMTI1ODdlNDUxZi4uNDhjYjI3MGYwNzFiYTI0NTMwMDExODI1MDhkYTQzZGVjN2JlOGI2
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJl
YWtwb2ludHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2Rv
bS1icmVha3BvaW50cy5odG1sCkBAIC0xMiwxOCArMTIsMjcgQEAgZnVuY3Rpb24gYXR0cmlidXRl
TW9kaWZpZWRUZXN0KCkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRyaWJ1dGUt
bW9kaWZpZWQtdGVzdCIpLnNldEF0dHJpYnV0ZSgiZGlzcGxheSIsICJub25lIik7CiB9CiAKLWZ1
bmN0aW9uIG5vZGVSZW1vdmVkVGVzdCgpIHsKLSAgICBsZXQgbm9kZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJub2RlLXJlbW92ZWQtdGVzdCIpOworZnVuY3Rpb24gbm9kZVJlbW92ZWREaXJl
Y3RUZXN0KCkgeworICAgIGxldCBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vZGUt
cmVtb3ZlZC1kaXJlY3QtdGVzdCIpOwogICAgIGxldCBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7
CiAgICAgbm9kZS5yZW1vdmUoKTsKICAgICBwYXJlbnQuYXBwZW5kKG5vZGUpOwogfQogCitmdW5j
dGlvbiBub2RlUmVtb3ZlZEFuY2VzdG9yVGVzdCgpIHsKKyAgICBsZXQgbm9kZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJub2RlLXJlbW92ZWQtYW5jZXN0b3ItdGVzdCIpOworICAgIGxldCBw
YXJlbnQgPSBub2RlLnBhcmVudE5vZGU7CisgICAgbGV0IGdyYW5kcGFyZW50ID0gcGFyZW50LnBh
cmVudE5vZGU7CisgICAgcGFyZW50LnJlbW92ZShub2RlKTsKKyAgICBncmFuZHBhcmVudC5hcHBl
bmQocGFyZW50KTsKK30KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgY29uc3Qgc3VidHJlZU1v
ZGlmaWVkVGVzdElkID0gInN1YnRyZWUtbW9kaWZpZWQtdGVzdCI7CiAgICAgY29uc3QgYXR0cmli
dXRlTW9kaWZpZWRUZXN0SWQgPSAiYXR0cmlidXRlLW1vZGlmaWVkLXRlc3QiOwotICAgIGNvbnN0
IG5vZGVSZW1vdmVkVGVzdElkID0gIm5vZGUtcmVtb3ZlZC10ZXN0IjsKKyAgICBjb25zdCBub2Rl
UmVtb3ZlZERpcmVjdFRlc3RJZCA9ICJub2RlLXJlbW92ZWQtZGlyZWN0LXRlc3QiOworICAgIGNv
bnN0IG5vZGVSZW1vdmVkQW5jZXN0b3JUZXN0SWQgPSAibm9kZS1yZW1vdmVkLWFuY2VzdG9yLXRl
c3QiOwogICAgIGNvbnN0IG11bHRpcGxlQnJlYWtwb2ludHNUZXN0SWQgPSAibXVsdGlwbGUtYnJl
YWtwb2ludHMtdGVzdCI7CiAKICAgICBsZXQgZGVidWdnZXJQYXVzZWRMaXN0ZW5lciA9IG51bGw7
CkBAIC0xMDksNyArMTE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH0pOwogICAgIH0K
IAotICAgIGZ1bmN0aW9uIGFkZFRlc3RzRm9yQnJlYWtwb2ludFR5cGUoe25hbWUsIGVsZW1lbnRJ
ZGVudGlmaWVyLCB0eXBlLCBleHByZXNzaW9ufSkgeworICAgIGZ1bmN0aW9uIGFkZFRlc3RzRm9y
QnJlYWtwb2ludFR5cGUoe25hbWUsIGVsZW1lbnRJZGVudGlmaWVyLCB0eXBlLCBleHByZXNzaW9u
LCBpbnNlcnRpb24sIHNob3VsZE1hdGNofSkgewogICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CiAgICAgICAgICAgICBuYW1lOiBgRE9NQnJlYWtwb2ludHMuJHtuYW1lfS5CcmVha3BvaW50RW5h
YmxlZGAsCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgZGVidWdnZXIgcGF1
c2VzIGZvciBicmVha3BvaW50IHR5cGUuIiwKQEAgLTEyOCw4ICsxMzcsMjIgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJN
YW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50
YXJnZXQpOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEOiIp
OwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERh
dGEucGF1c2VSZWFzb24sIFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJlYXNvbi5ET00sICJQYXVz
ZSByZWFzb24gc2hvdWxkIGJlIERPTS4iKTsKLSAgICAgICAgICAgICAgICAgICAgbG9nQWN0aXZl
U3RhY2tUcmFjZSgpOwogCisgICAgICAgICAgICAgICAgICAgIGxldCBwYXVzZURhdGEgPSB0YXJn
ZXREYXRhLnBhdXNlRGF0YTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChwYXVzZURhdGEudHlwZSwgdHlwZSwgYFBhdXNlIHR5cGUgc2hvdWxkIGJlICcke3R5
cGV9Jy5gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChw
YXVzZURhdGEubm9kZUlkLCBkb21Ob2RlSWRlbnRpZmllciwgYFBhdXNlIG5vZGVJZCBzaG91bGQg
YmUgZXhwZWN0ZWQgdmFsdWUuYCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGlv
biAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChpbnNlcnRpb24sIHRhcmdldC5wYXVzZURhdGEuaW5zZXJ0aW9uLCBgUGF1c2Ug
aW5zZXJ0aW9uIHNob3VsZCBiZSAnJHtpbnNlcnRpb259Jy5gKTsKKworICAgICAgICAgICAgICAg
ICAgICBpZiAocGF1c2VEYXRhLnRhcmdldE5vZGVJZCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHNob3VsZE1hdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwocGF1c2VEYXRhLnRhcmdldE5vZGVJZCwgcGF1c2VEYXRhLm5vZGVJ
ZCwgIlBhdXNlIHRhcmdldE5vZGVJZCBzaG91bGQgbWF0Y2ggbm9kZUlkLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0Tm90RXF1YWwocGF1c2VEYXRhLnRhcmdldE5vZGVJZCwgcGF1c2VEYXRhLm5v
ZGVJZCwgIlBhdXNlIHRhcmdldE5vZGVJZCBzaG91bGQgbm90IG1hdGNoIG5vZGVJZC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxvZ0FjdGl2ZVN0YWNr
VHJhY2UoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRlYnVnZ2VyTWFuYWdlci5y
ZXN1bWUoKTsKICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgIC50aGVuKHJlc29s
dmUsIHJlamVjdCk7CkBAIC0yMTcsNiArMjQwLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IGVsZW1lbnRJZGVudGlmaWVyOiBzdWJ0cmVlTW9kaWZpZWRUZXN0SWQsCiAgICAgICAgIHR5cGU6
IFdJLkRPTUJyZWFrcG9pbnQuVHlwZS5TdWJ0cmVlTW9kaWZpZWQsCiAgICAgICAgIGV4cHJlc3Np
b246ICJzdWJ0cmVlTW9kaWZpZWRUZXN0KCkiLAorICAgICAgICBpbnNlcnRpb246IHRydWUsCisg
ICAgICAgIHNob3VsZE1hdGNoOiB0cnVlLAogICAgIH0pOwogCiAgICAgYWRkVGVzdHNGb3JCcmVh
a3BvaW50VHlwZSh7CkBAIC0yMjcsMTAgKzI1MiwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9
KTsKIAogICAgIGFkZFRlc3RzRm9yQnJlYWtwb2ludFR5cGUoewotICAgICAgICBuYW1lOiAiTm9k
ZVJlbW92ZWQiLAotICAgICAgICBlbGVtZW50SWRlbnRpZmllcjogbm9kZVJlbW92ZWRUZXN0SWQs
CisgICAgICAgIG5hbWU6ICJOb2RlUmVtb3ZlZFNlbGYiLAorICAgICAgICBlbGVtZW50SWRlbnRp
Zmllcjogbm9kZVJlbW92ZWREaXJlY3RUZXN0SWQsCiAgICAgICAgIHR5cGU6IFdJLkRPTUJyZWFr
cG9pbnQuVHlwZS5Ob2RlUmVtb3ZlZCwKLSAgICAgICAgZXhwcmVzc2lvbjogIm5vZGVSZW1vdmVk
VGVzdCgpIiwKKyAgICAgICAgZXhwcmVzc2lvbjogIm5vZGVSZW1vdmVkRGlyZWN0VGVzdCgpIiwK
KyAgICB9KTsKKworICAgIGFkZFRlc3RzRm9yQnJlYWtwb2ludFR5cGUoeworICAgICAgICBuYW1l
OiAiTm9kZVJlbW92ZWRBbmNlc3RvciIsCisgICAgICAgIGVsZW1lbnRJZGVudGlmaWVyOiBub2Rl
UmVtb3ZlZEFuY2VzdG9yVGVzdElkLAorICAgICAgICB0eXBlOiBXSS5ET01CcmVha3BvaW50LlR5
cGUuTm9kZVJlbW92ZWQsCisgICAgICAgIGV4cHJlc3Npb246ICJub2RlUmVtb3ZlZEFuY2VzdG9y
VGVzdCgpIiwKKyAgICAgICAgc2hvdWxkTWF0Y2g6IHRydWUsCiAgICAgfSk7CiAKICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CkBAIC0zNTMsNyArMzg2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiA8ZGl2
IGlkPSJ0ZXN0LWNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgogICAgIDxkaXYgaWQ9
InN1YnRyZWUtbW9kaWZpZWQtdGVzdCI+PC9kaXY+CiAgICAgPGRpdiBpZD0iYXR0cmlidXRlLW1v
ZGlmaWVkLXRlc3QiPjwvZGl2PgotICAgIDxkaXYgaWQ9Im5vZGUtcmVtb3ZlZC10ZXN0Ij48L2Rp
dj4KKyAgICA8ZGl2IGlkPSJub2RlLXJlbW92ZWQtZGlyZWN0LXRlc3QiPjwvZGl2PgorICAgIDxk
aXY+PGRpdiBpZD0ibm9kZS1yZW1vdmVkLWFuY2VzdG9yLXRlc3QiPjwvZGl2PjwvZGl2PgogICAg
IDxkaXYgaWQ9Im11bHRpcGxlLWJyZWFrcG9pbnRzLXRlc3QiPjwvZGl2PgogPC9kaXY+CiA8L2Jv
ZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382427</attachid>
            <date>2019-10-30 22:22:27 -0700</date>
            <delta_ts>2019-10-31 13:20:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203349.patch</filename>
            <type>text/plain</type>
            <size>21265</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDI0NjhkZmExZmNlMGJkYjExMjU0MTU5MjI0MTQxYTM0ZDg1ZWQ2Li5j
NTdmMzZhNWI1YjA2ZThiZDBkMDk1MjA4ZmZiY2Q0MjkwNzk4OGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTktMTAtMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTURlYnVnZ2VyOiBOb2RlIFJlbW92ZWQgYnJl
YWtwb2ludHMgc2hvdWxkIGZpcmUgd2hlbmV2ZXIgdGhlIG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRo
ZSBtYWluIERPTSB0cmVlLCBub3QganVzdCB3aGVuIGl0J3MgcmVtb3ZlZCBmcm9tIGl0J3MgcGFy
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMz
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCisKKyAgICAgICAg
UmVwbGFjZSBgdGFyZ2V0Tm9kZWAgKHdoaWNoIHdhcyBhIGBSdW50aW1lLlJlbW90ZU9iamVjdGAp
IHdpdGggYSBgdGFyZ2V0Tm9kZUlkYCAod2hpY2ggaXMgYQorICAgICAgICBgRE9NLk5vZGVJZGAp
IHdoZW4gZGlzcGF0Y2hpbmcgYERPTURlYnVnZ2VyYCBwYXVzZXMuIEFkZGl0aW9uYWxseSwgaW5j
bHVkZSB0aGUgYW5jZXN0b3IncworICAgICAgICBgRE9NLk5vZGVJZGAgYXMgdGhlIGB0YXJnZXRO
b2RlSWRgIHdoZW5ldmVyIGFuIGFuY2VzdG9yIGlzIHJlbW92ZWQgdGhhdCBoYXMgYSBkZXNjZW5k
YW50CisgICAgICAgIHdpdGggYSBub2RlIHJlbW92ZWQgRE9NIGJyZWFrcG9pbnQuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZURPTURlYnVnZ2VyQWdlbnQ6OndpbGxSZW1vdmVET01Ob2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VET01EZWJ1Z2dlckFnZW50OjpkZXNjcmlwdGlvbkZvckRP
TUV2ZW50KToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOiBB
ZGRlZC4KKwogMjAxOS0xMC0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICB3cHQvY3NzL2Nzcy1pbWFnZXMvZ3JhZGllbnQvY29sb3Itc3RvcHMtcGFy
c2luZy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4ZDkyZDdlYzQ1YjZl
MzkyYTRhNjg2YzQ4Nzk4ZTE2YTY2NWYyYTJjLi42YjQzMTU5NDU5MmEzOGJmMzM3ZDUyMDFjYzhh
NjBhMmRhNmIyZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxOS0xMC0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogRE9NRGVidWdnZXI6IE5vZGUgUmVtb3ZlZCBicmVha3BvaW50cyBzaG91
bGQgZmlyZSB3aGVuZXZlciB0aGUgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIG1haW4gRE9NIHRy
ZWUsIG5vdCBqdXN0IHdoZW4gaXQncyByZW1vdmVkIGZyb20gaXQncyBwYXJlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzM0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgYHRhcmdldE5v
ZGVgICh3aGljaCB3YXMgYSBgUnVudGltZS5SZW1vdGVPYmplY3RgKSB3aXRoIGEgYHRhcmdldE5v
ZGVJZGAgKHdoaWNoIGlzIGEKKyAgICAgICAgYERPTS5Ob2RlSWRgKSB3aGVuIGRpc3BhdGNoaW5n
IGBET01EZWJ1Z2dlcmAgcGF1c2VzLiBBZGRpdGlvbmFsbHksIGluY2x1ZGUgdGhlIGFuY2VzdG9y
J3MKKyAgICAgICAgYERPTS5Ob2RlSWRgIGFzIHRoZSBgdGFyZ2V0Tm9kZUlkYCB3aGVuZXZlciBh
biBhbmNlc3RvciBpcyByZW1vdmVkIHRoYXQgaGFzIGEgZGVzY2VuZGFudAorICAgICAgICB3aXRo
IGEgbm9kZSByZW1vdmVkIERPTSBicmVha3BvaW50LgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNv
dXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdXBkYXRlUGF1c2VSZWFzb25T
ZWN0aW9uKToKKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKwogMjAxOS0xMC0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczoga2VlcCB0aGUgZnVuY3Rpb24vb2Jq
ZWN0IG5hbWUgc3RpY2t5IGluIHRoZSBvYmplY3QgcHJldmlldyBwb3BvdmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmlu
ZGV4IDYwNGRiNTJkOTY4MTZkNzg5YWMwYjE2NThiYTlmODM2YTA1OTk3M2EuLjRjZTQwMWJlOTIz
YWFmNDY0ODRlYmJiMDc3ZDQ5ZTFmMmM1NGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NDEsNiArNTQx
LDE1IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAgbV9j
aGlsZHJlblJlcXVlc3RlZC5jbGVhcigpOwogfQogCitpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1
c2hOb2RlVG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNoKQoreworICAgIGlmICghbm9kZVRvUHVz
aCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHJl
dHVybiBwdXNoTm9kZVRvRnJvbnRlbmQoaWdub3JlZCwgYm91bmROb2RlSWQoJm5vZGVUb1B1c2gt
PmRvY3VtZW50KCkpLCBub2RlVG9QdXNoKTsKK30KKwogaW50IEluc3BlY3RvckRPTUFnZW50Ojpw
dXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnRO
b2RlSWQsIE5vZGUqIG5vZGVUb1B1c2gpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gYXNz
ZXJ0RG9jdW1lbnQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBjYjdi
ZWFhMTNhYzM1NGU5NGY4MDdiNWI4MzY1OTI1MzJjOTlkNGI1Li43MTdhMTgwOWQyZTViMGE5ZWEy
MTE0ZDk2OTJlMDJiNjAxYTkxY2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xNzgsNiArMTc4LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzdHlsZUF0dHJpYnV0ZUludmFsaWRhdGVkKGNvbnN0IFZlY3RvcjxFbGVt
ZW50Kj4mIGVsZW1lbnRzKTsKIAorICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoTm9kZSopOwog
ICAgIGludCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBpbnQgZG9jdW1lbnROb2Rl
SWQsIE5vZGUqKTsKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJv
dW5kTm9kZUlkKGNvbnN0IE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDlh
YTVlOTBhOTZkNjdjZmQzZDA0OTRmNzcwODI0YTc4YzYzYjNhNDcuLjYxZGNjZDhhNWE3ZTlmMGUy
YmNjYmJmODA3OTZlMmFlZmRjNmNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmNwcApAQCAt
MTg3LDE1ICsxODcsMzMgQEAgdm9pZCBQYWdlRE9NRGVidWdnZXJBZ2VudDo6d2lsbFJlbW92ZURP
TU5vZGUoTm9kZSYgbm9kZSkKICAgICBpZiAoIW1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNB
Y3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTm9kZSogcGFyZW50Tm9kZSA9IEluc3Bl
Y3RvckRPTUFnZW50Ojppbm5lclBhcmVudE5vZGUoJm5vZGUpOwogICAgIGlmIChoYXNCcmVha3Bv
aW50KCZub2RlLCBOb2RlUmVtb3ZlZCkpIHsKLSAgICAgICAgUmVmPEpTT046Ok9iamVjdD4gZXZl
bnREYXRhID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgYXV0byBldmVudERhdGEg
PSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2ZW50
KG5vZGUsIE5vZGVSZW1vdmVkLCBmYWxzZSwgZXZlbnREYXRhLmdldCgpKTsKICAgICAgICAgbV9k
ZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlz
cGF0Y2hlcjo6UmVhc29uOjpET00sIFdURk1vdmUoZXZlbnREYXRhKSk7Ci0gICAgfSBlbHNlIGlm
IChwYXJlbnROb2RlICYmIGhhc0JyZWFrcG9pbnQocGFyZW50Tm9kZSwgU3VidHJlZU1vZGlmaWVk
KSkgewotICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBldmVudERhdGEgPSBKU09OOjpPYmplY3Q6
OmNyZWF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdWludDMyX3Qgcm9vdEJp
dCA9IDEgPDwgTm9kZVJlbW92ZWQ7CisgICAgdWludDMyX3QgZGVyaXZlZEJpdCA9IHJvb3RCaXQg
PDwgZG9tQnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQ7CisgICAgdWludDMyX3QgbWF0Y2hCaXQg
PSByb290Qml0IHwgZGVyaXZlZEJpdDsKKyAgICBmb3IgKGF1dG8mIFtub2RlV2l0aEJyZWFrcG9p
bnQsIGJyZWFrcG9pbnRUeXBlc10gOiBtX2RvbUJyZWFrcG9pbnRzKSB7CisgICAgICAgIGlmIChu
b2RlLmNvbnRhaW5zKG5vZGVXaXRoQnJlYWtwb2ludCkgJiYgKGJyZWFrcG9pbnRUeXBlcyAmIG1h
dGNoQml0KSkgeworICAgICAgICAgICAgYXV0byBldmVudERhdGEgPSBKU09OOjpPYmplY3Q6OmNy
ZWF0ZSgpOworICAgICAgICAgICAgZGVzY3JpcHRpb25Gb3JET01FdmVudCgqbm9kZVdpdGhCcmVh
a3BvaW50LCBOb2RlUmVtb3ZlZCwgZmFsc2UsIGV2ZW50RGF0YS5nZXQoKSk7CisgICAgICAgICAg
ICBpZiAoYXV0byogZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9N
QWdlbnQoKSkKKyAgICAgICAgICAgICAgICBldmVudERhdGEtPnNldEludGVnZXIoInRhcmdldE5v
ZGVJZCJfcywgZG9tQWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVuZCgmbm9kZSkpOworICAgICAgICAg
ICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250
ZW5kRGlzcGF0Y2hlcjo6UmVhc29uOjpET00sIFdURk1vdmUoZXZlbnREYXRhKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvKiBwYXJlbnROb2RlID0g
SW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVyUGFyZW50Tm9kZSgmbm9kZSk7CisgICAgaWYgKHBhcmVu
dE5vZGUgJiYgaGFzQnJlYWtwb2ludChwYXJlbnROb2RlLCBTdWJ0cmVlTW9kaWZpZWQpKSB7Cisg
ICAgICAgIGF1dG8gZXZlbnREYXRhID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAg
ZGVzY3JpcHRpb25Gb3JET01FdmVudChub2RlLCBTdWJ0cmVlTW9kaWZpZWQsIGZhbHNlLCBldmVu
dERhdGEuZ2V0KCkpOwogICAgICAgICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShJbnNw
ZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb246OkRPTSwgV1RGTW92ZShl
dmVudERhdGEpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KIApAQCAtMjczLDggKzI5MSw3
IEBAIHZvaWQgUGFnZURPTURlYnVnZ2VyQWdlbnQ6OmRlc2NyaXB0aW9uRm9yRE9NRXZlbnQoTm9k
ZSYgdGFyZ2V0LCBpbnQgYnJlYWtwb2ludFR5CiAgICAgICAgIGlmIChkb21BZ2VudCkgewogICAg
ICAgICAgICAgLy8gRm9yIGluaGVyaXRhYmxlIGJyZWFrcG9pbnQgdHlwZXMsIHRhcmdldCBub2Rl
IGlzbid0IGFsd2F5cyB0aGUgc2FtZSBhcyB0aGUgbm9kZSB0aGF0IG93bnMgYSBicmVha3BvaW50
LgogICAgICAgICAgICAgLy8gVGFyZ2V0IG5vZGUgbWF5IGJlIHVua25vd24gdG8gZnJvbnRlbmQs
IHNvIHdlIG5lZWQgdG8gcHVzaCBpdCBmaXJzdC4KLSAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IHRhcmdldE5vZGVPYmplY3QgPSBk
b21BZ2VudC0+cmVzb2x2ZU5vZGUoJnRhcmdldCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFj
a3RyYWNlT2JqZWN0R3JvdXApOwotICAgICAgICAgICAgZGVzY3JpcHRpb24uc2V0VmFsdWUoInRh
cmdldE5vZGUiLCB0YXJnZXROb2RlT2JqZWN0KTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLnNl
dEludGVnZXIoInRhcmdldE5vZGVJZCJfcywgZG9tQWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVuZCgm
dGFyZ2V0KSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaW5kIGJyZWFrcG9pbnQgb3duZXIg
bm9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9Q
YWdlRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggNzdiMWJiZDVhODJiODA1ZTg2NzhlNjYy
NzBhMzQwM2ViNmQ0OWQzNy4uN2RkZjQ1M2I5NDE5ZDIwZmE5MTQ2YzExN2ZhYWJmYTUxZmYzNDYw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VE
T01EZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgZGVzY3JpcHRpb25Gb3JET01FdmVudChOb2RlJiwgaW50IGJyZWFrcG9pbnRUeXBl
LCBib29sIGluc2VydGlvbiwgSlNPTjo6T2JqZWN0JiBkZXNjcmlwdGlvbik7CiAgICAgdm9pZCB1
cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9kZSosIHVpbnQzMl90IHJvb3RNYXNrLCBib29sIHNl
dCk7CisgICAgYm9vbCBjaGVja1N1YnRyZWVGb3JOb2RlUmVtb3ZlZChOb2RlKik7CiAgICAgYm9v
bCBoYXNCcmVha3BvaW50KE5vZGUqLCBpbnQgdHlwZSk7CiAKICAgICBIYXNoTWFwPE5vZGUqLCB1
aW50MzJfdD4gbV9kb21CcmVha3BvaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CmluZGV4IDU3MjU2YjU0Y2ExMDhiZjJkMzQ1NDVhMzM4MTUyMDM0ZDE2MzhkZmEuLjEzY2M3ODcw
MDRiNTk2OTg0ZmZiM2UzYzU1MTJhNTc0NzZjNzVlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcwpAQCAtODg3LDYgKzg4Nyw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSBM
b2NhbCBPdmVycmlkZSJdID0gIlJlbW92ZSBMb2NhbCBPdmVycmlkZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZW1vdmUgV2F0Y2ggRXhwcmVzc2lvbiJdID0gIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9u
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZSBwcm9iZSJdID0gIlJlbW92ZSBwcm9iZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUgdGhpcyBicmVha3BvaW50IGFjdGlvbiJdID0gIlJlbW92
ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJlbW92ZWQgYW5j
ZXN0b3IgIl0gPSAiUmVtb3ZlZCBhbmNlc3RvciAiOwogbG9jYWxpemVkU3RyaW5nc1siUmVtb3Zl
ZCBkZXNjZW5kYW50ICJdID0gIlJlbW92ZWQgZGVzY2VuZGFudCAiOwogbG9jYWxpemVkU3RyaW5n
c1siUmVuZGVyIFBpcGVsaW5lICVkIl0gPSAiUmVuZGVyIFBpcGVsaW5lICVkIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKaW5kZXggYmVhMjI2
ZTI2NmQ0NmYwZDY5OThkMGMwOWNiMGI3OTU3MmQwMDNmYS4uN2NjNDFjY2UyNWQyMjczM2JjZTgx
NDIwMTQ4Y2Y4OTU0NmY2ZDkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRp
b25TaWRlYmFyUGFuZWwuanMKQEAgLTE0NDQsMTMgKzE0NDQsNyBAQCBXSS5Tb3VyY2VzTmF2aWdh
dGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4
dGVuZHMgVwogICAgICAgICAgICAgbGV0IG93bmVyRWxlbWVudFJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblNpbXBsZVJvdyhXSS5VSVN0cmluZygiRWxlbWVudCIpLCBXSS5saW5raWZ5Tm9kZVJl
ZmVyZW5jZShkb21Ob2RlKSk7CiAgICAgICAgICAgICB0aGlzLl9wYXVzZVJlYXNvbkdyb3VwLnJv
d3MgPSBbZG9tQnJlYWtwb2ludFJvdywgb3duZXJFbGVtZW50Um93XTsKIAotICAgICAgICAgICAg
aWYgKGRvbUJyZWFrcG9pbnQudHlwZSAhPT0gV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRyZWVN
b2RpZmllZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQocGF1c2VEYXRhLnRhcmdldE5vZGUpOwotCi0gICAgICAgICAgICBsZXQgcmVt
b3RlT2JqZWN0ID0gV0kuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHBhdXNlRGF0YS50YXJnZXRO
b2RlLCB0YXJnZXQpOwotICAgICAgICAgICAgcmVtb3RlT2JqZWN0LnB1c2hOb2RlVG9Gcm9udGVu
ZCgobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBsZXQgdXBkYXRlVGFyZ2V0RGVzY3JpcHRpb24g
PSAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFub2RlSWQpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ2MCwxNCArMTQ1NCwzMyBAQCBXSS5Tb3VyY2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
IGV4dGVuZHMgVwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAg
ICBsZXQgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAg
ICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gcGF1c2VEYXRhLmluc2VydGlvbiA/IFdJLlVJ
U3RyaW5nKCJDaGlsZCBhZGRlZCB0byAiKSA6IFdJLlVJU3RyaW5nKCJSZW1vdmVkIGRlc2NlbmRh
bnQgIik7CisKKyAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSBudWxsOworICAgICAg
ICAgICAgICAgIHN3aXRjaCAoZG9tQnJlYWtwb2ludC50eXBlKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSBXSS5ET01CcmVha3BvaW50LlR5cGUuU3VidHJlZU1vZGlmaWVkOgorICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbiA9IHBhdXNlRGF0YS5pbnNlcnRpb24gPyBXSS5VSVN0cmluZygi
Q2hpbGQgYWRkZWQgdG8gIikgOiBXSS5VSVN0cmluZygiUmVtb3ZlZCBkZXNjZW5kYW50ICIpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFdJLkRPTUJy
ZWFrcG9pbnQuVHlwZS5Ob2RlUmVtb3ZlZDoKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24gPSBXSS5VSVN0cmluZygiUmVtb3ZlZCBhbmNlc3RvciAiKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICBmcmFnbWVudC5hcHBlbmQoZGVzY3Jp
cHRpb24sIFdJLmxpbmtpZnlOb2RlUmVmZXJlbmNlKG5vZGUpKTsKIAogICAgICAgICAgICAgICAg
IGxldCB0YXJnZXREZXNjcmlwdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblNpbXBsZVJv
dyhXSS5VSVN0cmluZygiRGV0YWlscyIpLCBmcmFnbWVudCk7CiAgICAgICAgICAgICAgICAgdGFy
Z2V0RGVzY3JpcHRpb25Sb3cuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0YXJnZXQtZGVzY3JpcHRp
b24iKTsKIAogICAgICAgICAgICAgICAgIHRoaXMuX3BhdXNlUmVhc29uR3JvdXAucm93cyA9IHRo
aXMuX3BhdXNlUmVhc29uR3JvdXAucm93cy5jb25jYXQodGFyZ2V0RGVzY3JpcHRpb25Sb3cpOwot
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBpZiAocGF1c2VE
YXRhLnRhcmdldE5vZGVJZCkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbUJy
ZWFrcG9pbnQudHlwZSA9PT0gV0kuRE9NQnJlYWtwb2ludC5UeXBlLlN1YnRyZWVNb2RpZmllZCB8
fCBkb21CcmVha3BvaW50LnR5cGUgPT09IFdJLkRPTUJyZWFrcG9pbnQuVHlwZS5Ob2RlUmVtb3Zl
ZCk7CisgICAgICAgICAgICAgICAgdXBkYXRlVGFyZ2V0RGVzY3JpcHRpb24ocGF1c2VEYXRhLnRh
cmdldE5vZGVJZCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhdXNlRGF0YS50YXJnZXROb2Rl
KSB7IC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMyk6IGB0YXJnZXROb2RlYCB3YXMgcmVuYW1lZCB0
byBgdGFyZ2V0Tm9kZUlkYCBhbmQgd2FzIGNoYW5nZWQgZnJvbSBhIGBSdW50aW1lLlJlbW90ZU9i
amVjdGAgdG8gYSBgRE9NLk5vZGVJZGAuCisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
ZG9tQnJlYWtwb2ludC50eXBlID09PSBXSS5ET01CcmVha3BvaW50LlR5cGUuU3VidHJlZU1vZGlm
aWVkKTsKKyAgICAgICAgICAgICAgICBsZXQgcmVtb3RlT2JqZWN0ID0gV0kuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHBhdXNlRGF0YS50YXJnZXROb2RlLCB0YXJnZXQpOworICAgICAgICAgICAg
ICAgIHJlbW90ZU9iamVjdC5wdXNoTm9kZVRvRnJvbnRlbmQodXBkYXRlVGFyZ2V0RGVzY3JpcHRp
b24pOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGEyZGMyMDc3NWQzN2EzMzdkZmQ5MzEwYjkzYjdhYjBhMWJlNmNiYjguLjAwOGI4
OTEzZDkzMzk3MzdlZjc4OTAwYTQ4NDkyMDlhYTBhOWJiYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxOS0xMC0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogRE9NRGVidWdnZXI6IE5vZGUgUmVtb3ZlZCBicmVha3BvaW50cyBz
aG91bGQgZmlyZSB3aGVuZXZlciB0aGUgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIG1haW4gRE9N
IHRyZWUsIG5vdCBqdXN0IHdoZW4gaXQncyByZW1vdmVkIGZyb20gaXQncyBwYXJlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzM0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9t
LWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTAtMjIgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgd3B0L2Nzcy9j
c3MtaW1hZ2VzL2dyYWRpZW50L2NvbG9yLXN0b3BzLXBhcnNpbmcuaHRtbCBmYWlscwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJl
YWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IDBlMTM0MmY2NjRlMzUwMDU5NTIxODYzY2FlNzZj
NzBhOTI2YTc0OTcuLjVmYTlhODU0Y2Y0MjczNjZmMmM2OGU5YmM2Y2U5NTk2YTdhOTgxOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZG9tLWJyZWFrcG9p
bnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2Vy
L2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTE1LDYgKzE1LDEwIEBAIFBBU1M6IEJy
ZWFrcG9pbnQgc2hvdWxkIGhhdmUgZXhwZWN0ZWQgdHlwZS4KIENhbGwgRE9NIG9wZXJhdGlvbi4K
IFBBVVNFRDoKIFBBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRE9NLgorUEFTUzogUGF1c2Ug
dHlwZSBzaG91bGQgYmUgJ3N1YnRyZWUtbW9kaWZpZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlkIHNo
b3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KK1BBU1M6IFBhdXNlIGluc2VydGlvbiBzaG91bGQgYmUg
J3RydWUnLgorUEFTUzogUGF1c2UgdGFyZ2V0Tm9kZUlkIHNob3VsZCBtYXRjaCBub2RlSWQuCiBD
QUxMIFNUQUNLOgogMDogW0ZdIHN1YnRyZWVNb2RpZmllZFRlc3QKIDE6IFtQXSBHbG9iYWwgQ29k
ZQpAQCAtNDUsNiArNDksOCBAQCBQQVNTOiBCcmVha3BvaW50IHNob3VsZCBoYXZlIGV4cGVjdGVk
IHR5cGUuCiBDYWxsIERPTSBvcGVyYXRpb24uCiBQQVVTRUQ6CiBQQVNTOiBQYXVzZSByZWFzb24g
c2hvdWxkIGJlIERPTS4KK1BBU1M6IFBhdXNlIHR5cGUgc2hvdWxkIGJlICdhdHRyaWJ1dGUtbW9k
aWZpZWQnLgorUEFTUzogUGF1c2Ugbm9kZUlkIHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KIENB
TEwgU1RBQ0s6CiAwOiBbRl0gYXR0cmlidXRlTW9kaWZpZWRUZXN0CiAxOiBbUF0gR2xvYmFsIENv
ZGUKQEAgLTY5LDMwICs3NSw2NSBAQCBXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVy
bi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4KIC0tIFJ1
bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9p
bnRzLk5vZGVSZW1vdmVkLkJyZWFrcG9pbnRFbmFibGVkCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
RE9NQnJlYWtwb2ludHMuTm9kZVJlbW92ZWRTZWxmLkJyZWFrcG9pbnRFbmFibGVkCiBQQVNTOiBB
ZGRlZCAnbm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgogUEFTUzogQnJlYWtwb2ludCBzaG91bGQg
aGF2ZSBleHBlY3RlZCB0eXBlLgogQ2FsbCBET00gb3BlcmF0aW9uLgogUEFVU0VEOgogUEFTUzog
UGF1c2UgcmVhc29uIHNob3VsZCBiZSBET00uCitQQVNTOiBQYXVzZSB0eXBlIHNob3VsZCBiZSAn
bm9kZS1yZW1vdmVkJy4KK1BBU1M6IFBhdXNlIG5vZGVJZCBzaG91bGQgYmUgZXhwZWN0ZWQgdmFs
dWUuCiBDQUxMIFNUQUNLOgotMDogW0ZdIG5vZGVSZW1vdmVkVGVzdAorMDogW0ZdIG5vZGVSZW1v
dmVkRGlyZWN0VGVzdAogMTogW1BdIEdsb2JhbCBDb2RlCiAtLSBSdW5uaW5nIHRlc3QgdGVhcmRv
d24uCiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2RlUmVtb3ZlZC5C
cmVha3BvaW50RGlzYWJsZWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5O
b2RlUmVtb3ZlZFNlbGYuQnJlYWtwb2ludERpc2FibGVkCiBQQVNTOiBBZGRlZCAnbm9kZS1yZW1v
dmVkJyBicmVha3BvaW50LgogV2FpdCBmb3IgZXZhbHVhdGUgaW4gcGFnZSB0byByZXR1cm4uCiBQ
QVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBkaXNhYmxlZCBicmVha3BvaW50LgogLS0gUnVubmlu
ZyB0ZXN0IHRlYXJkb3duLgogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJlYWtwb2ludHMu
Tm9kZVJlbW92ZWQuRGVidWdnZXJEaXNhYmxlZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJy
ZWFrcG9pbnRzLk5vZGVSZW1vdmVkU2VsZi5EZWJ1Z2dlckRpc2FibGVkCiBQQVNTOiBBZGRlZCAn
bm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgogV2FpdCBmb3IgZXZhbHVhdGUgaW4gcGFnZSB0byBy
ZXR1cm4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBkaXNhYmxlZCBicmVha3BvaW50Lgog
LS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJl
YWtwb2ludHMuTm9kZVJlbW92ZWQuUmVtb3ZlQnJlYWtwb2ludAorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IERPTUJyZWFrcG9pbnRzLk5vZGVSZW1vdmVkU2VsZi5SZW1vdmVCcmVha3BvaW50CitQQVNT
OiBBZGRlZCAnbm9kZS1yZW1vdmVkJyBicmVha3BvaW50LgorUmVtb3ZlIGJyZWFrcG9pbnQuCitX
YWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVybi4KK1BBU1M6IFNob3VsZCBub3QgcGF1
c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4KKy0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTUJyZWFrcG9pbnRzLk5vZGVSZW1vdmVkQW5jZXN0b3Iu
QnJlYWtwb2ludEVuYWJsZWQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJyZWFrcG9pbnQu
CitQQVNTOiBCcmVha3BvaW50IHNob3VsZCBoYXZlIGV4cGVjdGVkIHR5cGUuCitDYWxsIERPTSBv
cGVyYXRpb24uCitQQVVTRUQ6CitQQVNTOiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIERPTS4KK1BB
U1M6IFBhdXNlIHR5cGUgc2hvdWxkIGJlICdub2RlLXJlbW92ZWQnLgorUEFTUzogUGF1c2Ugbm9k
ZUlkIHNob3VsZCBiZSBleHBlY3RlZCB2YWx1ZS4KK1BBU1M6IFBhdXNlIHRhcmdldE5vZGVJZCBz
aG91bGQgbm90IG1hdGNoIG5vZGVJZC4KK0NBTEwgU1RBQ0s6CiswOiBbRl0gbm9kZVJlbW92ZWRB
bmNlc3RvclRlc3QKKzE6IFtQXSBHbG9iYWwgQ29kZQorLS0gUnVubmluZyB0ZXN0IHRlYXJkb3du
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NQnJlYWtwb2ludHMuTm9kZVJlbW92ZWRBbmNl
c3Rvci5CcmVha3BvaW50RGlzYWJsZWQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJyZWFr
cG9pbnQuCitXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVybi4KK1BBU1M6IFNob3Vs
ZCBub3QgcGF1c2UgZm9yIGRpc2FibGVkIGJyZWFrcG9pbnQuCistLSBSdW5uaW5nIHRlc3QgdGVh
cmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2RlUmVtb3Zl
ZEFuY2VzdG9yLkRlYnVnZ2VyRGlzYWJsZWQKK1BBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQnIGJy
ZWFrcG9pbnQuCitXYWl0IGZvciBldmFsdWF0ZSBpbiBwYWdlIHRvIHJldHVybi4KK1BBU1M6IFNo
b3VsZCBub3QgcGF1c2UgZm9yIGRpc2FibGVkIGJyZWFrcG9pbnQuCistLSBSdW5uaW5nIHRlc3Qg
dGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01CcmVha3BvaW50cy5Ob2RlUmVt
b3ZlZEFuY2VzdG9yLlJlbW92ZUJyZWFrcG9pbnQKIFBBU1M6IEFkZGVkICdub2RlLXJlbW92ZWQn
IGJyZWFrcG9pbnQuCiBSZW1vdmUgYnJlYWtwb2ludC4KIFdhaXQgZm9yIGV2YWx1YXRlIGluIHBh
Z2UgdG8gcmV0dXJuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1
Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggMDQ3ZDY5YzIyN2ZjZjg1NTBhZTZlYzk0
MjdiMTdiMTI1ODdlNDUxZi4uNDhjYjI3MGYwNzFiYTI0NTMwMDExODI1MDhkYTQzZGVjN2JlOGI2
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJl
YWtwb2ludHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2Rv
bS1icmVha3BvaW50cy5odG1sCkBAIC0xMiwxOCArMTIsMjcgQEAgZnVuY3Rpb24gYXR0cmlidXRl
TW9kaWZpZWRUZXN0KCkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRyaWJ1dGUt
bW9kaWZpZWQtdGVzdCIpLnNldEF0dHJpYnV0ZSgiZGlzcGxheSIsICJub25lIik7CiB9CiAKLWZ1
bmN0aW9uIG5vZGVSZW1vdmVkVGVzdCgpIHsKLSAgICBsZXQgbm9kZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJub2RlLXJlbW92ZWQtdGVzdCIpOworZnVuY3Rpb24gbm9kZVJlbW92ZWREaXJl
Y3RUZXN0KCkgeworICAgIGxldCBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vZGUt
cmVtb3ZlZC1kaXJlY3QtdGVzdCIpOwogICAgIGxldCBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7
CiAgICAgbm9kZS5yZW1vdmUoKTsKICAgICBwYXJlbnQuYXBwZW5kKG5vZGUpOwogfQogCitmdW5j
dGlvbiBub2RlUmVtb3ZlZEFuY2VzdG9yVGVzdCgpIHsKKyAgICBsZXQgbm9kZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJub2RlLXJlbW92ZWQtYW5jZXN0b3ItdGVzdCIpOworICAgIGxldCBw
YXJlbnQgPSBub2RlLnBhcmVudE5vZGU7CisgICAgbGV0IGdyYW5kcGFyZW50ID0gcGFyZW50LnBh
cmVudE5vZGU7CisgICAgcGFyZW50LnJlbW92ZShub2RlKTsKKyAgICBncmFuZHBhcmVudC5hcHBl
bmQocGFyZW50KTsKK30KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgY29uc3Qgc3VidHJlZU1v
ZGlmaWVkVGVzdElkID0gInN1YnRyZWUtbW9kaWZpZWQtdGVzdCI7CiAgICAgY29uc3QgYXR0cmli
dXRlTW9kaWZpZWRUZXN0SWQgPSAiYXR0cmlidXRlLW1vZGlmaWVkLXRlc3QiOwotICAgIGNvbnN0
IG5vZGVSZW1vdmVkVGVzdElkID0gIm5vZGUtcmVtb3ZlZC10ZXN0IjsKKyAgICBjb25zdCBub2Rl
UmVtb3ZlZERpcmVjdFRlc3RJZCA9ICJub2RlLXJlbW92ZWQtZGlyZWN0LXRlc3QiOworICAgIGNv
bnN0IG5vZGVSZW1vdmVkQW5jZXN0b3JUZXN0SWQgPSAibm9kZS1yZW1vdmVkLWFuY2VzdG9yLXRl
c3QiOwogICAgIGNvbnN0IG11bHRpcGxlQnJlYWtwb2ludHNUZXN0SWQgPSAibXVsdGlwbGUtYnJl
YWtwb2ludHMtdGVzdCI7CiAKICAgICBsZXQgZGVidWdnZXJQYXVzZWRMaXN0ZW5lciA9IG51bGw7
CkBAIC0xMDksNyArMTE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH0pOwogICAgIH0K
IAotICAgIGZ1bmN0aW9uIGFkZFRlc3RzRm9yQnJlYWtwb2ludFR5cGUoe25hbWUsIGVsZW1lbnRJ
ZGVudGlmaWVyLCB0eXBlLCBleHByZXNzaW9ufSkgeworICAgIGZ1bmN0aW9uIGFkZFRlc3RzRm9y
QnJlYWtwb2ludFR5cGUoe25hbWUsIGVsZW1lbnRJZGVudGlmaWVyLCB0eXBlLCBleHByZXNzaW9u
LCBpbnNlcnRpb24sIHNob3VsZE1hdGNofSkgewogICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CiAgICAgICAgICAgICBuYW1lOiBgRE9NQnJlYWtwb2ludHMuJHtuYW1lfS5CcmVha3BvaW50RW5h
YmxlZGAsCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgZGVidWdnZXIgcGF1
c2VzIGZvciBicmVha3BvaW50IHR5cGUuIiwKQEAgLTEyOCw4ICsxMzcsMjIgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJN
YW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50
YXJnZXQpOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEOiIp
OwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERh
dGEucGF1c2VSZWFzb24sIFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJlYXNvbi5ET00sICJQYXVz
ZSByZWFzb24gc2hvdWxkIGJlIERPTS4iKTsKLSAgICAgICAgICAgICAgICAgICAgbG9nQWN0aXZl
U3RhY2tUcmFjZSgpOwogCisgICAgICAgICAgICAgICAgICAgIGxldCBwYXVzZURhdGEgPSB0YXJn
ZXREYXRhLnBhdXNlRGF0YTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChwYXVzZURhdGEudHlwZSwgdHlwZSwgYFBhdXNlIHR5cGUgc2hvdWxkIGJlICcke3R5
cGV9Jy5gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChw
YXVzZURhdGEubm9kZUlkLCBkb21Ob2RlSWRlbnRpZmllciwgYFBhdXNlIG5vZGVJZCBzaG91bGQg
YmUgZXhwZWN0ZWQgdmFsdWUuYCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGlv
biAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChpbnNlcnRpb24sIHRhcmdldC5wYXVzZURhdGEuaW5zZXJ0aW9uLCBgUGF1c2Ug
aW5zZXJ0aW9uIHNob3VsZCBiZSAnJHtpbnNlcnRpb259Jy5gKTsKKworICAgICAgICAgICAgICAg
ICAgICBpZiAocGF1c2VEYXRhLnRhcmdldE5vZGVJZCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHNob3VsZE1hdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwocGF1c2VEYXRhLnRhcmdldE5vZGVJZCwgcGF1c2VEYXRhLm5vZGVJ
ZCwgIlBhdXNlIHRhcmdldE5vZGVJZCBzaG91bGQgbWF0Y2ggbm9kZUlkLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0Tm90RXF1YWwocGF1c2VEYXRhLnRhcmdldE5vZGVJZCwgcGF1c2VEYXRhLm5v
ZGVJZCwgIlBhdXNlIHRhcmdldE5vZGVJZCBzaG91bGQgbm90IG1hdGNoIG5vZGVJZC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxvZ0FjdGl2ZVN0YWNr
VHJhY2UoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRlYnVnZ2VyTWFuYWdlci5y
ZXN1bWUoKTsKICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgIC50aGVuKHJlc29s
dmUsIHJlamVjdCk7CkBAIC0yMTcsNiArMjQwLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IGVsZW1lbnRJZGVudGlmaWVyOiBzdWJ0cmVlTW9kaWZpZWRUZXN0SWQsCiAgICAgICAgIHR5cGU6
IFdJLkRPTUJyZWFrcG9pbnQuVHlwZS5TdWJ0cmVlTW9kaWZpZWQsCiAgICAgICAgIGV4cHJlc3Np
b246ICJzdWJ0cmVlTW9kaWZpZWRUZXN0KCkiLAorICAgICAgICBpbnNlcnRpb246IHRydWUsCisg
ICAgICAgIHNob3VsZE1hdGNoOiB0cnVlLAogICAgIH0pOwogCiAgICAgYWRkVGVzdHNGb3JCcmVh
a3BvaW50VHlwZSh7CkBAIC0yMjcsMTAgKzI1MiwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9
KTsKIAogICAgIGFkZFRlc3RzRm9yQnJlYWtwb2ludFR5cGUoewotICAgICAgICBuYW1lOiAiTm9k
ZVJlbW92ZWQiLAotICAgICAgICBlbGVtZW50SWRlbnRpZmllcjogbm9kZVJlbW92ZWRUZXN0SWQs
CisgICAgICAgIG5hbWU6ICJOb2RlUmVtb3ZlZFNlbGYiLAorICAgICAgICBlbGVtZW50SWRlbnRp
Zmllcjogbm9kZVJlbW92ZWREaXJlY3RUZXN0SWQsCiAgICAgICAgIHR5cGU6IFdJLkRPTUJyZWFr
cG9pbnQuVHlwZS5Ob2RlUmVtb3ZlZCwKLSAgICAgICAgZXhwcmVzc2lvbjogIm5vZGVSZW1vdmVk
VGVzdCgpIiwKKyAgICAgICAgZXhwcmVzc2lvbjogIm5vZGVSZW1vdmVkRGlyZWN0VGVzdCgpIiwK
KyAgICB9KTsKKworICAgIGFkZFRlc3RzRm9yQnJlYWtwb2ludFR5cGUoeworICAgICAgICBuYW1l
OiAiTm9kZVJlbW92ZWRBbmNlc3RvciIsCisgICAgICAgIGVsZW1lbnRJZGVudGlmaWVyOiBub2Rl
UmVtb3ZlZEFuY2VzdG9yVGVzdElkLAorICAgICAgICB0eXBlOiBXSS5ET01CcmVha3BvaW50LlR5
cGUuTm9kZVJlbW92ZWQsCisgICAgICAgIGV4cHJlc3Npb246ICJub2RlUmVtb3ZlZEFuY2VzdG9y
VGVzdCgpIiwKKyAgICAgICAgc2hvdWxkTWF0Y2g6IHRydWUsCiAgICAgfSk7CiAKICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CkBAIC0zNTMsNyArMzg2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiA8ZGl2
IGlkPSJ0ZXN0LWNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgogICAgIDxkaXYgaWQ9
InN1YnRyZWUtbW9kaWZpZWQtdGVzdCI+PC9kaXY+CiAgICAgPGRpdiBpZD0iYXR0cmlidXRlLW1v
ZGlmaWVkLXRlc3QiPjwvZGl2PgotICAgIDxkaXYgaWQ9Im5vZGUtcmVtb3ZlZC10ZXN0Ij48L2Rp
dj4KKyAgICA8ZGl2IGlkPSJub2RlLXJlbW92ZWQtZGlyZWN0LXRlc3QiPjwvZGl2PgorICAgIDxk
aXY+PGRpdiBpZD0ibm9kZS1yZW1vdmVkLWFuY2VzdG9yLXRlc3QiPjwvZGl2PjwvZGl2PgogICAg
IDxkaXYgaWQ9Im11bHRpcGxlLWJyZWFrcG9pbnRzLXRlc3QiPjwvZGl2PgogPC9kaXY+CiA8L2Jv
ZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>