<?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>154214</bug_id>
          
          <creation_ts>2016-02-13 04:46:31 -0800</creation_ts>
          <short_desc>Web Inspector: XHRs and Web Worker scripts are not searchable</short_desc>
          <delta_ts>2016-04-08 19:37:21 -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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</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>1164525</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-02-13 04:46:31 -0800</bug_when>
    <thetext>* SUMMARY
XHRs and Web Worker scripts are not searchable.

The resources show up in the sidebar, but they are not searchable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164526</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-02-13 04:46:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/24643587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164527</commentid>
    <comment_count>2</comment_count>
      <attachid>271282</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-02-13 04:53:09 -0800</bug_when>
    <thetext>Created attachment 271282
[PATCH] Work In Progress

I&apos;m a bit skeptical of this patch at the moment, but I&apos;m putting it up for feedback.

It seems Page.searchInResources only walks the CachedResources that are still around for frames/documents. Unfortunately XHR resources, and other &quot;Raw Resources&quot; (Worker script) are not included in this list. The NetworkAgent is told about these Raw CachedResources before they are destroyed, and was saving their data in the NetworkResourcesData class off of the NetworkAgent. So we could ask the NetworkAgent to search its &quot;Other Resources&quot;, which I just called &quot;searchRequests&quot; here... But this seems to capture all the resources NOT searched by PageAgent.

This lets us search in a near identical way to searching Page resources.

  Page.searchInResources
    =&gt; Page.searchInResource(frameId, url)
      =&gt; frameId, url, match info =&gt; UI

  Network.searchInRequests
    =&gt; Network.searchRequest(requestId) (frameId is known)
      =&gt; frameId, url, match info =&gt; UI

I&apos;m guessing NetworkResourcesData was actually used for a different purpose (XHR Replay?) but we can take advantage of it here for searching XHRs.

The one caveat is, like all things NetworkAgent related, the inspector has to be open to capture the content of XHRs. You can&apos;t search XHRs that happened before the inspector was opened. I think that is fine / to be expected. The same way scripts get garbage collected, resources do as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164528</commentid>
    <comment_count>3</comment_count>
      <attachid>271282</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-02-13 05:26:25 -0800</bug_when>
    <thetext>Comment on attachment 271282
[PATCH] Work In Progress

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164596</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-02-13 17:36:03 -0800</bug_when>
    <thetext>Thought about this a bit. Really, Page.searchInResources should just be doing this.

On the backend, PageAgent can can shimmy on over to the NetworkAgent for the data it needs, but it doesn&apos;t seem useful to add Network agent protocol methods for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164801</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-02-15 12:07:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/16660513&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182365</commentid>
    <comment_count>6</comment_count>
      <attachid>276056</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-08 16:56:27 -0700</bug_when>
    <thetext>Created attachment 276056
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182422</commentid>
    <comment_count>7</comment_count>
      <attachid>276056</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-08 19:37:18 -0700</bug_when>
    <thetext>Comment on attachment 276056
[PATCH] Proposed Fix

Clearing flags on attachment: 276056

Committed r199263: &lt;http://trac.webkit.org/changeset/199263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182423</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-08 19:37:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271282</attachid>
            <date>2016-02-13 04:53:09 -0800</date>
            <delta_ts>2016-04-08 16:56:27 -0700</delta_ts>
            <desc>[PATCH] Work In Progress</desc>
            <filename>search-xhrs-and-other.patch</filename>
            <type>text/plain</type>
            <size>15328</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3
b3JrLmpzb24KaW5kZXggZTMxN2Y4MC4uOTQ3Zjc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24KQEAgLTEyMSw2ICsx
MjEsMTcgQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJbml0aWF0b3IgVVJMLCBzZXQg
Zm9yIFBhcnNlciB0eXBlIG9ubHkuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibGlu
ZU51bWJlciIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJJbml0aWF0b3IgbGluZSBudW1iZXIsIHNldCBmb3IgUGFyc2VyIHR5cGUgb25seS4iIH0K
ICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjog
IlNlYXJjaFJlc3VsdCIsCisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCByZXN1bHQgZm9yIHJlc291cmNlLiIsCisgICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZSBVUkwuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRyZWYiOiAiUmVxdWVzdElkIiwgImRl
c2NyaXB0aW9uIjogIlJlcXVlc3QgaWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZnJhbWVJZCIsICIkcmVmIjogIkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWQuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWF0Y2hlc0NvdW50IiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBtYXRjaGVzIGluIHRoZSByZXNvdXJjZSBj
b250ZW50LiIgfQorICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiY29tbWFu
ZHMiOiBbCkBAIC0xNzAsNiArMTgxLDMxIEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJz
dGF0dXMiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiSFRUUCByZXNwb25zZSBz
dGF0dXMgY29kZS4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiTG9hZHMgYSByZXNvdXJjZSBpbiB0aGUgY29udGV4dCBvZiBhIGZyYW1lIG9uIHRoZSBpbnNw
ZWN0ZWQgcGFnZSB3aXRob3V0IGNyb3NzIG9yaWdpbiBjaGVja3MuIgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzZWFyY2hJblJlcXVlc3QiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIGZvciBnaXZlbiBzdHJpbmcgaW4gYSBuZXR3b3Jr
IHJlcXVlc3QuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRyZWYiOiAiUmVxdWVzdElkIiwgImRlc2NyaXB0aW9u
IjogIlJlcXVlc3QgaWQgZm9yIHJlc291cmNlIHRvIHNlYXJjaCBpbi4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJxdWVyeSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6
ICJTdHJpbmcgdG8gc2VhcmNoIGZvci4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJj
YXNlU2Vuc2l0aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJJZiB0cnVlLCBzZWFyY2ggaXMgY2FzZSBzZW5zaXRpdmUuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaXNSZWdleCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgdHJlYXRzIHN0cmluZyBwYXJhbWV0
ZXIgYXMgcmVnZXguIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiR2VuZXJpY1R5cGVzLlNlYXJjaE1hdGNoIiB9LCAiZGVzY3JpcHRp
b24iOiAiTGlzdCBvZiBzZWFyY2ggbWF0Y2hlcy4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2VhcmNoSW5SZXF1ZXN0cyIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9yIGdpdmVuIHN0cmluZyBpbiBu
ZXR3b3JrIHJlcXVlc3RzLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiU3RyaW5nIHRvIHNlYXJjaCBmb3IuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
Y2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiSWYgdHJ1ZSwgc2VhcmNoIGlzIGNhc2Ugc2Vuc2l0aXZlLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBzdHJpbmcgcGFyYW1l
dGVyIGFzIHJlZ2V4LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYXJyYXkiLCAi
aXRlbXMiOiB7ICIkcmVmIjogIlNlYXJjaFJlc3VsdCIgfSwgImRlc2NyaXB0aW9uIjogIkxpc3Qg
b2Ygc2VhcmNoIHJlc3VsdHMuIiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAog
ICAgICJldmVudHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDM1YTZjOGQuLjA4NGE3ODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC02MCw2
ICs2MCw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgIldlYlNvY2tldEZyYW1lLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9y
L0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSWRlbnRpZmll
cnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVy
Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgpAQCAtNjgsNiArNjks
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHlhcnIvUmVn
dWxhckV4cHJlc3Npb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIApAQCAtNDUy
LDEwICs0NTQsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkUmVjZWl2ZVNjcmlw
dFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIAogdm9pZCBJbnNwZWN0b3JOZXR3
b3JrQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRpbmcoVGhyZWFkYWJsZUxvYWRlckNsaWVudCosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCiB7Ci0g
ICAgLy8gRm9yIEFzeW5jaHJvbm91cyBYSFJzLCB0aGUgaW5zcGVjdG9yIGNhbiBncmFiIHRoZSBk
YXRhIGRpcmVjdGx5IG9mZiBvZiB0aGUgQ2FjaGVkUmVzb3VyY2UuIEZvciBzeW5jIFhIUnMsIHdl
IG5lZWQgdG8KLSAgICAvLyBwcm92aWRlIHRoZSBkYXRhIGhlcmUsIHNpbmNlIG5vIENhY2hlZFJl
c291cmNlIHdhcyBpbnZvbHZlZC4KLSAgICBpZiAobV9sb2FkaW5nWEhSU3luY2hyb25vdXNseSkK
LSAgICAgICAgbV9yZXNvdXJjZXNEYXRhLT5zZXRSZXNvdXJjZUNvbnRlbnQoSWRlbnRpZmllcnNG
YWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIHNvdXJjZVN0cmluZyk7CisgICAgbV9yZXNv
dXJjZXNEYXRhLT5zZXRSZXNvdXJjZUNvbnRlbnQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0
SWQoaWRlbnRpZmllciksIHNvdXJjZVN0cmluZyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yTmV0d29y
a0FnZW50OjpkaWRSZWNlaXZlWEhSUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQpA
QCAtNjk3LDYgKzY5Niw1NiBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6bG9hZFJlc291
cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJgogICAgIGluc3BlY3Rv
clRocmVhZGFibGVMb2FkZXJDbGllbnQtPnNldExvYWRlcihsb2FkZXIucmVsZWFzZSgpKTsKIH0K
IAordm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OnNlYXJjaEluUmVxdWVzdChFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHF1
ZXJ5LCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wq
IGNvbnN0IG9wdGlvbmFsSXNSZWdleCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkdlbmVyaWNUeXBlczo6U2VhcmNoTWF0Y2g+PiYgcmVzdWx0
cykKK3sKKyAgICByZXN1bHRzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9y
OjpQcm90b2NvbDo6R2VuZXJpY1R5cGVzOjpTZWFyY2hNYXRjaD46OmNyZWF0ZSgpOworCisgICAg
Ym9vbCBpc1JlZ2V4ID0gb3B0aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFsSXNSZWdleCA6IGZhbHNl
OworICAgIGJvb2wgY2FzZVNlbnNpdGl2ZSA9IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSA/ICpvcHRp
b25hbENhc2VTZW5zaXRpdmUgOiBmYWxzZTsKKworICAgIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpS
ZXNvdXJjZURhdGEgY29uc3QqIHJlc291cmNlRGF0YSA9IG1fcmVzb3VyY2VzRGF0YS0+ZGF0YShy
ZXF1ZXN0SWQpOworICAgIGlmICghcmVzb3VyY2VEYXRhKSB7CisgICAgICAgIGVycm9yU3RyaW5n
ID0gQVNDSUlMaXRlcmFsKCJObyByZXNvdXJjZSB3aXRoIGdpdmVuIGlkZW50aWZpZXIgZm91bmQi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghcmVzb3VyY2VEYXRhLT5oYXND
b250ZW50KCkpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIk5vIHJlc291
cmNlIGNvbnRlbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlc3VsdHMgPSBD
b250ZW50U2VhcmNoVXRpbGl0aWVzOjpzZWFyY2hJblRleHRCeUxpbmVzKHJlc291cmNlRGF0YS0+
Y29udGVudCgpLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCk7Cit9CisKKworc3RhdGlj
IFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpTZWFyY2hSZXN1bHQ+IGJ1aWxkT2Jq
ZWN0Rm9yU2VhcmNoUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcm
IGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbWF0Y2hlc0NvdW50KQoreworICAgIHJl
dHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpTZWFyY2hSZXN1bHQ6OmNyZWF0ZSgp
CisgICAgICAgIC5zZXRVcmwodXJsKQorICAgICAgICAuc2V0UmVxdWVzdElkKHJlcXVlc3RJZCkK
KyAgICAgICAgLnNldEZyYW1lSWQoZnJhbWVJZCkKKyAgICAgICAgLnNldE1hdGNoZXNDb3VudCht
YXRjaGVzQ291bnQpCisgICAgICAgIC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yTmV0
d29ya0FnZW50OjpzZWFyY2hJblJlcXVlc3RzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBx
dWVyeSwgY29uc3QgYm9vbCogY29uc3Qgb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29s
KiBjb25zdCBvcHRpb25hbElzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJh
eTxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpTZWFyY2hSZXN1bHQ+PiYgcmVzdWx0KQor
eworICAgIHJlc3VsdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJv
dG9jb2w6Ok5ldHdvcms6OlNlYXJjaFJlc3VsdD46OmNyZWF0ZSgpOworCisgICAgYm9vbCBpc1Jl
Z2V4ID0gb3B0aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFsSXNSZWdleCA6IGZhbHNlOworICAgIGJv
b2wgY2FzZVNlbnNpdGl2ZSA9IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSA/ICpvcHRpb25hbENhc2VT
ZW5zaXRpdmUgOiBmYWxzZTsKKyAgICBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uIHJlZ2V4
ID0gQ29udGVudFNlYXJjaFV0aWxpdGllczo6Y3JlYXRlU2VhcmNoUmVnZXgocXVlcnksIGNhc2VT
ZW5zaXRpdmUsIGlzUmVnZXgpOworCisgICAgVmVjdG9yPE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpS
ZXNvdXJjZURhdGEqPiByZXNvdXJjZXMgPSBtX3Jlc291cmNlc0RhdGEtPnJlc291cmNlcygpOwor
ICAgIGZvciAoYXV0byogcmVzb3VyY2VEYXRhIDogcmVzb3VyY2VzKSB7CisgICAgICAgIGlmIChy
ZXNvdXJjZURhdGEtPmhhc0NvbnRlbnQoKSkgeworICAgICAgICAgICAgaW50IG1hdGNoZXNDb3Vu
dCA9IENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OmNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVz
KHJlZ2V4LCByZXNvdXJjZURhdGEtPmNvbnRlbnQoKSk7CisgICAgICAgICAgICBpZiAobWF0Y2hl
c0NvdW50KQorICAgICAgICAgICAgICAgIHJlc3VsdC0+YWRkSXRlbShidWlsZE9iamVjdEZvclNl
YXJjaFJlc3VsdChyZXNvdXJjZURhdGEtPnJlcXVlc3RJZCgpLCByZXNvdXJjZURhdGEtPmZyYW1l
SWQoKSwgcmVzb3VyY2VEYXRhLT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjptYWluRnJhbWVOYXZpZ2F0ZWQo
RG9jdW1lbnRMb2FkZXImIGxvYWRlcikKIHsKICAgICBpZiAobV9jYWNoZURpc2FibGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCmluZGV4
IDk2YWM2NmIuLjRhODEzNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldFJlc3BvbnNlQm9keShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVx
dWVzdElkLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDYWNoZURpc2FibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBjYWNo
ZURpc2FibGVkKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgUmVmPExv
YWRSZXNvdXJjZUNhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNo
SW5SZXF1ZXN0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0
cmluZyYgcXVlcnksIGNvbnN0IGJvb2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVn
ZXgsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29s
OjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2VhcmNoSW5SZXF1ZXN0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNv
bnN0IGJvb2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpTZWFy
Y2hSZXN1bHQ+PiYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgZW5hYmxlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4
IDgwYWU3ZjIuLmI5YjFiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0xMTUsNyArMTE1LDEwIEBAIHN0YXRpYyBib29sIHByZXBh
cmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcihDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIGJv
b2wqIGhhCiBzdGF0aWMgYm9vbCBoYXNUZXh0Q29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVk
UmVzb3VyY2UpCiB7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUgdHlwZSA9
IEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlKCpjYWNoZWRSZXNvdXJjZSk7
Ci0gICAgcmV0dXJuIHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpEb2N1bWVudFJlc291cmNl
IHx8IHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpTdHlsZXNoZWV0UmVzb3VyY2UgfHwgdHlw
ZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6OlNjcmlwdFJlc291cmNlIHx8IHR5cGUgPT0gSW5zcGVj
dG9yUGFnZUFnZW50OjpYSFJSZXNvdXJjZTsKKyAgICByZXR1cm4gdHlwZSA9PSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OkRvY3VtZW50UmVzb3VyY2UKKyAgICAgICAgfHwgdHlwZSA9PSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OlN0eWxlc2hlZXRSZXNvdXJjZQorICAgICAgICB8fCB0eXBlID09IEluc3BlY3Rv
clBhZ2VBZ2VudDo6U2NyaXB0UmVzb3VyY2UKKyAgICAgICAgfHwgdHlwZSA9PSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OlhIUlJlc291cmNlOwogfQogCiBzdGF0aWMgUmVmUHRyPFRleHRSZXNvdXJjZURl
Y29kZXI+IGNyZWF0ZVhIUlRleHREZWNvZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvTmV0d29ya1Jlc291cmNlc0RhdGEuY3BwCmluZGV4IDM5ZDM1MzUuLjVjODkzYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcApA
QCAtMjgzLDYgKzI4MywxMyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpjbGVhcihjb25z
dCBTdHJpbmcmIHByZXNlcnZlZExvYWRlcklkKQogICAgIG1fcmVxdWVzdElkVG9SZXNvdXJjZURh
dGFNYXAuc3dhcChwcmVzZXJ2ZWRNYXApOwogfQogCitWZWN0b3I8TmV0d29ya1Jlc291cmNlc0Rh
dGE6OlJlc291cmNlRGF0YSo+IE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpyZXNvdXJjZXMoKQorewor
ICAgIFZlY3RvcjxOZXR3b3JrUmVzb3VyY2VzRGF0YTo6UmVzb3VyY2VEYXRhKj4gcmVzb3VyY2Vz
OworICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLCBy
ZXNvdXJjZXMpOworICAgIHJldHVybiByZXNvdXJjZXM7Cit9CisKIE5ldHdvcmtSZXNvdXJjZXNE
YXRhOjpSZXNvdXJjZURhdGEqIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpyZXNvdXJjZURhdGFGb3JS
ZXF1ZXN0SWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCiB7CiAgICAgaWYgKHJlcXVlc3RJZC5p
c051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVz
b3VyY2VzRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmgKaW5kZXggNDlkZmJhMy4uMjliMmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmgKQEAgLTEyNyw2ICsxMjcsNyBAQCBwdWJsaWM6
CiAgICAgUmVzb3VyY2VEYXRhIGNvbnN0KiBkYXRhKGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKTsK
ICAgICBWZWN0b3I8U3RyaW5nPiByZW1vdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSop
OwogICAgIHZvaWQgY2xlYXIoY29uc3QgU3RyaW5nJiBwcmVzZXJ2ZWRMb2FkZXJJZCA9IFN0cmlu
ZygpKTsKKyAgICBWZWN0b3I8UmVzb3VyY2VEYXRhKj4gcmVzb3VyY2VzKCk7CiAKIHByaXZhdGU6
CiAgICAgUmVzb3VyY2VEYXRhKiByZXNvdXJjZURhdGFGb3JSZXF1ZXN0SWQoY29uc3QgU3RyaW5n
JiByZXF1ZXN0SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzCmluZGV4IGJkMDVmZDUu
LjM0N2FmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NlYXJjaFNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hTaWRlYmFyUGFuZWwuanMKQEAgLTEyNCwxNCArMTI0
LDE0IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFzcyBTZWFyY2hTaWRl
YmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgICAgICBpZiAoZXJyb3IpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBmdW5jdGlvbiByZXNvdXJjZUNh
bGxiYWNrKHVybCwgZXJyb3IsIHJlc291cmNlTWF0Y2hlcykKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHJlc291cmNlQ2FsbGJhY2soZnJhbWVJZCwgdXJsLCBlcnJvciwgcmVzb3VyY2VNYXRjaGVzKQog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHVwZGF0ZUVtcHR5Q29udGVudFBsYWNlaG9s
ZGVyU29vbi5jYWxsKHRoaXMpOwogCiAgICAgICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFyZXNv
dXJjZU1hdGNoZXMgfHwgIXJlc291cmNlTWF0Y2hlcy5sZW5ndGgpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5m
cmFtZVJlc291cmNlTWFuYWdlci5mcmFtZUZvcklkZW50aWZpZXIoc2VhcmNoUmVzdWx0LmZyYW1l
SWQpOworICAgICAgICAgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJlc291
cmNlTWFuYWdlci5mcmFtZUZvcklkZW50aWZpZXIoZnJhbWVJZCk7CiAgICAgICAgICAgICAgICAg
aWYgKCFmcmFtZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xNjAsNyArMTYw
LDU0IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFzcyBTZWFyY2hTaWRl
YmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgICAgICAgICAgaWYgKCFzZWFy
Y2hSZXN1bHQudXJsIHx8ICFzZWFyY2hSZXN1bHQuZnJhbWVJZCkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJj
ZShzZWFyY2hSZXN1bHQuZnJhbWVJZCwgc2VhcmNoUmVzdWx0LnVybCwgc2VhcmNoUXVlcnksIGlz
Q2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgcmVzb3VyY2VDYWxsYmFjay5iaW5kKHRoaXMsIHNlYXJj
aFJlc3VsdC51cmwpKTsKKyAgICAgICAgICAgICAgICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJj
ZShzZWFyY2hSZXN1bHQuZnJhbWVJZCwgc2VhcmNoUmVzdWx0LnVybCwgc2VhcmNoUXVlcnksIGlz
Q2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgcmVzb3VyY2VDYWxsYmFjay5iaW5kKHRoaXMsIHNlYXJj
aFJlc3VsdC5mcmFtZUlkLCBzZWFyY2hSZXN1bHQudXJsKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZWFyY2hSZXF1ZXN0c0NhbGxiYWNrKGVycm9yLCBy
ZXN1bHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHVwZGF0ZUVtcHR5Q29udGVudFBsYWNlaG9s
ZGVyU29vbi5jYWxsKHRoaXMpOworCisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBzZWFyY2hSZXF1ZXN0Q2FsbGJh
Y2soZnJhbWVJZCwgdXJsLCBlcnJvciwgcmVxdWVzdE1hdGNoZXMpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdXBkYXRlRW1wdHlDb250ZW50UGxhY2Vob2xkZXJTb29uLmNhbGwodGhp
cyk7CisKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXJlcXVlc3RNYXRjaGVzIHx8ICFy
ZXF1ZXN0TWF0Y2hlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdl
ci5mcmFtZUZvcklkZW50aWZpZXIoZnJhbWVJZCk7CisgICAgICAgICAgICAgICAgaWYgKCFmcmFt
ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgdmFyIHJl
c291cmNlID0gZnJhbWUudXJsID09PSB1cmwgPyBmcmFtZS5tYWluUmVzb3VyY2UgOiBmcmFtZS5y
ZXNvdXJjZUZvclVSTCh1cmwpOworICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIHZhciByZXNvdXJjZVRy
ZWVFbGVtZW50ID0gdGhpcy5fc2VhcmNoVHJlZUVsZW1lbnRGb3JSZXNvdXJjZShyZXNvdXJjZSk7
CisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcXVlc3RNYXRjaGVzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaCA9IHJlcXVlc3RNYXRj
aGVzW2ldOworICAgICAgICAgICAgICAgICAgICBmb3JFYWNoTWF0Y2goc2VhcmNoUXVlcnksIG1h
dGNoLmxpbmVDb250ZW50LCBmdW5jdGlvbihsaW5lTWF0Y2gsIGxhc3RJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIG1hdGNoT2JqZWN0ID0gbmV3IFdlYkluc3BlY3Rvci5Tb3Vy
Y2VDb2RlU2VhcmNoTWF0Y2hPYmplY3QocmVzb3VyY2UsIG1hdGNoLmxpbmVDb250ZW50LCBzZWFy
Y2hRdWVyeSwgbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UobWF0Y2gubGluZU51bWJlciwgbGlu
ZU1hdGNoLmluZGV4LCBtYXRjaC5saW5lTnVtYmVyLCBsYXN0SW5kZXgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBtYXRjaFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TZWFy
Y2hSZXN1bHRUcmVlRWxlbWVudChtYXRjaE9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXNvdXJjZVRyZWVFbGVtZW50LmFwcGVuZENoaWxkKG1hdGNoVHJlZUVsZW1lbnQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5zZWxlY3Rl
ZFRyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoVHJlZUVsZW1l
bnQucmV2ZWFsQW5kU2VsZWN0KGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfS5i
aW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB1cGRhdGVF
bXB0eUNvbnRlbnRQbGFjZWhvbGRlci5jYWxsKHRoaXMpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkgeworICAgICAg
ICAgICAgICAgIHZhciBzZWFyY2hSZXN1bHQgPSByZXN1bHRbaV07CisgICAgICAgICAgICAgICAg
aWYgKCFzZWFyY2hSZXN1bHQudXJsIHx8ICFzZWFyY2hSZXN1bHQuZnJhbWVJZCB8fCAhc2VhcmNo
UmVzdWx0LnJlcXVlc3RJZCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgICAgICBOZXR3b3JrQWdlbnQuc2VhcmNoSW5SZXF1ZXN0KHNlYXJjaFJlc3VsdC5yZXF1
ZXN0SWQsIHNlYXJjaFF1ZXJ5LCBpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIHNlYXJjaFJlcXVl
c3RDYWxsYmFjay5iaW5kKHRoaXMsIHNlYXJjaFJlc3VsdC5mcmFtZUlkLCBzZWFyY2hSZXN1bHQu
dXJsKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMjcwLDYgKzMxNywxMCBAQCBX
ZWJJbnNwZWN0b3IuU2VhcmNoU2lkZWJhclBhbmVsID0gY2xhc3MgU2VhcmNoU2lkZWJhclBhbmVs
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgICAgICBpZiAod2luZG93LlBhZ2VBZ2VudCkKICAg
ICAgICAgICAgIFBhZ2VBZ2VudC5zZWFyY2hJblJlc291cmNlcyhzZWFyY2hRdWVyeSwgaXNDYXNl
U2Vuc2l0aXZlLCBpc1JlZ2V4LCByZXNvdXJjZXNDYWxsYmFjay5iaW5kKHRoaXMpKTsKIAorICAg
ICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgOSk6IE5ldHdvcmsuc2VhcmNoSW5SZXF1ZXN0cyBk
aWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKHdpbmRvdy5OZXR3b3JrQWdlbnQgJiYgTmV0
d29ya0FnZW50LnNlYXJjaEluUmVxdWVzdHMpCisgICAgICAgICAgICBOZXR3b3JrQWdlbnQuc2Vh
cmNoSW5SZXF1ZXN0cyhzZWFyY2hRdWVyeSwgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBzZWFy
Y2hSZXF1ZXN0c0NhbGxiYWNrLmJpbmQodGhpcykpOworCiAgICAgICAgIHNldFRpbWVvdXQoc2Vh
cmNoU2NyaXB0cy5iaW5kKHRoaXMsIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2VhcmNo
YWJsZVNjcmlwdHMpLCAwKTsKIAogICAgICAgICBpZiAod2luZG93LkRPTUFnZW50KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276056</attachid>
            <date>2016-04-08 16:56:27 -0700</date>
            <delta_ts>2016-04-08 19:37:18 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>search-1.patch</filename>
            <type>text/plain</type>
            <size>25578</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NzE5M2MwLi4wNjI4ODhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTYtMDQt
MDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBYSFJzIGFuZCBXZWIgV29ya2VyIHNjcmlwdHMgYXJlIG5vdCBzZWFyY2hhYmxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyMTQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0NjQzNTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2UvcmVzb3VyY2VzL3Nl
YXJjaC1zY3JpcHQuanM6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3Jlc291cmNl
cy9zZWFyY2gtc3R5bGVzaGVldC5jc3M6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdl
L3Jlc291cmNlcy9zZWFyY2gtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
cGFnZS9yZXNvdXJjZXMvc2VhcmNoLXhoci50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wYWdlL3NlYXJjaEluUmVzb3VyY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3BhZ2Uvc2VhcmNoSW5SZXNvdXJjZXMuaHRtbDogQWRkZWQuCisgICAgICAgIFRl
c3QgZm9yIHRoZSBQYWdlIGRvbWFpbidzIHNlYXJjaCBjb21tYW5kcy4KKworMjAxNi0wNC0wOCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFJlZGVmaW5p
bmcgYSBtZXRob2Qgb2YgdGhlIHNhbWUgbmFtZSBoaXRzIGFuIGFzc2VydGlvbgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjU4CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Jlc291cmNlcy9zZWFyY2gtc2NyaXB0Lmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvcmVzb3VyY2VzL3NlYXJjaC1zY3JpcHQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY3MjYyMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Jlc291cmNlcy9zZWFyY2gtc2NyaXB0
LmpzCkBAIC0wLDAgKzEgQEAKKy8vIFNjcmlwdCByZXNvdXJjZSB3aXRoIHRoZSBTRUFSQ0gtU1RS
SU5HLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvcmVzb3VyY2VzL3Nl
YXJjaC1zdHlsZXNoZWV0LmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Jlc291cmNl
cy9zZWFyY2gtc3R5bGVzaGVldC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDZlYWQ3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdl
L3Jlc291cmNlcy9zZWFyY2gtc3R5bGVzaGVldC5jc3MKQEAgLTAsMCArMSw0IEBACisvKiBTdHls
ZXNoZWV0IHJlc291cmNlIHdpdGggdGhlIFNFQVJDSC1TVFJJTkcgKi8KK2JvZHkgeworICAgIGNv
bG9yOiBibGFjazsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Jl
c291cmNlcy9zZWFyY2gtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvcmVz
b3VyY2VzL3NlYXJjaC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMGY2YTY2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdl
L3Jlc291cmNlcy9zZWFyY2gtd29ya2VyLmpzCkBAIC0wLDAgKzEsNSBAQAorLy8gV29ya2VyIHJl
c291cmNlIHdpdGggdGhlIFNFQVJDSC1TVFJJTkcuCisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIChldmVudCkgPT4geworICAgIHNlbGYucG9zdE1lc3NhZ2UoImVjaG86ICIgKyBl
dmVudC5kYXRhKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uv
cmVzb3VyY2VzL3NlYXJjaC14aHIudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvcmVz
b3VyY2VzL3NlYXJjaC14aHIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljk0MWQyM2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9y
ZXNvdXJjZXMvc2VhcmNoLXhoci50eHQKQEAgLTAsMCArMSwyIEBACitYSFIgUmVzb3VyY2Ugd2l0
aCB0aGUgU0VBUkNILVNUUklORy4KK1hIUiBSZXNvdXJjZSB3aXRoIHRoZSBTRUFSQ0gtU1RSSU5H
IGFnYWluIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2VhcmNoSW5S
ZXNvdXJjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2VhcmNo
SW5SZXNvdXJjZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjVjNWM5ZDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Bh
Z2Uvc2VhcmNoSW5SZXNvdXJjZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3Rz
IGZvciB0aGUgUGFnZS5zZWFyY2hJblJlc291cmNlcyBhbmQgUGFnZS5zZWFyY2hJblJlc291cmNl
IGNvbW1hbmRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5zZWFyY2hJblJlc291
cmNlcyBhbmQgUGFnZS5zZWFyY2hJblJlc291cmNlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogU2Vh
cmNoQWxsUmVzb3VyY2VzCitQQVNTOiBTaG91bGQgZmluZCByZXN1bHRzIGluIG11bHRpcGxlIHJl
c291cmNlcy4KK0ZPVU5EOiBpbnNwZWN0b3IvcGFnZS9yZXNvdXJjZXMvc2VhcmNoLXNjcmlwdC5q
cyAoMSkKK0ZPVU5EOiBpbnNwZWN0b3IvcGFnZS9yZXNvdXJjZXMvc2VhcmNoLXN0eWxlc2hlZXQu
Y3NzICgxKQorRk9VTkQ6IGluc3BlY3Rvci9wYWdlL3Jlc291cmNlcy9zZWFyY2gtd29ya2VyLmpz
ICgxKQorRk9VTkQ6IGluc3BlY3Rvci9wYWdlL3Jlc291cmNlcy9zZWFyY2gteGhyLnR4dCAoMikK
K0ZPVU5EOiBpbnNwZWN0b3IvcGFnZS9zZWFyY2hJblJlc291cmNlcy5odG1sICgxKQorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogU2VhcmNoSW5TY3JpcHRSZXNvdXJjZQorUEFTUzogU2hvdWxkIGZp
bmQgcHJldmlvdXNseSBtZW50aW9uZWQgbnVtYmVyIG9mIG1hdGNoZXMuCitNQVRDSDogeyJsaW5l
TnVtYmVyIjowLCJsaW5lQ29udGVudCI6Ii8vIFNjcmlwdCByZXNvdXJjZSB3aXRoIHRoZSBTRUFS
Q0gtU1RSSU5HLlxuIn0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNlYXJjaEluWEhSUmVzb3Vy
Y2UKK1BBU1M6IFNob3VsZCBmaW5kIHByZXZpb3VzbHkgbWVudGlvbmVkIG51bWJlciBvZiBtYXRj
aGVzLgorTUFUQ0g6IHsibGluZU51bWJlciI6MCwibGluZUNvbnRlbnQiOiJYSFIgUmVzb3VyY2Ug
d2l0aCB0aGUgU0VBUkNILVNUUklORy5cbiJ9CitNQVRDSDogeyJsaW5lTnVtYmVyIjoxLCJsaW5l
Q29udGVudCI6IlhIUiBSZXNvdXJjZSB3aXRoIHRoZSBTRUFSQ0gtU1RSSU5HIGFnYWluIVxuIn0K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2VhcmNoSW5SZXNvdXJj
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NlYXJjaEluUmVzb3VyY2VzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjczMTRiNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NlYXJjaEluUmVzb3VyY2VzLmh0
bWwKQEAgLTAsMCArMSw5NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNl
cy9zZWFyY2gtc3R5bGVzaGVldC5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZWFyY2gt
c2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0cmlnZ2VyRG93bmxvYWRp
bmdSZXNvdXJjZXMoKSB7CisgICAgbGV0IHdvcmtlciA9IG5ldyBXb3JrZXIoInJlc291cmNlcy9z
ZWFyY2gtd29ya2VyLmpzIik7CisKKyAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0Owor
ICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3NlYXJjaC14aHIudHh0IiwgdHJ1ZSk7Cisg
ICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb25lKTsKKyAgICB4aHIuc2VuZCgpOwor
CisgICAgZnVuY3Rpb24gZG9uZSgpIHsKKyAgICAgICAgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRv
RnJvbnRlbmQoJ1BhZ2VJc1JlYWR5Jyk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBmdW5jdGlvbiBzYW5pdGl6ZVVSTCh1cmwpIHsKKyAgICAgICAgcmV0dXJuIHVybC5yZXBs
YWNlKC9eLio/TGF5b3V0VGVzdHNcLy8sICIiKTsKKyAgICB9CisKKyAgICBsZXQgc3VpdGUgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBhZ2Uuc2VhcmNoSW5SZXNvdXJjZXMgYW5k
IFBhZ2Uuc2VhcmNoSW5SZXNvdXJjZSIpOworCisgICAgbGV0IHNlYXJjaFJlc3VsdHM7CisgICAg
Y29uc3Qgc2VhcmNoU3RyaW5nID0gIlNFQVJDSC1TVFJJTkciOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiU2VhcmNoQWxsUmVzb3VyY2VzIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJBYmxlIHRvIGZpbmQgdGV4dCByZXN1bHRzIGluIGRpZmZlcmVudCByZXNvdXJj
ZXMuIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAg
UGFnZUFnZW50LnNlYXJjaEluUmVzb3VyY2VzKHNlYXJjaFN0cmluZywgKGVycm9yLCByZXN1bHRz
KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVycm9yLCAiU2hv
dWxkIG5vdCBiZSBhIHByb3RvY29sIGVycm9yLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChyZXN1bHRzLmxlbmd0aCA+IDAsICJTaG91bGQgZmluZCByZXN1bHRz
IGluIG11bHRpcGxlIHJlc291cmNlcy4iKTsKKyAgICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRz
ID0gcmVzdWx0cy5zb3J0KChhLCBiKSA9PiBhLnVybC5sb2NhbGVDb21wYXJlKGIudXJsKSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChsZXQgcmVzdWx0IG9mIHNlYXJjaFJlc3VsdHMpCisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBGT1VORDogJHtzYW5pdGl6ZVVSTChyZXN1
bHQudXJsKX0gKCR7cmVzdWx0Lm1hdGNoZXNDb3VudH0pYCk7CisgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlNlYXJjaEluU2NyaXB0UmVzb3VyY2UiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkFibGUgdG8gZmluZCB0ZXh0IHJlc3VsdHMgaW4gYW4gaW5k
aXZpZHVhbCBTY3JpcHQgcmVzb3VyY2UuIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHNlYXJjaFJlc3VsdHMuZmluZCgocmVz
dWx0KSA9PiAvc2VhcmNoLXNjcmlwdFwuanMkLy50ZXN0KHJlc3VsdC51cmwpKTsKKyAgICAgICAg
ICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgICAgIHJlamVjdCgpOworCisgICAgICAgICAg
ICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJjZShyZXN1bHQuZnJhbWVJZCwgcmVzdWx0LnVybCwg
c2VhcmNoU3RyaW5nLCAoZXJyb3IsIG1hdGNoZXMpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydCghZXJyb3IsICJTaG91bGQgbm90IGJlIGEgcHJvdG9jb2wgZXJyb3Iu
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KG1hdGNoZXMubGVu
Z3RoID09PSByZXN1bHQubWF0Y2hlc0NvdW50LCAiU2hvdWxkIGZpbmQgcHJldmlvdXNseSBtZW50
aW9uZWQgbnVtYmVyIG9mIG1hdGNoZXMuIik7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgbWF0
Y2ggb2YgbWF0Y2hlcykKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYE1B
VENIOiAke0pTT04uc3RyaW5naWZ5KG1hdGNoKX1gKTsKKyAgICAgICAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiU2VhcmNoSW5YSFJSZXNvdXJjZSIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiQWJsZSB0byBmaW5kIHRleHQgcmVzdWx0cyBpbiBhbiBpbmRpdmlkdWFs
IFhIUiByZXNvdXJjZS4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gc2VhcmNoUmVzdWx0cy5maW5kKChyZXN1bHQpID0+IC9z
ZWFyY2gteGhyXC50eHQkLy50ZXN0KHJlc3VsdC51cmwpKTsKKyAgICAgICAgICAgIGlmICghcmVz
dWx0KQorICAgICAgICAgICAgICAgIHJlamVjdCgpOworCisgICAgICAgICAgICBjb25zdCBpc1Jl
Z2V4ID0gdW5kZWZpbmVkOworICAgICAgICAgICAgY29uc3QgY2FzZVNlbnNpdGl2ZSA9IHVuZGVm
aW5lZDsKKworICAgICAgICAgICAgUGFnZUFnZW50LnNlYXJjaEluUmVzb3VyY2UocmVzdWx0LmZy
YW1lSWQsIHJlc3VsdC51cmwsIHNlYXJjaFN0cmluZywgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwg
cmVzdWx0LnJlcXVlc3RJZCwgKGVycm9yLCBtYXRjaGVzKSA9PiB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVycm9yLCAiU2hvdWxkIG5vdCBiZSBhIHByb3RvY29sIGVy
cm9yLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChtYXRjaGVz
Lmxlbmd0aCA9PT0gcmVzdWx0Lm1hdGNoZXNDb3VudCwgIlNob3VsZCBmaW5kIHByZXZpb3VzbHkg
bWVudGlvbmVkIG51bWJlciBvZiBtYXRjaGVzLiIpOworICAgICAgICAgICAgICAgIGZvciAobGV0
IG1hdGNoIG9mIG1hdGNoZXMpCisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KGBNQVRDSDogJHtKU09OLnN0cmluZ2lmeShtYXRjaCl9YCk7CisgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJEb3dubG9hZGluZ1Jlc291cmNlcygpIik7
CisgICAgSW5zcGVjdG9yVGVzdC5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcigiUGFnZUlzUmVhZHki
LCAoZXZlbnQpID0+IHsKKyAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cisg
ICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxwPlRlc3RzIGZvciB0aGUgUGFnZS5zZWFyY2hJblJlc291cmNlcyBhbmQgUGFnZS5zZWFyY2hJ
blJlc291cmNlIGNvbW1hbmRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDg0YTUyNjUuLjM3MTUzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE2LTA0LTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogWEhScyBhbmQgV2ViIFdvcmtlciBz
Y3JpcHRzIGFyZSBub3Qgc2VhcmNoYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDY0MzU4
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb246CisgICAgICAgIEFkZCBvcHRpb25hbCByZXF1ZXN0
SWQgdG8gc2VhcmNoIHJlc3VsdHMgcHJvcGVydGllcyBhbmQgc2VhcmNoCisgICAgICAgIHBhcmFt
ZXRlcnMgZm9yIHdoZW4gdGhlIGZyYW1lSWQgYW5kIHVybCBhcmUgbm90IGVub3VnaC4gWEhSCisg
ICAgICAgIHJlc291cmNlcywgYW5kICJPdGhlciIgcmVzb3VyY2VzIHdpbGwgdXNlIHRoaXMuCisK
IDIwMTYtMDQtMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVUludDMyVG9OdW1iZXIgc2hvdWxkIGhhdmUgYW4gSW50NTIgcGF0aApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbgppbmRleCBj
MjEwYTg5Li40YmE1NDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3Byb3RvY29sL1BhZ2UuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3Byb3RvY29sL1BhZ2UuanNvbgpAQCAtNTgsNyArNTgsOCBAQAogICAgICAgICAgICAgInBy
b3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgVVJMLiIgfSwKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3Jp
cHRpb24iOiAiUmVzb3VyY2UgZnJhbWUgaWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibWF0Y2hlc0NvdW50IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIk51bWJl
ciBvZiBtYXRjaGVzIGluIHRoZSByZXNvdXJjZSBjb250ZW50LiIgfQorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibWF0Y2hlc0NvdW50IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9u
IjogIk51bWJlciBvZiBtYXRjaGVzIGluIHRoZSByZXNvdXJjZSBjb250ZW50LiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICIkcmVmIjogIk5ldHdvcmsuUmVxdWVz
dElkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk5ldHdvcmsgcmVxdWVzdCBp
ZC4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpAQCAtMTY0LDcgKzE2
NSw4IEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSByZXNvdXJjZSB0byBzZWFyY2ggaW4uIiB9LAog
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicXVlcnkiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiU3RyaW5nIHRvIHNlYXJjaCBmb3IuIiB9LAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgc2VhcmNoIGlzIGNhc2Ugc2Vuc2l0aXZlLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIHRyZWF0cyBzdHJp
bmcgcGFyYW1ldGVyIGFzIHJlZ2V4LiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNS
ZWdleCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiSWYgdHJ1ZSwgdHJlYXRzIHN0cmluZyBwYXJhbWV0ZXIgYXMgcmVnZXguIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRyZWYiOiAiTmV0d29yay5SZXF1ZXN0
SWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdCBpZCBmb3IgcmVz
b3VyY2UgdG8gc2VhcmNoIGluLiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJyZXR1
cm5zIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYXJy
YXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkdlbmVyaWNUeXBlcy5TZWFyY2hNYXRjaCIgfSwgImRl
c2NyaXB0aW9uIjogIkxpc3Qgb2Ygc2VhcmNoIG1hdGNoZXMuIiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI3
NDk0MS4uYjQzMWQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE2LTA0LTA4ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogWEhScyBhbmQgV2ViIFdvcmtlciBzY3JpcHRzIGFyZSBub3Qgc2VhcmNoYWJsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjE0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yNDY0MzU4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcGFnZS9zZWFyY2hJblJlc291
cmNlcy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaEluUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZWFyY2hJblJlc291cmNlcyk6CisgICAgICAgIExl
dCB0aGUgTmV0d29ya0FnZW50IGhhbmRsZSBpbmRpdmlkdWFsIHNlYXJjaCByZXF1ZXN0cworICAg
ICAgICB3aXRoIGEgcmVxdWVzdElkLiBBbmQgcHJvdmlkZSBnbG9iYWwgc2VhcmNoIHJlc3VsdHMg
Zm9yCisgICAgICAgICJvdGhlciIgcmVzb3VyY2VzIGFuZCB3aWxsIGluY2x1ZGUgcmVxdWVzdElk
IHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JTZWFyY2hSZXN1bHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0FnZW50OjpzZWFyY2hPdGhlclJlcXVlc3RzKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtBZ2VudDo6c2VhcmNoSW5SZXF1ZXN0
KToKKyAgICAgICAgU2VhcmNoIHNhdmVkICJvdGhlciIgcmVzb3VyY2UgZGF0YSBjb250ZW50Lgor
CisgICAgICAgICogaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmg6CisgICAgICAgICog
aW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtSZXNvdXJjZXNEYXRhOjpyZXNvdXJjZXMpOgorICAgICAgICBFeHBvc2UgdGhlIHJlc291
cmNlcyBmb3IgaXRlcmF0aW9uIGJ5IHRoZSBOZXR3b3JrQWdlbnQuCisKKzIwMTYtMDQtMDggIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBbaU9TIFNpbXVs
YXRvcl0gQnVpbGQgZmFpbHVyZSAocHJvcGVydHkgJ2NvbnRlbnRzRm9ybWF0JyBub3QgZm91bmQg
b24gb2JqZWN0IG9mIHR5cGUgJ0xlZ2FjeVRpbGVMYXllciAqJykKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjQxNQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDgzZmYyMGYu
LjQzMTU0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIldlYlNvY2tldEZyYW1l
LmgiCisjaW5jbHVkZSA8aW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDxpbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
clZhbHVlcy5oPgpAQCAtNDUyLDEwICs0NTMsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2Vu
dDo6ZGlkUmVjZWl2ZVNjcmlwdFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIAog
dm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRpbmcoVGhyZWFkYWJs
ZUxvYWRlckNsaWVudCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VTdHJpbmcpCiB7Ci0gICAgLy8gRm9yIEFzeW5jaHJvbm91cyBYSFJzLCB0aGUgaW5zcGVj
dG9yIGNhbiBncmFiIHRoZSBkYXRhIGRpcmVjdGx5IG9mZiBvZiB0aGUgQ2FjaGVkUmVzb3VyY2Uu
IEZvciBzeW5jIFhIUnMsIHdlIG5lZWQgdG8KLSAgICAvLyBwcm92aWRlIHRoZSBkYXRhIGhlcmUs
IHNpbmNlIG5vIENhY2hlZFJlc291cmNlIHdhcyBpbnZvbHZlZC4KLSAgICBpZiAobV9sb2FkaW5n
WEhSU3luY2hyb25vdXNseSkKLSAgICAgICAgbV9yZXNvdXJjZXNEYXRhLT5zZXRSZXNvdXJjZUNv
bnRlbnQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIHNvdXJjZVN0
cmluZyk7CisgICAgbV9yZXNvdXJjZXNEYXRhLT5zZXRSZXNvdXJjZUNvbnRlbnQoSWRlbnRpZmll
cnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIHNvdXJjZVN0cmluZyk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRSZWNlaXZlWEhSUmVzcG9uc2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKQpAQCAtNjk3LDYgKzY5NSw0NSBAQCB2b2lkIEluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6bG9hZFJlc291cmNlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJgogICAgIGluc3BlY3RvclRocmVhZGFibGVMb2FkZXJDbGllbnQtPnNldExvYWRlcihsb2Fk
ZXIucmVsZWFzZSgpKTsKIH0KIAorc3RhdGljIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdl
OjpTZWFyY2hSZXN1bHQ+IGJ1aWxkT2JqZWN0Rm9yU2VhcmNoUmVzdWx0KGNvbnN0IFN0cmluZyYg
cmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQg
bWF0Y2hlc0NvdW50KQoreworICAgIGF1dG8gc2VhcmNoUmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0OjpjcmVhdGUoKQorICAgICAgICAuc2V0VXJsKHVybCkK
KyAgICAgICAgLnNldEZyYW1lSWQoZnJhbWVJZCkKKyAgICAgICAgLnNldE1hdGNoZXNDb3VudCht
YXRjaGVzQ291bnQpCisgICAgICAgIC5yZWxlYXNlKCk7CisgICAgc2VhcmNoUmVzdWx0LT5zZXRS
ZXF1ZXN0SWQocmVxdWVzdElkKTsKKyAgICByZXR1cm4gc2VhcmNoUmVzdWx0OworfQorCit2b2lk
IEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6c2VhcmNoT3RoZXJSZXF1ZXN0cyhjb25zdCBKU0M6Ollh
cnI6OlJlZ3VsYXJFeHByZXNzaW9uJiByZWdleCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OlNlYXJjaFJlc3VsdD4+JiByZXN1bHQp
Cit7CisgICAgVmVjdG9yPE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpSZXNvdXJjZURhdGEqPiByZXNv
dXJjZXMgPSBtX3Jlc291cmNlc0RhdGEtPnJlc291cmNlcygpOworICAgIGZvciAoYXV0byogcmVz
b3VyY2VEYXRhIDogcmVzb3VyY2VzKSB7CisgICAgICAgIGlmIChyZXNvdXJjZURhdGEtPmhhc0Nv
bnRlbnQoKSkgeworICAgICAgICAgICAgaW50IG1hdGNoZXNDb3VudCA9IENvbnRlbnRTZWFyY2hV
dGlsaXRpZXM6OmNvdW50UmVndWxhckV4cHJlc3Npb25NYXRjaGVzKHJlZ2V4LCByZXNvdXJjZURh
dGEtPmNvbnRlbnQoKSk7CisgICAgICAgICAgICBpZiAobWF0Y2hlc0NvdW50KQorICAgICAgICAg
ICAgICAgIHJlc3VsdC0+YWRkSXRlbShidWlsZE9iamVjdEZvclNlYXJjaFJlc3VsdChyZXNvdXJj
ZURhdGEtPnJlcXVlc3RJZCgpLCByZXNvdXJjZURhdGEtPmZyYW1lSWQoKSwgcmVzb3VyY2VEYXRh
LT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgSW5z
cGVjdG9yTmV0d29ya0FnZW50OjpzZWFyY2hJblJlcXVlc3QoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBj
YXNlU2Vuc2l0aXZlLCBib29sIGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpB
cnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mIHJl
c3VsdHMpCit7CisgICAgTmV0d29ya1Jlc291cmNlc0RhdGE6OlJlc291cmNlRGF0YSBjb25zdCog
cmVzb3VyY2VEYXRhID0gbV9yZXNvdXJjZXNEYXRhLT5kYXRhKHJlcXVlc3RJZCk7CisgICAgaWYg
KCFyZXNvdXJjZURhdGEpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIk5v
IHJlc291cmNlIHdpdGggZ2l2ZW4gaWRlbnRpZmllciBmb3VuZCIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKCFyZXNvdXJjZURhdGEtPmhhc0NvbnRlbnQoKSkgeworICAgICAg
ICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiTm8gcmVzb3VyY2UgY29udGVudCIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVzdWx0cyA9IENvbnRlbnRTZWFyY2hVdGlsaXRp
ZXM6OnNlYXJjaEluVGV4dEJ5TGluZXMocmVzb3VyY2VEYXRhLT5jb250ZW50KCksIHF1ZXJ5LCBj
YXNlU2Vuc2l0aXZlLCBpc1JlZ2V4KTsKK30KKwogdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6
Om1haW5GcmFtZU5hdmlnYXRlZChEb2N1bWVudExvYWRlciYgbG9hZGVyKQogewogICAgIGlmICht
X2NhY2hlRGlzYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TmV0d29ya0FnZW50LmgKaW5kZXggZWIzMDc5Ni4uNTE3MzE1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaApAQCAtMzcsNiArMzcsNyBA
QAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KyNpbmNsdWRlIDx5YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwpAQCAtMTAwLDYgKzEwMSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEluaXRpYWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogICAgIHZvaWQgZGlkU2NoZWR1bGVTdHls
ZVJlY2FsY3VsYXRpb24oRG9jdW1lbnQmKTsKIAorICAgIHZvaWQgc2VhcmNoT3RoZXJSZXF1ZXN0
cyhjb25zdCBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uJiwgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OlNlYXJjaFJlc3VsdD4+
Jik7CisgICAgdm9pZCBzZWFyY2hJblJlcXVlc3QoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29s
IGlzUmVnZXgsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlBy
b3RvY29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mKTsKKwogICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpJbml0aWF0b3I+IGJ1aWxkSW5pdGlhdG9yT2JqZWN0
KERvY3VtZW50Kik7CiAKICAgICAvLyBDYWxsZWQgZnJvbSBmcm9udGVuZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNjM3OWVmYS4u
ZWZmNjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50Lmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yTmV0d29ya0FnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
T3ZlcmxheS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCkBAIC0xMTUsNyArMTE2LDEwIEBAIHN0YXRpYyBib29s
IHByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcihDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3Vy
Y2UsIGJvb2wqIGhhCiBzdGF0aWMgYm9vbCBoYXNUZXh0Q29udGVudChDYWNoZWRSZXNvdXJjZSog
Y2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUg
dHlwZSA9IEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlKCpjYWNoZWRSZXNv
dXJjZSk7Ci0gICAgcmV0dXJuIHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpEb2N1bWVudFJl
c291cmNlIHx8IHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpTdHlsZXNoZWV0UmVzb3VyY2Ug
fHwgdHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6OlNjcmlwdFJlc291cmNlIHx8IHR5cGUgPT0g
SW5zcGVjdG9yUGFnZUFnZW50OjpYSFJSZXNvdXJjZTsKKyAgICByZXR1cm4gdHlwZSA9PSBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OkRvY3VtZW50UmVzb3VyY2UKKyAgICAgICAgfHwgdHlwZSA9PSBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OlN0eWxlc2hlZXRSZXNvdXJjZQorICAgICAgICB8fCB0eXBlID09IElu
c3BlY3RvclBhZ2VBZ2VudDo6U2NyaXB0UmVzb3VyY2UKKyAgICAgICAgfHwgdHlwZSA9PSBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OlhIUlJlc291cmNlOwogfQogCiBzdGF0aWMgUmVmUHRyPFRleHRSZXNv
dXJjZURlY29kZXI+IGNyZWF0ZVhIUlRleHREZWNvZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSkKQEAgLTU2NiwxOCArNTcwLDI1IEBAIHN0
YXRpYyBib29sIHRleHRDb250ZW50Rm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFJlc291cmNlLCBTdHJpbmcqCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0
IGJvb2wqIGNvbnN0IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogY29uc3Qgb3B0
aW9uYWxJc1JlZ2V4LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9y
OjpQcm90b2NvbDo6R2VuZXJpY1R5cGVzOjpTZWFyY2hNYXRjaD4+JiByZXN1bHRzKQordm9pZCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaEluUmVzb3VyY2UoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmIHF1ZXJ5LCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0
IGJvb2wqIGNvbnN0IG9wdGlvbmFsSXNSZWdleCwgY29uc3QgU3RyaW5nKiBvcHRpb25hbFJlcXVl
c3RJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkdlbmVyaWNUeXBlczo6U2VhcmNoTWF0Y2g+PiYgcmVzdWx0cykKIHsKICAgICByZXN1bHRz
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6R2VuZXJp
Y1R5cGVzOjpTZWFyY2hNYXRjaD46OmNyZWF0ZSgpOwogCiAgICAgYm9vbCBpc1JlZ2V4ID0gb3B0
aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFsSXNSZWdleCA6IGZhbHNlOwogICAgIGJvb2wgY2FzZVNl
bnNpdGl2ZSA9IG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSA/ICpvcHRpb25hbENhc2VTZW5zaXRpdmUg
OiBmYWxzZTsKIAotICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lRm9ySWQoZnJhbWVJZCk7CisgICAg
aWYgKG9wdGlvbmFsUmVxdWVzdElkKSB7CisgICAgICAgIGlmIChJbnNwZWN0b3JOZXR3b3JrQWdl
bnQqIG5ldHdvcmtBZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JOZXR3b3Jr
QWdlbnQoKSkgeworICAgICAgICAgICAgbmV0d29ya0FnZW50LT5zZWFyY2hJblJlcXVlc3QoZXJy
b3JTdHJpbmcsICpvcHRpb25hbFJlcXVlc3RJZCwgcXVlcnksIGNhc2VTZW5zaXRpdmUsIGlzUmVn
ZXgsIHJlc3VsdHMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisg
ICAgRnJhbWUqIGZyYW1lID0gYXNzZXJ0RnJhbWUoZXJyb3JTdHJpbmcsIGZyYW1lSWQpOwogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIgPSBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBEb2N1bWVudExvYWRl
ciogbG9hZGVyID0gYXNzZXJ0RG9jdW1lbnRMb2FkZXIoZXJyb3JTdHJpbmcsIGZyYW1lKTsKICAg
ICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC02MzQsNiArNjQ1LDkgQEAgdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb24KICAgICAgICAgICAgICAgICByZXN1bHQtPmFkZEl0ZW0oYnVp
bGRPYmplY3RGb3JTZWFyY2hSZXN1bHQoZnJhbWVJZChmcmFtZSksIGZyYW1lLT5kb2N1bWVudCgp
LT51cmwoKSwgbWF0Y2hlc0NvdW50KSk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAoSW5z
cGVjdG9yTmV0d29ya0FnZW50KiBuZXR3b3JrQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yTmV0d29ya0FnZW50KCkpCisgICAgICAgIG5ldHdvcmtBZ2VudC0+c2VhcmNoT3Ro
ZXJSZXF1ZXN0cyhyZWdleCwgcmVzdWx0KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OnNldERvY3VtZW50Q29udGVudChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiBodG1sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDc2ZjgzNTguLmFhMjZhZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEwMiw3ICsx
MDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2
b2lkIGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpQYWdlOjpGcmFtZVJlc291cmNlVHJlZT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGdldFJl
c291cmNlQ29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3Qg
U3RyaW5nJiB1cmwsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZWFyY2hJblJlc291cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3Qg
Ym9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgs
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpH
ZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlYXJjaElu
UmVzb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sKiBvcHRpb25hbENhc2VTZW5z
aXRpdmUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCwgY29uc3QgU3RyaW5nKiBvcHRpb25h
bFJlcXVlc3RJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkdlbmVyaWNUeXBlczo6U2VhcmNoTWF0Y2g+PiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBi
b29sKiBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBpc1JlZ2V4LCBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0
Pj4mKSBvdmVycmlkZTsKICAgICB2b2lkIHNldERvY3VtZW50Q29udGVudChFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiBodG1sKSBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFNob3dQYWludFJlY3RzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG93KSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2Vz
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNlc0RhdGEu
Y3BwCmluZGV4IDM5ZDM1MzUuLjVjODkzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcApAQCAtMjgzLDYgKzI4MywxMyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpjbGVhcihjb25zdCBTdHJpbmcmIHByZXNlcnZlZExvYWRl
cklkKQogICAgIG1fcmVxdWVzdElkVG9SZXNvdXJjZURhdGFNYXAuc3dhcChwcmVzZXJ2ZWRNYXAp
OwogfQogCitWZWN0b3I8TmV0d29ya1Jlc291cmNlc0RhdGE6OlJlc291cmNlRGF0YSo+IE5ldHdv
cmtSZXNvdXJjZXNEYXRhOjpyZXNvdXJjZXMoKQoreworICAgIFZlY3RvcjxOZXR3b3JrUmVzb3Vy
Y2VzRGF0YTo6UmVzb3VyY2VEYXRhKj4gcmVzb3VyY2VzOworICAgIGNvcHlWYWx1ZXNUb1ZlY3Rv
cihtX3JlcXVlc3RJZFRvUmVzb3VyY2VEYXRhTWFwLCByZXNvdXJjZXMpOworICAgIHJldHVybiBy
ZXNvdXJjZXM7Cit9CisKIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpSZXNvdXJjZURhdGEqIE5ldHdv
cmtSZXNvdXJjZXNEYXRhOjpyZXNvdXJjZURhdGFGb3JSZXF1ZXN0SWQoY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQpCiB7CiAgICAgaWYgKHJlcXVlc3RJZC5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmgKaW5kZXggNDlkZmJhMy4uMjli
MmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJj
ZXNEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmgKQEAgLTEyNyw2ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VEYXRhIGNvbnN0
KiBkYXRhKGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKTsKICAgICBWZWN0b3I8U3RyaW5nPiByZW1v
dmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgY2xlYXIoY29uc3Qg
U3RyaW5nJiBwcmVzZXJ2ZWRMb2FkZXJJZCA9IFN0cmluZygpKTsKKyAgICBWZWN0b3I8UmVzb3Vy
Y2VEYXRhKj4gcmVzb3VyY2VzKCk7CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VEYXRhKiByZXNv
dXJjZURhdGFGb3JSZXF1ZXN0SWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKaW5kZXggZDI4MDg1MS4uNDg4MjgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTYtMDQtMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBYSFJzIGFuZCBXZWIgV29y
a2VyIHNjcmlwdHMgYXJlIG5vdCBzZWFyY2hhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyMTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0
NjQzNTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2VhcmNoU2lkZWJhclBhbmVsLnByb3RvdHlwZS5wZXJmb3JtU2VhcmNoLnJl
c291cmNlQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFNpZGViYXJQYW5l
bC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5yZXNvdXJjZXNDYWxsYmFjayk6CisgICAgICAgIENh
cnJ5IGZvcndhcmQgdGhlIHJlcXVlc3RJZCBwcm9wZXJ0eSBpZiBpdCBpcyBhdmFpbGFibGUuCisK
KzIwMTYtMDQtMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAg
ICAgICBKU0NvbnRleHQgSW5zcGVjdG9yOiBGaXggYXNzZXJ0cyBhbmQgdW5jYXVnaHQgZXhjZXB0
aW9uIHNob3dpbmcgVGltZWxpbmUgVGFiCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTY0MTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzCmlu
ZGV4IGJkMDVmZDUuLmFjZWIxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hTaWRlYmFyUGFuZWwuanMKQEAg
LTEyNCwxNCArMTI0LDE0IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFz
cyBTZWFyY2hTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgICAgICBp
ZiAoZXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBmdW5jdGlv
biByZXNvdXJjZUNhbGxiYWNrKHVybCwgZXJyb3IsIHJlc291cmNlTWF0Y2hlcykKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHJlc291cmNlQ2FsbGJhY2soZnJhbWVJZCwgdXJsLCBlcnJvciwgcmVzb3Vy
Y2VNYXRjaGVzKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHVwZGF0ZUVtcHR5Q29u
dGVudFBsYWNlaG9sZGVyU29vbi5jYWxsKHRoaXMpOwogCiAgICAgICAgICAgICAgICAgaWYgKGVy
cm9yIHx8ICFyZXNvdXJjZU1hdGNoZXMgfHwgIXJlc291cmNlTWF0Y2hlcy5sZW5ndGgpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIHZhciBmcmFtZSA9IFdl
Ykluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5mcmFtZUZvcklkZW50aWZpZXIoc2VhcmNo
UmVzdWx0LmZyYW1lSWQpOworICAgICAgICAgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rv
ci5mcmFtZVJlc291cmNlTWFuYWdlci5mcmFtZUZvcklkZW50aWZpZXIoZnJhbWVJZCk7CiAgICAg
ICAgICAgICAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC0xNjAsNyArMTYwLDggQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFNpZGViYXJQYW5lbCA9IGNsYXNz
IFNlYXJjaFNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlY3Rvci4KICAgICAgICAgICAgICAg
ICBpZiAoIXNlYXJjaFJlc3VsdC51cmwgfHwgIXNlYXJjaFJlc3VsdC5mcmFtZUlkKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgIFBhZ2VBZ2VudC5zZWFy
Y2hJblJlc291cmNlKHNlYXJjaFJlc3VsdC5mcmFtZUlkLCBzZWFyY2hSZXN1bHQudXJsLCBzZWFy
Y2hRdWVyeSwgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCByZXNvdXJjZUNhbGxiYWNrLmJpbmQo
dGhpcywgc2VhcmNoUmVzdWx0LnVybCkpOworICAgICAgICAgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyA5KTogUGFnZS5zZWFyY2hJblJlc291cmNlcyBkaWQgbm90IGhhdmUgdGhlIG9wdGlv
bmFsIHJlcXVlc3RJZCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgUGFnZUFnZW50LnNlYXJj
aEluUmVzb3VyY2Uoc2VhcmNoUmVzdWx0LmZyYW1lSWQsIHNlYXJjaFJlc3VsdC51cmwsIHNlYXJj
aFF1ZXJ5LCBpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIHNlYXJjaFJlc3VsdC5yZXF1ZXN0SWQs
IHJlc291cmNlQ2FsbGJhY2suYmluZCh0aGlzLCBzZWFyY2hSZXN1bHQuZnJhbWVJZCwgc2VhcmNo
UmVzdWx0LnVybCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>