<?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>194673</bug_id>
          
          <creation_ts>2019-02-14 14:07:51 -0800</creation_ts>
          <short_desc>Web Inspector: Search: allow DOM searches to be case sensitive</short_desc>
          <delta_ts>2019-06-15 18:48:11 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=192527</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>192527</dependson>
          
          <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>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1506351</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-14 14:07:51 -0800</bug_when>
    <thetext>When searching for &quot;DIV&quot;, we&apos;re still matching &lt;div&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506352</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-14 14:08:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/48087577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506370</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-02-14 14:19:19 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #0)
&gt; When searching for &quot;DIV&quot;, we&apos;re still matching &lt;div&gt;.

This seems fine to me. What&apos;s the real-world use case here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506377</commentid>
    <comment_count>3</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-14 14:23:28 -0800</bug_when>
    <thetext>(In reply to Nikita Vasilyev from comment #2)
&gt; (In reply to Devin Rousso from comment #0)
&gt; &gt; When searching for &quot;DIV&quot;, we&apos;re still matching &lt;div&gt;.
&gt; 
&gt; This seems fine to me. What&apos;s the real-world use case here?
Ok maybe that was a bad example.  If I have

    &lt;div class=&quot;CLASS&quot;&gt;CONTENT&quot;&lt;/div&gt;

and I searched for &quot;class&quot; or &quot;content&quot;, it would still match.  We are unable to do any sort of case sensitivity (we convert all queries to lowercase, as well as the text through which we&apos;re searching).

We could also _try_ to make regex searching work, but that&apos;s much harder to search across nodes (e.g. /&gt;&lt;div&gt;(\w+)&lt;\/div/ wouldn&apos;t work).  If we limit the regex search to within a specific node (as it does now), then that shouldn&apos;t be too hard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515612</commentid>
    <comment_count>4</comment_count>
      <attachid>364427</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-12 12:43:50 -0700</bug_when>
    <thetext>Created attachment 364427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515614</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-12 12:45:35 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518919</commentid>
    <comment_count>6</comment_count>
      <attachid>364427</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-20 09:21:43 -0700</bug_when>
    <thetext>Comment on attachment 364427
Patch

Clearing flags on attachment: 364427

Committed r243207: &lt;https://trac.webkit.org/changeset/243207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518920</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-20 09:21:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519024</commentid>
    <comment_count>8</comment_count>
      <attachid>364427</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-20 11:35:45 -0700</bug_when>
    <thetext>Comment on attachment 364427
Patch

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

Awesome!

&gt; Source/WebCore/inspector/InspectorNodeFinder.h:67
&gt; +    bool m_caseSensitive;
&gt; +
&gt; +    ListHashSet&lt;Node*&gt; m_results;
&gt;      bool m_startTagFound;

Nit: Maybe group the bools together.

&gt; Source/WebCore/inspector/agents/InspectorDOMAgent.h:137
&gt; -    void performSearch(ErrorString&amp;, const String&amp; whitespaceTrimmedQuery, const JSON::Array* nodeIds, String* searchId, int* resultCount) override;
&gt; +    void performSearch(ErrorString&amp;, const String&amp; query, const JSON::Array* nodeIds, const bool* caseSensitive, String* searchId, int* resultCount) override;

Should notify ITMLKit folks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364427</attachid>
            <date>2019-03-12 12:43:50 -0700</date>
            <delta_ts>2019-03-20 09:21:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>194673.diff</filename>
            <type>text/plain</type>
            <size>27013</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YzEyNzMxMDdlOS4uMmM0NzMwYTIyMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOS0wMy0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogU2VhcmNoOiBhbGxvdyBET00gc2VhcmNoZXMgdG8gYmUgY2FzZSBzZW5z
aXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NDY3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwODc1Nzc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2RvbS1zZWFy
Y2gtY2FzZVNlbnNpdGl2ZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tL2RvbS1zZWFyY2guaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gt
Y2FzZVNlbnNpdGl2ZS1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vZG9tLXNlYXJjaC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS9kb20tc2VhcmNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3Jlc291
cmNlcy9kb20tc2VhcmNoLXF1ZXJpZXMuanM6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3Rlcklu
aXRpYWxpemVyKToKKwogMjAxOS0wMy0wOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbIGlPUyBTaW11bGF0b3IgXSBSRUdSRVNTSU9OIChyMjM3MDg3KSBM
YXlvdXQgVGVzdCBmYXN0L3ZpZXdwb3J0L2lvcy8qLXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5n
aW5nLXZpZXctc2NhbGUuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1jYXNlU2Vuc2l0aXZlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1jYXNlU2Vuc2l0aXZlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGZlZDE2
ZGUzZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1z
ZWFyY2gtY2FzZVNlbnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMTUgQEAKK1Rlc3Rp
bmcgRE9NLnBlcmZvcm1TZWFyY2ggd2l0aCBubyBwYXJlbnQgbm9kZSBpZHMuCisKKworPT09IFF1
ZXJ5OiAiYm9keSIgPT09CitDb3VudDogMgorYm9keS5tYWluLWZyYW1lCitib2R5Lmluc2lkZS1p
ZnJhbWUKKz09PSBRdWVyeTogIjxib2R5IiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICJib2R5
PiIgPT09CitDb3VudDogMAorPT09IFF1ZXJ5OiAiPGJvZHk+IiA9PT0KK0NvdW50OiAwCis9PT0g
UXVlcnk6ICJiT2RZIiA9PT0KK0NvdW50OiAyCitib2R5Lm1haW4tZnJhbWUKK2JvZHkuaW5zaWRl
LWlmcmFtZQorPT09IFF1ZXJ5OiAiPGJPZFkiID09PQorQ291bnQ6IDAKKz09PSBRdWVyeTogImJP
ZFk+IiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICI8Yk9kWT4iID09PQorQ291bnQ6IDAKKz09
PSBRdWVyeTogIkJPRFkiID09PQorQ291bnQ6IDIKK2JvZHkubWFpbi1mcmFtZQorYm9keS5pbnNp
ZGUtaWZyYW1lCis9PT0gUXVlcnk6ICI8Qk9EWSIgPT09CitDb3VudDogMgorYm9keS5tYWluLWZy
YW1lCitib2R5Lmluc2lkZS1pZnJhbWUKKz09PSBRdWVyeTogIkJPRFk+IiA9PT0KK0NvdW50OiAy
Citib2R5Lm1haW4tZnJhbWUKK2JvZHkuaW5zaWRlLWlmcmFtZQorPT09IFF1ZXJ5OiAiPEJPRFk+
IiA9PT0KK0NvdW50OiAyCitib2R5Lm1haW4tZnJhbWUKK2JvZHkuaW5zaWRlLWlmcmFtZQorPT09
IFF1ZXJ5OiAib25sb2FkIiA9PT0KK0NvdW50OiAxCitib2R5Lm1haW4tZnJhbWUKKz09PSBRdWVy
eTogIm9OTG9BZCIgPT09CitDb3VudDogMAorPT09IFF1ZXJ5OiAiT05MT0FEIiA9PT0KK0NvdW50
OiAwCis9PT0gUXVlcnk6ICJydW5UZXN0KCkiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFt
ZQorPT09IFF1ZXJ5OiAiXCJydW5UZXN0KCkiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFt
ZQorPT09IFF1ZXJ5OiAicnVuVGVzdCgpXCIiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFt
ZQorPT09IFF1ZXJ5OiAiXCJydW5UZXN0KClcIiIgPT09CitDb3VudDogMQorYm9keS5tYWluLWZy
YW1lCis9PT0gUXVlcnk6ICJydW50ZXN0KCkiID09PQorQ291bnQ6IDAKKz09PSBRdWVyeTogIlwi
cnVudGVzdCgpIiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICJydW50ZXN0KClcIiIgPT09CitD
b3VudDogMAorPT09IFF1ZXJ5OiAiXCJydW50ZXN0KClcIiIgPT09CitDb3VudDogMAorPT09IFF1
ZXJ5OiAiclVuVGVTdCgpIiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICJcInJVblRlU3QoKSIg
PT09CitDb3VudDogMAorPT09IFF1ZXJ5OiAiclVuVGVTdCgpXCIiID09PQorQ291bnQ6IDAKKz09
PSBRdWVyeTogIlwiclVuVGVTdCgpXCIiID09PQorQ291bnQ6IDAKKz09PSBRdWVyeTogIlJVTlRF
U1QoKSIgPT09CitDb3VudDogMAorPT09IFF1ZXJ5OiAiXCJSVU5URVNUKCkiID09PQorQ291bnQ6
IDAKKz09PSBRdWVyeTogIlJVTlRFU1QoKVwiIiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICJc
IlJVTlRFU1QoKVwiIiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICIuYm9keS1pbnNpZGUtaWZy
YW1lIiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICIqIiA9PT0KK0NvdW50OiAxNAoraHRtbAor
aGVhZAorc2NyaXB0CitzY3JpcHQKK3NjcmlwdAorc2NyaXB0Citib2R5Lm1haW4tZnJhbWUKK3AK
K2lmcmFtZQoraHRtbC5pbnNpZGUtaWZyYW1lCitoZWFkLmluc2lkZS1pZnJhbWUKK2JvZHkuaW5z
aWRlLWlmcmFtZQorZGl2LmJhc2UxLmluc2lkZS1pZnJhbWUKK3AuaW5zaWRlLWlmcmFtZQorPT09
IFF1ZXJ5OiAiQk9EWVtPTkxPQURdIiA9PT0KK0NvdW50OiAxCitib2R5Lm1haW4tZnJhbWUKKz09
PSBRdWVyeTogIi9odG1sL2JvZHkiID09PQorQ291bnQ6IDIKK2JvZHkubWFpbi1mcmFtZQorYm9k
eS5pbnNpZGUtaWZyYW1lCis9PT0gUXVlcnk6ICIvaHRtbC9ib2R5L0BvbmxvYWQiID09PQorQ291
bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAiL0hUTUwvQk9EWSIgPT09CitDb3Vu
dDogMgorYm9keS5tYWluLWZyYW1lCitib2R5Lmluc2lkZS1pZnJhbWUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLWNhc2VTZW5zaXRpdmUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1jYXNlU2Vuc2l0aXZlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUzYjhkZWM1YWJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLWNhc2VT
ZW5zaXRpdmUuaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20v
cmVzb3VyY2VzL0luc3BlY3RvckRPTUxpc3RlbmVyLmpzIj48L3NjcmlwdD4KKzwhLS0gTG9hZGlu
ZyB0aGUgcXVlcmllcyBmcm9tIGV4dGVybmFsIGZpbGUgdG8gYXZvaWQgaGF2aW5nIHRoZW0gc2hv
dyB1cCBpbiB0aGUgcmVzdWx0cy4gLS0+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvbS1zZWFy
Y2gtcXVlcmllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgLy8gQ3JlYXRlIGEgRE9NIGxpc3RlbmVyIHRvIGNvbnZlcnQgbm9kZUlkcyB0byB0YWcgbmFt
ZXMuCisgICAgdmFyIGRvbSA9IGNyZWF0ZURPTUxpc3RlbmVyKCk7CisKKyAgICAvLyBDYWNoaW5n
IHRoZSBvdXRwdXQgdG8gYXZvaWQgc2VhcmNoaW5nIHRocm91Z2ggdGhlIGxvZy4KKyAgICB2YXIg
b3V0cHV0ID0gW107CisKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRE9NLmdl
dERvY3VtZW50Iiwge30sIG9uR290RG9jdW1lbnQpOworCisgICAgZnVuY3Rpb24gb25Hb3REb2N1
bWVudChtZXNzYWdlKSB7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJyb3Io
bWVzc2FnZSk7CisgICAgICAgIGRvbS5jb2xsZWN0Tm9kZShtZXNzYWdlLnJlc3VsdC5yb290KTsK
KyAgICAgICAgcGVyZm9ybVNlYXJjaGVzKGRvbVNlYXJjaFF1ZXJpZXMsIHRlc3RGaW5pc2hlZCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcGVyZm9ybVNlYXJjaGVzKGxpc3QsIGNhbGxiYWNrKQor
ICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChsaXN0Lmxl
bmd0aCkKKyAgICAgICAgICAgICAgICBzZWFyY2gobGlzdC5zaGlmdCgpLCBuZXh0KTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAg
ICAgIG5leHQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWFyY2gocXVlcnksIGNhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgb3V0cHV0LnB1c2goIj09PSBRdWVyeTogIiArIEpTT04uc3RyaW5n
aWZ5KHF1ZXJ5KSArICIgPT09Iik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21t
YW5kKCJET00ucGVyZm9ybVNlYXJjaCIsIHtxdWVyeSwgY2FzZVNlbnNpdGl2ZTogdHJ1ZX0sIGZ1
bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9y
RXJyb3IobWVzc2FnZSk7CisgICAgICAgICAgICBwcmludFNlYXJjaFJlc3VsdHMobWVzc2FnZS5y
ZXN1bHQsIGNhbGxiYWNrKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcHJp
bnRTZWFyY2hSZXN1bHRzKHJlc3VsdHMsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgb3V0cHV0
LnB1c2goIkNvdW50OiAiICsgcmVzdWx0cy5yZXN1bHRDb3VudCk7CisgICAgICAgIGlmICghcmVz
dWx0cy5yZXN1bHRDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOworCisgICAg
ICAgIHZhciBvcHRpb25zID0geyJzZWFyY2hJZCI6IHJlc3VsdHMuc2VhcmNoSWQsICJmcm9tSW5k
ZXgiOiAwLCAidG9JbmRleCI6IHJlc3VsdHMucmVzdWx0Q291bnR9OworICAgICAgICBJbnNwZWN0
b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRE9NLmdldFNlYXJjaFJlc3VsdHMiLCBvcHRpb25zLCBm
dW5jdGlvbiBvblJlc3VsdHNSZWNlaXZlZChtZXNzYWdlKSB7CisgICAgICAgICAgICBmb3IgKHZh
ciBub2RlSWQgb2YgbWVzc2FnZS5yZXN1bHQubm9kZUlkcykKKyAgICAgICAgICAgICAgICBvdXRw
dXQucHVzaChkb20uZ2V0Tm9kZUlkZW50aWZpZXIobm9kZUlkKSk7CisgICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0RmluaXNoZWQo
KQorICAgIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhvdXRwdXQuam9pbigiXG4iKSk7Cisg
ICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIiBjbGFzcz0ibWFpbi1mcmFtZSI+Cisg
ICAgPHA+VGVzdGluZyBET00ucGVyZm9ybVNlYXJjaCB3aXRoIG5vIHBhcmVudCBub2RlIGlkcy48
L3A+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9kb20tc2VhcmNoLWlmcmFtZS5odG1sIj48
L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vZG9tLXNlYXJjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tL2RvbS1zZWFyY2gtZXhwZWN0ZWQudHh0CmluZGV4IDY5MGU2NjNlMGE2Li5mZDE0MzViNzVh
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtZXhwZWN0
ZWQudHh0CkBAIC0xNyw2ICsxNywzNCBAQCBib2R5Lmluc2lkZS1pZnJhbWUKIENvdW50OiAyCiBi
b2R5Lm1haW4tZnJhbWUKIGJvZHkuaW5zaWRlLWlmcmFtZQorPT09IFF1ZXJ5OiAiYk9kWSIgPT09
CitDb3VudDogMgorYm9keS5tYWluLWZyYW1lCitib2R5Lmluc2lkZS1pZnJhbWUKKz09PSBRdWVy
eTogIjxiT2RZIiA9PT0KK0NvdW50OiAyCitib2R5Lm1haW4tZnJhbWUKK2JvZHkuaW5zaWRlLWlm
cmFtZQorPT09IFF1ZXJ5OiAiYk9kWT4iID09PQorQ291bnQ6IDIKK2JvZHkubWFpbi1mcmFtZQor
Ym9keS5pbnNpZGUtaWZyYW1lCis9PT0gUXVlcnk6ICI8Yk9kWT4iID09PQorQ291bnQ6IDIKK2Jv
ZHkubWFpbi1mcmFtZQorYm9keS5pbnNpZGUtaWZyYW1lCis9PT0gUXVlcnk6ICJCT0RZIiA9PT0K
K0NvdW50OiAyCitib2R5Lm1haW4tZnJhbWUKK2JvZHkuaW5zaWRlLWlmcmFtZQorPT09IFF1ZXJ5
OiAiPEJPRFkiID09PQorQ291bnQ6IDIKK2JvZHkubWFpbi1mcmFtZQorYm9keS5pbnNpZGUtaWZy
YW1lCis9PT0gUXVlcnk6ICJCT0RZPiIgPT09CitDb3VudDogMgorYm9keS5tYWluLWZyYW1lCiti
b2R5Lmluc2lkZS1pZnJhbWUKID09PSBRdWVyeTogIjxCT0RZPiIgPT09CiBDb3VudDogMgogYm9k
eS5tYWluLWZyYW1lCkBAIC0yNCw2ICs1Miw5IEBAIGJvZHkuaW5zaWRlLWlmcmFtZQogPT09IFF1
ZXJ5OiAib25sb2FkIiA9PT0KIENvdW50OiAxCiBib2R5Lm1haW4tZnJhbWUKKz09PSBRdWVyeTog
Im9OTG9BZCIgPT09CitDb3VudDogMQorYm9keS5tYWluLWZyYW1lCiA9PT0gUXVlcnk6ICJPTkxP
QUQiID09PQogQ291bnQ6IDEKIGJvZHkubWFpbi1mcmFtZQpAQCAtMzMsMTYgKzY0LDQ2IEBAIGJv
ZHkubWFpbi1mcmFtZQogPT09IFF1ZXJ5OiAiXCJydW5UZXN0KCkiID09PQogQ291bnQ6IDEKIGJv
ZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAicnVuVGVzdCgpXCIiID09PQorQ291bnQ6IDEKK2Jv
ZHkubWFpbi1mcmFtZQogPT09IFF1ZXJ5OiAiXCJydW5UZXN0KClcIiIgPT09CiBDb3VudDogMQog
Ym9keS5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICJydW5UZXN0KClcIiIgPT09Cis9PT0gUXVlcnk6
ICJydW50ZXN0KCkiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAi
XCJydW50ZXN0KCkiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAi
cnVudGVzdCgpXCIiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAi
XCJydW50ZXN0KClcIiIgPT09CitDb3VudDogMQorYm9keS5tYWluLWZyYW1lCis9PT0gUXVlcnk6
ICJyVW5UZVN0KCkiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAi
XCJyVW5UZVN0KCkiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAi
clVuVGVTdCgpXCIiID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAi
XCJyVW5UZVN0KClcIiIgPT09CiBDb3VudDogMQogYm9keS5tYWluLWZyYW1lCiA9PT0gUXVlcnk6
ICJSVU5URVNUKCkiID09PQogQ291bnQ6IDEKIGJvZHkubWFpbi1mcmFtZQotPT09IFF1ZXJ5OiAi
cnVudGVzdCgpIiA9PT0KKz09PSBRdWVyeTogIlwiUlVOVEVTVCgpIiA9PT0KK0NvdW50OiAxCiti
b2R5Lm1haW4tZnJhbWUKKz09PSBRdWVyeTogIlJVTlRFU1QoKVwiIiA9PT0KK0NvdW50OiAxCiti
b2R5Lm1haW4tZnJhbWUKKz09PSBRdWVyeTogIlwiUlVOVEVTVCgpXCIiID09PQogQ291bnQ6IDEK
IGJvZHkubWFpbi1mcmFtZQogPT09IFF1ZXJ5OiAiLmJvZHktaW5zaWRlLWlmcmFtZSIgPT09CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291cmNlcy9kb20tc2VhcmNo
LXF1ZXJpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291cmNlcy9kb20tc2Vh
cmNoLXF1ZXJpZXMuanMKaW5kZXggMWQ4NDcyNDI1YWMuLmM3OWE3OTcxMTI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291cmNlcy9kb20tc2VhcmNoLXF1ZXJpZXMu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9yZXNvdXJjZXMvZG9tLXNlYXJjaC1x
dWVyaWVzLmpzCkBAIC0zLDMwICszLDU5IEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
ZnVuY3Rpb24oKSB7CiAvLyBIYXZpbmcgdGhlIHF1ZXJpZXMgaW4gYW4gZXh0ZXJuYWwgZmlsZSwg
c28gdGhhdCBET00gc2VhcmNoIHdpbGwgbm90IGZpbmQgdGhlIHNjcmlwdCB3aGVuIHNlYXJjaGlu
ZyBmb3IgdmFsdWVzLgogCiB3aW5kb3cuZG9tU2VhcmNoUXVlcmllcyA9IFsKKyAgICAvLyBUYWcg
bmFtZXMKKwogICAgICJib2R5IiwKICAgICAiPGJvZHkiLAogICAgICJib2R5PiIsCiAgICAgIjxi
b2R5PiIsCisKKyAgICAiYk9kWSIsCisgICAgIjxiT2RZIiwKKyAgICAiYk9kWT4iLAorICAgICI8
Yk9kWT4iLAorCisgICAgIkJPRFkiLAorICAgICI8Qk9EWSIsCisgICAgIkJPRFk+IiwKICAgICAi
PEJPRFk+IiwKIAogICAgIC8vIEF0dHJpYnV0ZSBuYW1lcworCiAgICAgIm9ubG9hZCIsCisgICAg
Im9OTG9BZCIsCiAgICAgIk9OTE9BRCIsCiAKICAgICAvLyBBdHRyaWJ1dGUgdmFsdWVzCisKICAg
ICAicnVuVGVzdCgpIiwKICAgICAiXCJydW5UZXN0KCkiLAotICAgICJcInJ1blRlc3QoKVwiIiwK
ICAgICAicnVuVGVzdCgpXCIiLAotICAgICJSVU5URVNUKCkiLAorICAgICJcInJ1blRlc3QoKVwi
IiwKKwogICAgICJydW50ZXN0KCkiLAorICAgICJcInJ1bnRlc3QoKSIsCisgICAgInJ1bnRlc3Qo
KVwiIiwKKyAgICAiXCJydW50ZXN0KClcIiIsCisKKyAgICAiclVuVGVTdCgpIiwKKyAgICAiXCJy
VW5UZVN0KCkiLAorICAgICJyVW5UZVN0KClcIiIsCisgICAgIlwiclVuVGVTdCgpXCIiLAorCisg
ICAgIlJVTlRFU1QoKSIsCisgICAgIlwiUlVOVEVTVCgpIiwKKyAgICAiUlVOVEVTVCgpXCIiLAor
ICAgICJcIlJVTlRFU1QoKVwiIiwKIAogICAgIC8vIENTUyBzZWxlY3RvcnMKKwogICAgICIuYm9k
eS1pbnNpZGUtaWZyYW1lIiwKICAgICAiKiIsCiAgICAgIkJPRFlbT05MT0FEXSIsCiAKICAgICAv
LyBYUGF0aCBxdWVyeQorCiAgICAgIi9odG1sL2JvZHkiLAogICAgICIvaHRtbC9ib2R5L0Bvbmxv
YWQiLAogICAgICIvSFRNTC9CT0RZIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMWJjOGJk
ZWQ5ZjcuLjA3NzRjZmVhMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxOS0wMy0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogU2VhcmNoOiBhbGxvdyBET00gc2VhcmNoZXMgdG8gYmUgY2Fz
ZSBzZW5zaXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NDY3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwODc1Nzc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgYERPTS5wZXJmb3Jt
U2VhcmNoYCBhbHNvIHNlYXJjaGVzIGJ5IHNlbGVjdG9yIGFuZCBYUGF0aCwgc29tZSByZXN1bHRz
IG1heSBhcHBlYXIKKyAgICAgICAgYXMgdW5leHBlY3RlZC4gQXMgYW4gZXhhbXBsZSwgc2VhcmNo
aW5nIGZvciAiQm9EeSIgd2lsbCBzdGlsbCByZXR1cm4gdGhlIDxib2R5PiBhcyBhIHJlc3VsdCwK
KyAgICAgICAgYXMgYWx0aG91Z2ggdGhlIGxpdGVyYWwgbm9kZSBuYW1lICgiQk9EWSIpIGRpZG4n
dCBtYXRjaCwgaXQgZGlkIG1hdGNoIHZpYSBzZWxlY3Rvci9YUGF0aC4KKworICAgICAgICAqIGlu
c3BlY3Rvci9wcm90b2NvbC9ET00uanNvbjoKKyAgICAgICAgQWxsb3cgYERPTS5wZXJmb3JtU2Vh
cmNoYCB0byBiZSBjYXNlIHNlbnNpdGl2ZS4KKwogMjAxOS0wMy0wOCAgTWFyayBMYW0gIDxtYXJr
LmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhY2sgb3ZlcmZsb3cgY3Jhc2ggaW4gSlNDOjpK
U09iamVjdDo6aGFzSW5zdGFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9ET00uanNvbgppbmRleCBjYWRlNTIxODk3Yy4uMGVkYzY4YjViMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNv
bgpAQCAtMzU5LDcgKzM1OSw4IEBACiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNo
ZXMgZm9yIGEgZ2l2ZW4gc3RyaW5nIGluIHRoZSBET00gdHJlZS4gVXNlIDxjb2RlPmdldFNlYXJj
aFJlc3VsdHM8L2NvZGU+IHRvIGFjY2VzcyBzZWFyY2ggcmVzdWx0cyBvciA8Y29kZT5jYW5jZWxT
ZWFyY2g8L2NvZGU+IHRvIGVuZCB0aGlzIHNlYXJjaCBzZXNzaW9uLiIsCiAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInF1ZXJ5IiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlBsYWluIHRleHQgb3IgcXVlcnkgc2VsZWN0b3Ig
b3IgWFBhdGggc2VhcmNoIHF1ZXJ5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5v
ZGVJZHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiTm9kZUlkIiB9LCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWRzIG9mIG5vZGVzIHRvIHVzZSBhcyBz
dGFydGluZyBwb2ludHMgZm9yIHRoZSBzZWFyY2guIiB9CisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJub2RlSWRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIk5vZGVJ
ZCIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklkcyBvZiBub2RlcyB0byB1
c2UgYXMgc3RhcnRpbmcgcG9pbnRzIGZvciB0aGUgc2VhcmNoLiIgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNhc2VTZW5zaXRpdmUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIHNlYXJjaCBpcyBjYXNlIHNlbnNpdGl2
ZS4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInNlYXJjaElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlVuaXF1ZSBzZWFyY2ggc2Vzc2lvbiBpZGVudGlmaWVyLiIgfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA3OTNjYjcwMmQ1YS4uNjkxNDdiNWUwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAor
MjAxOS0wMy0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogU2VhcmNoOiBhbGxvdyBET00gc2VhcmNoZXMgdG8gYmUgY2FzZSBzZW5z
aXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NDY3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwODc1Nzc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9kb20vZG9t
LXNlYXJjaC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtY2Fz
ZVNlbnNpdGl2ZS5odG1sCisKKyAgICAgICAgU2luY2UgYERPTS5wZXJmb3JtU2VhcmNoYCBhbHNv
IHNlYXJjaGVzIGJ5IHNlbGVjdG9yIGFuZCBYUGF0aCwgc29tZSByZXN1bHRzIG1heSBhcHBlYXIK
KyAgICAgICAgYXMgdW5leHBlY3RlZC4gQXMgYW4gZXhhbXBsZSwgc2VhcmNoaW5nIGZvciAiQm9E
eSIgd2lsbCBzdGlsbCByZXR1cm4gdGhlIDxib2R5PiBhcyBhIHJlc3VsdCwKKyAgICAgICAgYXMg
YWx0aG91Z2ggdGhlIGxpdGVyYWwgbm9kZSBuYW1lICgiQk9EWSIpIGRpZG4ndCBtYXRjaCwgaXQg
ZGlkIG1hdGNoIHZpYSBzZWxlY3Rvci9YUGF0aC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpw
ZXJmb3JtU2VhcmNoKToKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JOb2RlRmluZGVy
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck5vZGVGaW5kZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yTm9kZUZpbmRlcjo6SW5zcGVjdG9yTm9kZUZpbmRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOb2RlRmluZGVyOjpzZWFyY2hVc2luZ0RPTVRyZWVU
cmF2ZXJzYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTm9kZUZpbmRlcjo6Y2hlY2tF
cXVhbHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5vZGVGaW5kZXI6OmNo
ZWNrQ29udGFpbnMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5vZGVGaW5k
ZXI6OmNoZWNrU3RhcnRzV2l0aCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Tm9kZUZpbmRlcjo6Y2hlY2tFbmRzV2l0aCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yTm9kZUZpbmRlcjo6bWF0Y2hlc0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JOb2RlRmluZGVyOjptYXRjaGVzRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JOb2RlRmluZGVyOjpzZWFyY2hVc2luZ1hQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvck5vZGVGaW5kZXI6OnNlYXJjaFVzaW5nQ1NTU2VsZWN0b3JzKToKKwogMjAxOS0w
My0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBN
YWtlIGl0IGNsZWFyZXIgd2hpY2ggZGF0YSBpcyBwcm90ZWN0ZWQgYnkgdGhlIHR3byBsb2NrcyBp
biBTY3JvbGxpbmdUcmVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTm9kZUZpbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Tm9kZUZpbmRlci5jcHAKaW5kZXggZjkyYTVkODkyN2UuLjE5MWE2YTc2NmI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5vZGVGaW5kZXIuY3BwCkBAIC01Mywx
MyArNTMsMTQgQEAgc3RhdGljIFN0cmluZyBzdHJpcENoYXJhY3RlcnMoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIGNvbnN0IGNoYXIgc3RhcnRDaGFyYWN0ZXIsIGMKICAgICByZXR1cm4gc3RyaW5nLnN1
YnN0cmluZyhzdGFydCwgZW5kIC0gc3RhcnQpOwogfQogCi1JbnNwZWN0b3JOb2RlRmluZGVyOjpJ
bnNwZWN0b3JOb2RlRmluZGVyKGNvbnN0IFN0cmluZyYgd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSkK
LSAgICA6IG1fd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSh3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5KQor
SW5zcGVjdG9yTm9kZUZpbmRlcjo6SW5zcGVjdG9yTm9kZUZpbmRlcihjb25zdCBTdHJpbmcmIHF1
ZXJ5LCBib29sIGNhc2VTZW5zaXRpdmUpCisgICAgOiBtX3F1ZXJ5KHF1ZXJ5KQorICAgICwgbV9j
YXNlU2Vuc2l0aXZlKGNhc2VTZW5zaXRpdmUpCiB7Ci0gICAgbV90YWdOYW1lUXVlcnkgPSBzdHJp
cENoYXJhY3RlcnMod2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgJzwnLCAnPicsIG1fc3RhcnRUYWdG
b3VuZCwgbV9lbmRUYWdGb3VuZCk7CisgICAgbV90YWdOYW1lUXVlcnkgPSBzdHJpcENoYXJhY3Rl
cnMocXVlcnksICc8JywgJz4nLCBtX3N0YXJ0VGFnRm91bmQsIG1fZW5kVGFnRm91bmQpOwogCiAg
ICAgYm9vbCBzdGFydFF1b3RlRm91bmQsIGVuZFF1b3RlRm91bmQ7Ci0gICAgbV9hdHRyaWJ1dGVR
dWVyeSA9IHN0cmlwQ2hhcmFjdGVycyh3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCAnIicsICciJywg
c3RhcnRRdW90ZUZvdW5kLCBlbmRRdW90ZUZvdW5kKTsKKyAgICBtX2F0dHJpYnV0ZVF1ZXJ5ID0g
c3RyaXBDaGFyYWN0ZXJzKHF1ZXJ5LCAnIicsICciJywgc3RhcnRRdW90ZUZvdW5kLCBlbmRRdW90
ZUZvdW5kKTsKICAgICBtX2V4YWN0QXR0cmlidXRlTWF0Y2ggPSBzdGFydFF1b3RlRm91bmQgJiYg
ZW5kUXVvdGVGb3VuZDsKIH0KIApAQCAtODMsNyArODQsNyBAQCB2b2lkIEluc3BlY3Rvck5vZGVG
aW5kZXI6OnNlYXJjaFVzaW5nRE9NVHJlZVRyYXZlcnNhbChOb2RlJiBwYXJlbnROb2RlKQogICAg
ICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05P
REU6CiAgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAgICAgICAg
aWYgKG5vZGUtPm5vZGVWYWx1ZSgpLmNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UobV93aGl0ZXNw
YWNlVHJpbW1lZFF1ZXJ5KSkKKyAgICAgICAgICAgIGlmIChjaGVja0NvbnRhaW5zKG5vZGUtPm5v
ZGVWYWx1ZSgpLCBtX3F1ZXJ5KSkKICAgICAgICAgICAgICAgICBtX3Jlc3VsdHMuYWRkKG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgpA
QCAtOTgsMjAgKzk5LDUwIEBAIHZvaWQgSW5zcGVjdG9yTm9kZUZpbmRlcjo6c2VhcmNoVXNpbmdE
T01UcmVlVHJhdmVyc2FsKE5vZGUmIHBhcmVudE5vZGUpCiAgICAgfQogfQogCitib29sIEluc3Bl
Y3Rvck5vZGVGaW5kZXI6OmNoZWNrRXF1YWxzKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5n
JiBiKQoreworICAgIGlmIChtX2Nhc2VTZW5zaXRpdmUpCisgICAgICAgIHJldHVybiBhID09IGI7
CisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYSwgYik7Cit9CisKK2Jvb2wgSW5z
cGVjdG9yTm9kZUZpbmRlcjo6Y2hlY2tDb250YWlucyhjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0
cmluZyYgYikKK3sKKyAgICBpZiAobV9jYXNlU2Vuc2l0aXZlKQorICAgICAgICByZXR1cm4gYS5j
b250YWlucyhiKTsKKyAgICByZXR1cm4gYS5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKGIpOwor
fQorCitib29sIEluc3BlY3Rvck5vZGVGaW5kZXI6OmNoZWNrU3RhcnRzV2l0aChjb25zdCBTdHJp
bmcmIGEsIGNvbnN0IFN0cmluZyYgYikKK3sKKyAgICBpZiAobV9jYXNlU2Vuc2l0aXZlKQorICAg
ICAgICByZXR1cm4gYS5zdGFydHNXaXRoKGIpOworICAgIHJldHVybiBhLnN0YXJ0c1dpdGhJZ25v
cmluZ0FTQ0lJQ2FzZShiKTsKK30KKworYm9vbCBJbnNwZWN0b3JOb2RlRmluZGVyOjpjaGVja0Vu
ZHNXaXRoKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKQoreworICAgIGlmIChtX2Nh
c2VTZW5zaXRpdmUpCisgICAgICAgIHJldHVybiBhLmVuZHNXaXRoKGIpOworICAgIHJldHVybiBh
LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoYik7Cit9CisKIGJvb2wgSW5zcGVjdG9yTm9kZUZp
bmRlcjo6bWF0Y2hlc0F0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHsKLSAg
ICBpZiAoYXR0cmlidXRlLmxvY2FsTmFtZSgpLnN0cmluZygpLmNvbnRhaW5zSWdub3JpbmdBU0NJ
SUNhc2UobV93aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5KSkKKyAgICBpZiAoY2hlY2tDb250YWlucyhh
dHRyaWJ1dGUubG9jYWxOYW1lKCkuc3RyaW5nKCksIG1fcXVlcnkpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICByZXR1cm4gbV9leGFjdEF0dHJpYnV0ZU1hdGNoID8gYXR0cmlidXRlLnZhbHVl
KCkgPT0gbV9hdHRyaWJ1dGVRdWVyeSA6IGF0dHJpYnV0ZS52YWx1ZSgpLnN0cmluZygpLmNvbnRh
aW5zSWdub3JpbmdBU0NJSUNhc2UobV9hdHRyaWJ1dGVRdWVyeSk7CisKKyAgICBhdXRvIHZhbHVl
ID0gYXR0cmlidXRlLnZhbHVlKCkuc3RyaW5nKCk7CisgICAgcmV0dXJuIG1fZXhhY3RBdHRyaWJ1
dGVNYXRjaCA/IGNoZWNrRXF1YWxzKHZhbHVlLCBtX2F0dHJpYnV0ZVF1ZXJ5KSA6IGNoZWNrQ29u
dGFpbnModmFsdWUsIG1fYXR0cmlidXRlUXVlcnkpOwogfQogCiBib29sIEluc3BlY3Rvck5vZGVG
aW5kZXI6Om1hdGNoZXNFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgU3Ry
aW5nIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZSgpOwotICAgIGlmICgoIW1fc3RhcnRUYWdG
b3VuZCAmJiAhbV9lbmRUYWdGb3VuZCAmJiBub2RlTmFtZS5jb250YWluc0lnbm9yaW5nQVNDSUlD
YXNlKG1fdGFnTmFtZVF1ZXJ5KSkKLSAgICAgICAgfHwgKG1fc3RhcnRUYWdGb3VuZCAmJiBtX2Vu
ZFRhZ0ZvdW5kICYmIGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uobm9kZU5hbWUsIG1fdGFnTmFtZVF1
ZXJ5KSkKLSAgICAgICAgfHwgKG1fc3RhcnRUYWdGb3VuZCAmJiAhbV9lbmRUYWdGb3VuZCAmJiBu
b2RlTmFtZS5zdGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2UobV90YWdOYW1lUXVlcnkpKQotICAg
ICAgICB8fCAoIW1fc3RhcnRUYWdGb3VuZCAmJiBtX2VuZFRhZ0ZvdW5kICYmIG5vZGVOYW1lLmVu
ZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UobV90YWdOYW1lUXVlcnkpKSkKKyAgICBpZiAoKCFtX3N0
YXJ0VGFnRm91bmQgJiYgIW1fZW5kVGFnRm91bmQgJiYgY2hlY2tDb250YWlucyhub2RlTmFtZSwg
bV90YWdOYW1lUXVlcnkpKQorICAgICAgICB8fCAobV9zdGFydFRhZ0ZvdW5kICYmIG1fZW5kVGFn
Rm91bmQgJiYgY2hlY2tFcXVhbHMobm9kZU5hbWUsIG1fdGFnTmFtZVF1ZXJ5KSkKKyAgICAgICAg
fHwgKG1fc3RhcnRUYWdGb3VuZCAmJiAhbV9lbmRUYWdGb3VuZCAmJiBjaGVja1N0YXJ0c1dpdGgo
bm9kZU5hbWUsIG1fdGFnTmFtZVF1ZXJ5KSkKKyAgICAgICAgfHwgKCFtX3N0YXJ0VGFnRm91bmQg
JiYgbV9lbmRUYWdGb3VuZCAmJiBjaGVja0VuZHNXaXRoKG5vZGVOYW1lLCBtX3RhZ05hbWVRdWVy
eSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1
dGVzKCkpCkBAIC0xMjcsNyArMTU4LDcgQEAgYm9vbCBJbnNwZWN0b3JOb2RlRmluZGVyOjptYXRj
aGVzRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogCiB2b2lkIEluc3BlY3Rvck5vZGVG
aW5kZXI6OnNlYXJjaFVzaW5nWFBhdGgoTm9kZSYgcGFyZW50Tm9kZSkKIHsKLSAgICBhdXRvIGV2
YWx1YXRlUmVzdWx0ID0gcGFyZW50Tm9kZS5kb2N1bWVudCgpLmV2YWx1YXRlKG1fd2hpdGVzcGFj
ZVRyaW1tZWRRdWVyeSwgJnBhcmVudE5vZGUsIG51bGxwdHIsIFhQYXRoUmVzdWx0OjpPUkRFUkVE
X05PREVfU05BUFNIT1RfVFlQRSwgbnVsbHB0cik7CisgICAgYXV0byBldmFsdWF0ZVJlc3VsdCA9
IHBhcmVudE5vZGUuZG9jdW1lbnQoKS5ldmFsdWF0ZShtX3F1ZXJ5LCAmcGFyZW50Tm9kZSwgbnVs
bHB0ciwgWFBhdGhSZXN1bHQ6Ok9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxscHRyKTsK
ICAgICBpZiAoZXZhbHVhdGVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybjsK
ICAgICBhdXRvIHJlc3VsdCA9IGV2YWx1YXRlUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwpA
QCAtMTU3LDcgKzE4OCw3IEBAIHZvaWQgSW5zcGVjdG9yTm9kZUZpbmRlcjo6c2VhcmNoVXNpbmdD
U1NTZWxlY3RvcnMoTm9kZSYgcGFyZW50Tm9kZSkKICAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+
KHBhcmVudE5vZGUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHF1ZXJ5UmVzdWx0ID0g
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4ocGFyZW50Tm9kZSkucXVlcnlTZWxlY3RvckFsbChtX3do
aXRlc3BhY2VUcmltbWVkUXVlcnkpOworICAgIGF1dG8gcXVlcnlSZXN1bHQgPSBkb3duY2FzdDxD
b250YWluZXJOb2RlPihwYXJlbnROb2RlKS5xdWVyeVNlbGVjdG9yQWxsKG1fcXVlcnkpOwogICAg
IGlmIChxdWVyeVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTm9kZUZpbmRlci5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5vZGVGaW5kZXIuaAppbmRleCA1ZDU1
ZGQzNzE3Yi4uNDY4YzE1MmIzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JOb2RlRmluZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck5vZGVGaW5kZXIuaApAQCAtNDEsMTEgKzQxLDE2IEBAIGNsYXNzIE5vZGU7CiAKIGNs
YXNzIEluc3BlY3Rvck5vZGVGaW5kZXIgewogcHVibGljOgotICAgIEluc3BlY3Rvck5vZGVGaW5k
ZXIoY29uc3QgU3RyaW5nJiB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5KTsKKyAgICBJbnNwZWN0b3JO
b2RlRmluZGVyKGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wgY2FzZVNlbnNpdGl2ZSk7CiAgICAg
dm9pZCBwZXJmb3JtU2VhcmNoKE5vZGUqKTsKICAgICBjb25zdCBMaXN0SGFzaFNldDxOb2RlKj4m
IHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdHM7IH0KIAogcHJpdmF0ZToKKyAgICBi
b29sIGNoZWNrRXF1YWxzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAgIGJvb2wg
Y2hlY2tDb250YWlucyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIGNo
ZWNrU3RhcnRzV2l0aChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIGNo
ZWNrRW5kc1dpdGgoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKICAgICBib29sIG1h
dGNoZXNBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7CiAgICAgYm9vbCBtYXRjaGVzRWxlbWVu
dChjb25zdCBFbGVtZW50Jik7CiAKQEAgLTUzLDE1ICs1OCwxNSBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2VhcmNoVXNpbmdYUGF0aChOb2RlJik7CiAgICAgdm9pZCBzZWFyY2hVc2luZ0NTU1NlbGVj
dG9ycyhOb2RlJik7CiAKKyAgICBTdHJpbmcgbV9xdWVyeTsKKyAgICBTdHJpbmcgbV90YWdOYW1l
UXVlcnk7CisgICAgU3RyaW5nIG1fYXR0cmlidXRlUXVlcnk7CisgICAgYm9vbCBtX2Nhc2VTZW5z
aXRpdmU7CisKKyAgICBMaXN0SGFzaFNldDxOb2RlKj4gbV9yZXN1bHRzOwogICAgIGJvb2wgbV9z
dGFydFRhZ0ZvdW5kOwogICAgIGJvb2wgbV9lbmRUYWdGb3VuZDsKICAgICBib29sIG1fZXhhY3RB
dHRyaWJ1dGVNYXRjaDsKLQotICAgIFN0cmluZyBtX3doaXRlc3BhY2VUcmltbWVkUXVlcnk7Ci0g
ICAgU3RyaW5nIG1fdGFnTmFtZVF1ZXJ5OwotICAgIFN0cmluZyBtX2F0dHJpYnV0ZVF1ZXJ5Owot
Ci0gICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fcmVzdWx0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYTlmZjM5MjNmN2MuLjI2MjQxZDY5OTIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmNwcApAQCAtMTAwNSwxMCArMTAwNSwxMCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRB
Y2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaQogICAg
IGF4UHJvcGVydGllcyA9IGJ1aWxkT2JqZWN0Rm9yQWNjZXNzaWJpbGl0eVByb3BlcnRpZXMobm9k
ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnBlcmZvcm1TZWFyY2goRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIGNv
bnN0IEpTT046OkFycmF5KiBub2RlSWRzLCBTdHJpbmcqIHNlYXJjaElkLCBpbnQqIHJlc3VsdENv
dW50KQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cGVyZm9ybVNlYXJjaChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IEpTT046OkFycmF5KiBub2Rl
SWRzLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZlLCBTdHJpbmcqIHNlYXJjaElkLCBpbnQqIHJl
c3VsdENvdW50KQogewogICAgIC8vIEZJWE1FOiBTZWFyY2ggd29ya3Mgd2l0aCBub2RlIGdyYW51
bGFyaXR5IC0gbnVtYmVyIG9mIG1hdGNoZXMgd2l0aGluIG5vZGUgaXMgbm90IGNhbGN1bGF0ZWQu
Ci0gICAgSW5zcGVjdG9yTm9kZUZpbmRlciBmaW5kZXIod2hpdGVzcGFjZVRyaW1tZWRRdWVyeSk7
CisgICAgSW5zcGVjdG9yTm9kZUZpbmRlciBmaW5kZXIocXVlcnksIGNhc2VTZW5zaXRpdmUgJiYg
KmNhc2VTZW5zaXRpdmUpOwogCiAgICAgaWYgKG5vZGVJZHMpIHsKICAgICAgICAgZm9yIChhdXRv
JiBub2RlVmFsdWUgOiAqbm9kZUlkcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDgzN2I3YmViNzliLi5jYzdlMjI2
ZjgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJy
ZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50TGlzdGVuZXJJ
ZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50Rm9yRXZlbnRMaXN0ZW5lcihF
cnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0
QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6QWNjZXNzaWJpbGl0eVByb3BlcnRpZXM+
JiBheFByb3BlcnRpZXMpIG92ZXJyaWRlOwotICAgIHZvaWQgcGVyZm9ybVNlYXJjaChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgY29uc3QgSlNPTjo6
QXJyYXkqIG5vZGVJZHMsIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpIG92ZXJy
aWRlOworICAgIHZvaWQgcGVyZm9ybVNlYXJjaChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
cXVlcnksIGNvbnN0IEpTT046OkFycmF5KiBub2RlSWRzLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0
aXZlLCBTdHJpbmcqIHNlYXJjaElkLCBpbnQqIHJlc3VsdENvdW50KSBvdmVycmlkZTsKICAgICB2
b2lkIGdldFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNlYXJjaElk
LCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4m
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2NhcmRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBzZWFyY2hJZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNvbHZlTm9kZShF
cnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggOWMwMjkxNDg2NGUuLjkwZmFkMjA3
OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0wMy0x
MCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU2VhcmNoOiBhbGxvdyBET00gc2VhcmNoZXMgdG8gYmUgY2FzZSBzZW5zaXRpdmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY3MworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDgwODc1Nzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFNpZGVi
YXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNlYXJjaFNpZGViYXJQYW5lbC5wcm90b3R5cGUucGVy
Zm9ybVNlYXJjaCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkRPTVRyZWVDb250ZW50Vmlldy5wcm90b3R5cGUucGVy
Zm9ybVNlYXJjaC5jb250ZXh0Tm9kZXNSZWFkeSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanM6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3Rv
dHlwZS5wZXJmb3JtU2VhcmNoLmNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkRPTU1h
bmFnZXIucHJvdG90eXBlLnBlcmZvcm1TZWFyY2gpOiBEZWxldGVkLgorICAgICAgICAoV0kuRE9N
TWFuYWdlci5wcm90b3R5cGUuc2VhcmNoUmVzdWx0Lm15Y2FsbGJhY2spOiBEZWxldGVkLgorICAg
ICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5cGUuc2VhcmNoUmVzdWx0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmNhbmNlbFNlYXJjaCk6IERlbGV0ZWQuCisg
ICAgICAgIERyaXZlLWJ5OiByZW1vdmUgdW51c2VkIGNvZGUuCisKIDIwMTktMDMtMDcgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogU3R5bGVzOiBvdmVycmlkZGVuIENTUyBwcm9wZXJ0eSBzaG91bGQgaGF2ZSBnby10byBidXR0
b24gdG8ganVtcCB0byBlZmZlY3RpdmUgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpz
CmluZGV4IDk1ZWNmYzZmNTQxLi5iZjdkMzFhOTEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2Vy
LmpzCkBAIC00MzgsNDcgKzQzOCw2IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJlbW90ZU9iamVjdC5wdXNoTm9kZVRvRnJvbnRl
bmQobm9kZUF2YWlsYWJsZS5iaW5kKHRoaXMpKTsKICAgICB9CiAKLSAgICBwZXJmb3JtU2VhcmNo
KHF1ZXJ5LCBzZWFyY2hDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHRoaXMuY2FuY2VsU2VhcmNo
KCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHNlYXJjaElkLCByZXN1bHRz
Q291bnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaElkID0gc2VhcmNoSWQ7
Ci0gICAgICAgICAgICBzZWFyY2hDYWxsYmFjayhyZXN1bHRzQ291bnQpOwotICAgICAgICB9Ci0g
ICAgICAgIERPTUFnZW50LnBlcmZvcm1TZWFyY2gocXVlcnksIGNhbGxiYWNrLmJpbmQodGhpcykp
OwotICAgIH0KLQotICAgIHNlYXJjaFJlc3VsdChpbmRleCwgY2FsbGJhY2spCi0gICAgewotICAg
ICAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVycm9yLCBub2RlSWRzKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9y
KTsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggIT09IDEp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9p
ZFRvRE9NTm9kZVtub2RlSWRzWzBdXSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy5f
c2VhcmNoSWQpCi0gICAgICAgICAgICBET01BZ2VudC5nZXRTZWFyY2hSZXN1bHRzKHRoaXMuX3Nl
YXJjaElkLCBpbmRleCwgaW5kZXggKyAxLCBteWNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKLSAgICB9Ci0KLSAgICBjYW5jZWxT
ZWFyY2goKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3NlYXJjaElkKSB7Ci0gICAgICAgICAg
ICBET01BZ2VudC5kaXNjYXJkU2VhcmNoUmVzdWx0cyh0aGlzLl9zZWFyY2hJZCk7Ci0gICAgICAg
ICAgICB0aGlzLl9zZWFyY2hJZCA9IHVuZGVmaW5lZDsKLSAgICAgICAgfQotICAgIH0KLQogICAg
IHF1ZXJ5U2VsZWN0b3Iobm9kZU9yTm9kZUlkLCBzZWxlY3RvciwgY2FsbGJhY2spCiAgICAgewog
ICAgICAgICBsZXQgbm9kZUlkID0gbm9kZU9yTm9kZUlkIGluc3RhbmNlb2YgV0kuRE9NTm9kZSA/
IG5vZGVPck5vZGVJZC5pZCA6IG5vZGVPck5vZGVJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmll
dy5qcwppbmRleCBiODM5MDUxNGZjZC4uZWY0NmMzYmY4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29u
dGVudFZpZXcuanMKQEAgLTMwMiw3ICszMDIsMTUgQEAgV0kuRE9NVHJlZUNvbnRlbnRWaWV3ID0g
Y2xhc3MgRE9NVHJlZUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAg
ICBmdW5jdGlvbiBjb250ZXh0Tm9kZXNSZWFkeShub2RlSWRzKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBET01BZ2VudC5wZXJmb3JtU2VhcmNoKHF1ZXJ5LCBub2RlSWRzLCBzZWFyY2hSZXN1bHRz
UmVhZHkuYmluZCh0aGlzKSk7CisgICAgICAgICAgICBpZiAodGhpcy5fc2VhcmNoUXVlcnkgIT09
IHF1ZXJ5KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbGV0IGNvbW1h
bmRBcmd1bWVudHMgPSB7CisgICAgICAgICAgICAgICAgcXVlcnk6IHRoaXMuX3NlYXJjaFF1ZXJ5
LAorICAgICAgICAgICAgICAgIG5vZGVJZHMsCisgICAgICAgICAgICAgICAgY2FzZVNlbnNpdGl2
ZTogV0kuU2VhcmNoVXRpbGl0aWVzLmRlZmF1bHRTZXR0aW5ncy5jYXNlU2Vuc2l0aXZlLnZhbHVl
LAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIERPTUFnZW50LnBlcmZvcm1TZWFyY2guaW52
b2tlKGNvbW1hbmRBcmd1bWVudHMsIHNlYXJjaFJlc3VsdHNSZWFkeS5iaW5kKHRoaXMpKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHRoaXMuZ2V0U2VhcmNoQ29udGV4dE5vZGVzKGNvbnRleHROb2Rl
c1JlYWR5LmJpbmQodGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzCmluZGV4IGNi
MGY0NTQ4NjQ0Li40ODEyZDdkMjRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFNpZGViYXJQYW5lbC5qcwpA
QCAtMzA0LDcgKzMwNCwxMSBAQCBXSS5TZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFzcyBTZWFyY2hT
aWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogICAgICAgICAgICAg
ICAgIHRoaXMuX2RvbVNlYXJjaElkZW50aWZpZXIgPSB1bmRlZmluZWQ7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGNvdW50UHJvbWlzZShET01BZ2VudC5wZXJmb3JtU2VhcmNoKHNlYXJj
aFF1ZXJ5KSwgZG9tQ2FsbGJhY2spOworICAgICAgICAgICAgbGV0IGNvbW1hbmRBcmd1bWVudHMg
PSB7CisgICAgICAgICAgICAgICAgcXVlcnk6IHNlYXJjaFF1ZXJ5LAorICAgICAgICAgICAgICAg
IGNhc2VTZW5zaXRpdmU6IGlzQ2FzZVNlbnNpdGl2ZSwKKyAgICAgICAgICAgIH07CisgICAgICAg
ICAgICBjb3VudFByb21pc2UoRE9NQWdlbnQucGVyZm9ybVNlYXJjaC5pbnZva2UoY29tbWFuZEFy
Z3VtZW50cyksIGRvbUNhbGxiYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBS
ZXNvdXJjZSBzZWFyY2ggc2hvdWxkIHdvcmsgaW4gSlNDb250ZXh0IGluc3BlY3Rpb24uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>