<?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>156021</bug_id>
          
          <creation_ts>2016-03-30 04:59:54 -0700</creation_ts>
          <short_desc>Web Inspector: sourceMappingURL not used when sourceURL is set</short_desc>
          <delta_ts>2016-04-15 12:01:32 -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>Mac</rep_platform>
          <op_sys>OS X 10.11</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>eelco</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>1179048</commentid>
    <comment_count>0</comment_count>
      <attachid>275193</attachid>
    <who name="">eelco</who>
    <bug_when>2016-03-30 04:59:54 -0700</bug_when>
    <thetext>Created attachment 275193
Example to reproduce the bug.

If both `sourceURL` and `sourceMappingURL` are set in a script, the mapping is not used.

To reproduce:
- Unzip the attached project.
- Host it by executing &apos;python -m SimpleHTTPServer 1234&apos;
- Go to http://0.0.0.0:1234
- Open the Web Inspector Console (option-cmd-C)
- Look at the first error

Observed:
- The error is reported as originating from app.js:3

Expected:
- The error is reported as originating from app.coffee:1

Notes:
While adding `sourceURL` in this case is not necessary (the script was not generated), it should also not break the source mapping.  Removing the `sourceURL` from `app.js` will lead to the expected behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179049</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-30 05:00:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/25438417&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183621</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-13 20:10:36 -0700</bug_when>
    <thetext>Wow, thanks for the great reduction!

This was actually originally fixed in WebKit but got lost when we changed frontends right before this change landed, see bug 107939. In this case, we have a non-absolute sourceURL (&quot;app.js&quot; instead of something like &quot;http://example.com/js/app.js&quot;) so we don&apos;t actually resolve the correct URL to the source map resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183624</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-13 20:46:36 -0700</bug_when>
    <thetext>Hmm, so fixing this first issue gets us to download the source map, but exposes other problems.

The way WebKit&apos;s Web Inspector deals with resources is it prefers a Resource over a Script whenever possible. It relates Scripts to Resources based on their URL. However, the &quot;sourceURL&quot; in this case overrides the actual resource URL to this resource, and so this Script never gets associated with the Resource.

So the Resources Sidebar ends up with:

    Scripts
        app.js (this is the Resource)

    Extra Scripts
        app.js (this is the Script)
            app.coffee

Had they been correlated correctly we would expect to see just the Resource:

    Scripts
        app.js (this is the Resource, Script associated)
            app.coffee

Then when the error comes in, we try to find SourceCodeLocations for that, and prefer a Resource over a Script. Currently the Resource doesn&apos;t have the SourceMap associated with it, so we still show the Resource source code location &quot;app.js:3&quot;.

---

On a related note, we have always had this FIXME in Script.js that relating the Script to the Resource by just &quot;URL&quot; is not good enough. To really relate the Script to the correct Resource you have to know at least know the Frame it came from as well to select the correct one.

    // FIXME: We should be able to associate a Script with a Resource through identifiers,
    // we shouldn&apos;t need to lookup by URL, which is not safe with frames, where there might
    // be multiple resources with the same URL.
    // &lt;rdar://problem/13373951&gt; Scripts should be able to associate directly with a Resource

So while we can fix the very basic problem that the SourceMap doesn&apos;t get downloaded (part of this and bug 156022), addressing the other more systemic issue will take more thought and move us in the right direction. Note this will probably also be needed for bug 150010 as well.

I think now is the time to either:

  1. Figure out a proper way to relate a Script to its Resource
  2. Move the frontend off of requiring this hard relationship to work properly

I&apos;m more for (1) because I think having that relationship is important (the Type Profiler for example requires it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183625</commentid>
    <comment_count>4</comment_count>
      <attachid>276371</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-13 20:47:23 -0700</bug_when>
    <thetext>Created attachment 276371
[PATCH] Work In Progress - Better BaseURL for resolving Source Mapping URL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183950</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-14 16:48:24 -0700</bug_when>
    <thetext>By providing both the resource URL and sourceURL separately, I get this case working as expected. However, since I&apos;m already changing Debugger.sourceParsed in a non-backwards compatible way, I want to see if I can go a step further and provide the frameIdentifier as well for the script.

Maybe I should do that in a follow-up patch though, since that will likely mean a bunch of tests orthogonal to this specific issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184012</commentid>
    <comment_count>6</comment_count>
      <attachid>276463</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-14 23:05:48 -0700</bug_when>
    <thetext>Created attachment 276463
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184140</commentid>
    <comment_count>7</comment_count>
      <attachid>276463</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-04-15 11:10:18 -0700</bug_when>
    <thetext>Comment on attachment 276463
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Protocol/InspectorBackend.js:429
&gt; +    hasEventParameter(eventName, eventParameterName)

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184151</commentid>
    <comment_count>8</comment_count>
      <attachid>276463</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-15 12:01:29 -0700</bug_when>
    <thetext>Comment on attachment 276463
[PATCH] Proposed Fix

Clearing flags on attachment: 276463

Committed r199602: &lt;http://trac.webkit.org/changeset/199602&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184152</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-15 12:01:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>275193</attachid>
            <date>2016-03-30 04:59:54 -0700</date>
            <delta_ts>2016-03-30 04:59:54 -0700</delta_ts>
            <desc>Example to reproduce the bug.</desc>
            <filename>example.zip</filename>
            <type>application/zip</type>
            <size>1303</size>
            <attacher>eelco</attacher>
            
              <data encoding="base64">UEsDBBQACAAIAIdjfkgAAAAAAAAAAAAAAAAKABAAYXBwLmNvZmZlZVVYDAD2vvtWPar7VvUBFAAr
ySjKL1dwLSrKL1JQcvL391UCAFBLBwi6FPNcFAAAABIAAABQSwMECgAAAAAAZm9+SAAAAAAAAAAA
AAAAAAkAEABfX01BQ09TWC9VWAwAj7/7Vo+/+1b1ARQAUEsDBBQACAAIAIdjfkgAAAAAAAAAAAAA
AAAVABAAX19NQUNPU1gvLl9hcHAuY29mZmVlVVgMAPa++1Y9qvtW9QEUAGNgFWNnYGJg8E1MVvAP
VohQgAKQGAMnEBsBcSUQg/irGYgCjiEhQVAmSMccIOZHU8KIEBdPzs/VSywoyEnVC0mtKHHNS85P
ycxLB0qWlqTpWlgbGpsYGZpbWpgAAFBLBwhwGo3AXQAAAKsAAABQSwMEFAAIAAgAY2R+SAAAAAAA
AAAAAAAAAAYAEABhcHAuanNVWAwAi777Vtmr+1b1ARQA09dXcE/NSy1KLElNUUiqVHDOT0tLTQ1O
LsosKFEw1DM00DPg0kgrzUsuyczP09BUqOZSUCjJKMovV3AtKsov0lBy8vf3VdK05uKq1dRLTszJ
0SjJyCwG8fX1lRWK80uLklN9EwsKMvPSQ4N8bIEsvaxivdzEAiR5hAQXAFBLBwjiSvKbfAAAAI8A
AABQSwMEFAAIAAgAlWN+SAAAAAAAAAAAAAAAAAoAEABhcHAuanMubWFwVVgMAEW8+1ZaqvtW9QEU
AKvmUlBQKkstKs7Mz1OyUjDWAfHTMnNSgRylxIICvaxiJbBYcX5pUXJqUH5+CUgGWawYKBAN5CpA
NCTnp6WlpioBBWLBivIScyFKINxcoJrMvHSQiJK1IxCACZ1AR0dfHW8QyxnE8nV09ANJ+Clx1QIA
UEsHCEJYl6hxAAAAowAAAFBLAwQUAAgACACQY35IAAAAAAAAAAAAAAAACgAQAGluZGV4Lmh0bWxV
WAwAi777Vk+q+1b1ARQAs1F08XcOiQxwVcgoyc2x47KBUJw2GamJKUCa0yY3tSRRITkjsag4tcRW
qbQkTddCCSQBkitOLsosKFEoLkq2VUosKNDLKlays9GHiIIM0YeaYpOUn1IJFoAwgBJgawBQSwcI
hD6n8F8AAAB+AAAAUEsBAhUDFAAIAAgAh2N+SLoU81wUAAAAEgAAAAoADAAAAAAAAAAAQKSBAAAA
AGFwcC5jb2ZmZWVVWAgA9r77Vj2q+1ZQSwECFQMKAAAAAABmb35IAAAAAAAAAAAAAAAACQAMAAAA
AAAAAABA/UFcAAAAX19NQUNPU1gvVVgIAI+/+1aPv/tWUEsBAhUDFAAIAAgAh2N+SHAajcBdAAAA
qwAAABUADAAAAAAAAAAAQKSBkwAAAF9fTUFDT1NYLy5fYXBwLmNvZmZlZVVYCAD2vvtWPar7VlBL
AQIVAxQACAAIAGNkfkjiSvKbfAAAAI8AAAAGAAwAAAAAAAAAAECkgUMBAABhcHAuanNVWAgAi777
Vtmr+1ZQSwECFQMUAAgACACVY35IQliXqHEAAACjAAAACgAMAAAAAAAAAABApIEDAgAAYXBwLmpz
Lm1hcFVYCABFvPtWWqr7VlBLAQIVAxQACAAIAJBjfkiEPqfwXwAAAH4AAAAKAAwAAAAAAAAAAECk
gbwCAABpbmRleC5odG1sVVgIAIu++1ZPqvtWUEsFBgAAAAAGAAYAngEAAGMDAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276371</attachid>
            <date>2016-04-13 20:47:23 -0700</date>
            <delta_ts>2016-04-14 23:05:48 -0700</delta_ts>
            <desc>[PATCH] Work In Progress - Better BaseURL for resolving Source Mapping URL</desc>
            <filename>part-1.patch</filename>
            <type>text/plain</type>
            <size>931</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9Tb3VyY2VNYXBNYW5hZ2VyLmpzCmluZGV4IDIwZjkwNWUuLmY0YzBi
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvU291cmNlTWFwTWFuYWdlci5qcwpAQCAtNDQsNiArNDQs
MTEgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcE1hbmFnZXIgPSBjbGFzcyBTb3VyY2VNYXBNYW5h
Z2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamUKIAogICAgIGRvd25sb2FkU291cmNlTWFwKHNv
dXJjZU1hcFVSTCwgYmFzZVVSTCwgb3JpZ2luYWxTb3VyY2VDb2RlKQogICAgIHsKKyAgICAgICAg
Ly8gVGhlIGJhc2VVUkwgY291bGQgaGF2ZSBjb21lIGZyb20gYSAiLy8jIHNvdXJjZVVSTCIuIEF0
dGVtcHQgdG8gZ2V0IGEKKyAgICAgICAgLy8gcmVhc29uYWJsZSBhYnNvbHV0ZSBVUkwgZm9yIHRo
ZSBiYXNlIGJ5IHVzaW5nIHRoZSBtYWluIHJlc291cmNlJ3MgVVJMLgorICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZSkKKyAgICAgICAgICAgIGJh
c2VVUkwgPSBhYnNvbHV0ZVVSTChXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFp
bkZyYW1lLnVybCwgYmFzZVVSTCk7CisKICAgICAgICAgc291cmNlTWFwVVJMID0gYWJzb2x1dGVV
Ukwoc291cmNlTWFwVVJMLCBiYXNlVVJMKTsKICAgICAgICAgaWYgKCFzb3VyY2VNYXBVUkwpCiAg
ICAgICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276463</attachid>
            <date>2016-04-14 23:05:48 -0700</date>
            <delta_ts>2016-04-15 12:01:29 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>source-map-2.patch</filename>
            <type>text/plain</type>
            <size>37494</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNDVmOWU3Li5hMjRiODY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTYtMDQt
MTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBzb3VyY2VNYXBwaW5nVVJMIG5vdCB1c2VkIHdoZW4gc291cmNlVVJMIGlzIHNl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDIx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTQzODQxNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRQ
YXJzZWQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoLXNjcmlwdHMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNv
dXJjZVVSTC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkxzLmh0
bWw6CisgICAgICAgIFVwZGF0ZSB0ZXN0cyB0aGF0IG5lZWQgdG8gaGFuZGxlIHNvdXJjZVVSTCBz
ZXBhcmF0ZWx5LgorICAgICAgICAKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvcmVzb3VyY2Vz
L3JlbGF0aW9uc2hpcC1uYW1lZC5qczogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL21vZGVs
L3Jlc291cmNlcy9yZWxhdGlvbnNoaXAtbm9ybWFsLmpzOiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvbW9kZWwvc2NyaXB0LXJlc291cmNlLXJlbGF0aW9uc2hpcC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9zY3JpcHQtcmVzb3VyY2UtcmVsYXRpb25z
aGlwLmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0cyBmb3IgU2NyaXB0IGFuZCBSZXNvdXJjZSBy
ZWxhdGlvbnNoaXBzLgorCisyMDE2LTA0LTE0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ2xlYW51cCBpbnNwZWN0b3IvZGVi
dWdnZXIgdGVzdHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NjYxOQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0UGFyc2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
UGFyc2VkLmh0bWwKaW5kZXggZmY0MzhiNi4uYWYyOWQ3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdFBhcnNlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRQYXJzZWQuaHRtbApAQCAtNDYsMTUgKzQ2LDE1IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogICAgIGZ1bmN0aW9uIGlzRXZhbFNjcmlwdChwYXJh
bXMpIHsKLSAgICAgICAgcmV0dXJuIHBhcmFtcy5oYXNTb3VyY2VVUkwgJiYgcGFyYW1zLnVybCA9
PT0gImV2YWwuanMiOworICAgICAgICByZXR1cm4gcGFyYW1zLnNvdXJjZVVSTCA9PT0gImV2YWwu
anMiOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGlzSW5qZWN0ZWRTY3JpcHRTb3VyY2VTY3JpcHQo
cGFyYW1zKSB7Ci0gICAgICAgIHJldHVybiBwYXJhbXMuaGFzU291cmNlVVJMICYmIHBhcmFtcy51
cmwgPT09ICJfX1dlYkluc3BlY3RvckluamVjdGVkU2NyaXB0X18iOworICAgICAgICByZXR1cm4g
cGFyYW1zLnNvdXJjZVVSTCA9PT0gIl9fV2ViSW5zcGVjdG9ySW5qZWN0ZWRTY3JpcHRfXyI7CiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gaXNDb21tYW5kTGluZUFQSVNvdXJjZVNjcmlwdChwYXJhbXMp
IHsKLSAgICAgICAgcmV0dXJuIHBhcmFtcy5oYXNTb3VyY2VVUkwgJiYgcGFyYW1zLnVybCA9PT0g
Il9fV2ViSW5zcGVjdG9yQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2VfXyI7CisgICAgICAgIHJl
dHVybiBwYXJhbXMuc291cmNlVVJMID09PSAiX19XZWJJbnNwZWN0b3JDb21tYW5kTGluZUFQSU1v
ZHVsZVNvdXJjZV9fIjsKICAgICB9CiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoLXNjcmlwdHMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWFyY2gtc2NyaXB0cy5odG1sCmluZGV4
IDQ5YWQ4NGYuLjkzZDM5NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zZWFyY2gtc2NyaXB0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zZWFyY2gtc2NyaXB0cy5odG1sCkBAIC0yNywxMiArMjcsMTIgQEAgZnVuY3Rpb24gdGVz
dCgpCiAKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24o
ZXZlbnQpIHsKICAgICAgICAgdmFyIHNjcmlwdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAg
ICBpZiAoIS9MYXlvdXRUZXN0cy8udGVzdChzY3JpcHQudXJsKSAmJiAhL2V2YWxcZFwuanMvLnRl
c3Qoc2NyaXB0LnVybCkpCisgICAgICAgIGlmICghL0xheW91dFRlc3RzLy50ZXN0KHNjcmlwdC51
cmwpICYmICEvZXZhbFxkXC5qcy8udGVzdChzY3JpcHQuc291cmNlVVJMKSkKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBEZWJ1Z2dlckFnZW50LnNlYXJjaEluQ29udGVudChzY3JpcHQu
aWQsICJTRUFSQ0hURVNUIiwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbihlcnJvciwgcmVzdWx0cykg
ewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlNDUklQVDogIiArIHNhbml0aXplU2NyaXB0VVJMKHNjcmlwdC51cmwpKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTQ1JJUFQ6ICIgKyBzYW5pdGl6ZVNjcmlw
dFVSTChzY3JpcHQuc291cmNlVVJMIHx8IHNjcmlwdC51cmwpKTsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJSRVNVTFRTOiAiICsgcmVzdWx0cy5sZW5ndGgpOwogICAgICAgICAgICAg
Zm9yICh2YXIgcmVzdWx0IG9mIHJlc3VsdHMpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiICBMSU5FOiAiICsgcmVzdWx0LmxpbmVOdW1iZXIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwt
c291cmNlVVJMLmh0bWwKaW5kZXggNGMxZTNiOC4uZjdhOWVhZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJs
LXNvdXJjZVVSTC5odG1sCkBAIC0xMyw5ICsxMyw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAg
SW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewotICAgICAgICBpZiAoL3NvdXJjZVVSTC10
ZXN0XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgeworICAgICAgICBpZiAo
L3NvdXJjZVVSTC10ZXN0XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMuc291cmNlVVJM
KSkgewogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRm91bmQgc291cmNlVVJMLXRlc3Qu
anMiKTsKLSAgICAgICAgICAgIHZhciBwYXJhbXMgPSB7dXJsOiBtZXNzYWdlT2JqZWN0LnBhcmFt
cy51cmwsIGxpbmVOdW1iZXI6IDMsIGNvbHVtbk51bWJlcjogMH07CisgICAgICAgICAgICB2YXIg
cGFyYW1zID0ge3VybDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc291cmNlVVJMLCBsaW5lTnVtYmVy
OiAzLCBjb2x1bW5OdW1iZXI6IDB9OwogICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCIsIHBhcmFtcywgZnVuY3Rpb24o
cmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVj
a0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJSdW5uaW5nIHNvdXJjZVVSTEZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NvdXJjZVVSTHMuaHRtbAppbmRleCA3NGY2NDI2Li45ZTExZmViIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkxzLmh0bWwKQEAgLTM2
LDEyICszNiwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgSW5zcGVjdG9yUHJv
dG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgbmFtZWQgaW5zcGVjdG9y
IGludGVybmFsIHNjcmlwdHMuCi0gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QucGFy
YW1zLnVybC5zdGFydHNXaXRoKCJfX1dlYkluc3BlY3RvciIpKQorICAgICAgICAgICAgICAgIGlm
IChtZXNzYWdlT2JqZWN0LnBhcmFtcy5zb3VyY2VVUkwgJiYgbWVzc2FnZU9iamVjdC5wYXJhbXMu
c291cmNlVVJMLnN0YXJ0c1dpdGgoIl9fV2ViSW5zcGVjdG9yIikpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICAgICAgICAgIC8vIEhhcyBhIHNvdXJjZVVSTCwgbXVzdCBi
ZSBvbmUgb2YgdGhlIHZhbGlkIG9uZXMuCi0gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmpl
Y3QucGFyYW1zLmhhc1NvdXJjZVVSTCkgewotICAgICAgICAgICAgICAgICAgICBsZXQgc291cmNl
VVJMID0gbWVzc2FnZU9iamVjdC5wYXJhbXMudXJsOworICAgICAgICAgICAgICAgIGlmIChtZXNz
YWdlT2JqZWN0LnBhcmFtcy5zb3VyY2VVUkwpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHNv
dXJjZVVSTCA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNvdXJjZVVSTDsKICAgICAgICAgICAgICAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgRm91bmQgU2NyaXB0IHdpdGggc291cmNlVVJMICcke3Nv
dXJjZVVSTH0nYCk7CiAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5hc3NlcnQoc291
cmNlVVJMRXhwZWN0YXRpb25zWzBdID09PSBzb3VyY2VVUkwsICJEaWQgbm90IGV4cGVjdCB0byBz
ZWUgc291cmNlVVJMOiAiICsgc291cmNlVVJMKTsKICAgICAgICAgICAgICAgICAgICAgc291cmNl
VVJMRXhwZWN0YXRpb25zLnNoaWZ0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvbW9kZWwvcmVzb3VyY2VzL3JlbGF0aW9uc2hpcC1uYW1lZC5qcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9tb2RlbC9yZXNvdXJjZXMvcmVsYXRpb25zaGlwLW5hbWVkLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YThjNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVzb3VyY2VzL3JlbGF0aW9uc2hpcC1uYW1lZC5qcwpA
QCAtMCwwICsxLDUgQEAKKy8vIyBzb3VyY2VVUkw9Zm9vLmpzCisKK2Z1bmN0aW9uIGZvbygpIHsK
KyAgICByZXR1cm4gMTQyOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL3Jlc291cmNlcy9yZWxhdGlvbnNoaXAtbm9ybWFsLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL21vZGVsL3Jlc291cmNlcy9yZWxhdGlvbnNoaXAtbm9ybWFsLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYWZkZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVzb3VyY2VzL3JlbGF0aW9uc2hpcC1ub3JtYWwuanMKQEAg
LTAsMCArMSwzIEBACitmdW5jdGlvbiBmb28oKSB7CisgICAgcmV0dXJuIDQyOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3NjcmlwdC1yZXNvdXJjZS1yZWxhdGlv
bnNoaXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3NjcmlwdC1y
ZXNvdXJjZS1yZWxhdGlvbnNoaXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjllY2RhYzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvbW9kZWwvc2NyaXB0LXJlc291cmNlLXJlbGF0aW9uc2hpcC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzOCBAQAorV2ViSW5zcGVjdG9yLlNjcmlwdCBhbmQgV2ViSW5zcGVjdG9yLlJlc291
cmNlIHJlbGF0aW9uc2hpcC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFdlYkluc3BlY3Rv
ci5TY3JpcHQgYW5kIFdlYkluc3BlY3Rvci5SZXNvdXJjZSByZWxhdGlvbnNoaXAKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBTY3JpcHRXaXRoUmVzb3VyY2UKK1BBU1M6IFJlc291cmNlIHdhcyBhZGRl
ZC4KK1BBU1M6IFNjcmlwdCB3YXMgYWRkZWQuCitQQVNTOiBSZXNvdXJjZSBhbmQgU2NyaXB0IGhh
dmUgdGhlIHNhbWUgVVJMLgorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGJlIHJlbGF0ZWQgdG8gb25l
IHNjcmlwdC4KK1BBU1M6IFJlc291cmNlIHNob3VsZCBiZSByZWxhdGVkIHRvIHRoZSBuZXdseSBh
ZGRlZCBzY3JpcHQuCitQQVNTOiBTY3JpcHQgc2hvdWxkIGJlIHJlbGF0ZWQgdG8gdGhlIHJlc291
cmNlLgorUEFTUzogU2NyaXB0IHNob3VsZCBub3QgaGF2ZSBhIHNvdXJjZVVSTC4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IE5hbWVkU2NyaXB0V2l0aFJlc291cmNlCitQQVNTOiBSZXNvdXJjZSB3
YXMgYWRkZWQuCitQQVNTOiBTY3JpcHQgd2FzIGFkZGVkLgorUEFTUzogUmVzb3VyY2UgYW5kIFNj
cmlwdCBoYXZlIHRoZSBzYW1lIFVSTC4KK1BBU1M6IFJlc291cmNlIHNob3VsZCBiZSByZWxhdGVk
IHRvIG9uZSBzY3JpcHQuCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgYmUgcmVsYXRlZCB0byB0aGUg
bmV3bHkgYWRkZWQgc2NyaXB0LgorUEFTUzogU2NyaXB0IHNob3VsZCBiZSByZWxhdGVkIHRvIHRo
ZSByZXNvdXJjZS4KK1BBU1M6IFNjcmlwdCBzaG91bGQgaGF2ZSBhIHNvdXJjZVVSTC4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFNjcmlwdFdpdGhvdXRSZXNvdXJjZQorUEFTUzogU2NyaXB0IHdh
cyBhZGRlZC4KK1BBU1M6IFNjcmlwdCBzaG91bGQgbm90IGJlIGFzc29jaWF0ZWQgd2l0aCBhIFJl
c291cmNlLgorUEFTUzogU2NyaXB0IHNob3VsZCBoYXZlIGEgc291cmNlVVJMLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogRG9jdW1lbnRXaXRoSW5saW5lU2NyaXB0cworUEFTUzogTWFpbiBSZXNv
dXJjZSBzaG91bGQgaGF2ZSA0IHNjcmlwdHMuCitQQVNTOiBJbmxpbmUgc2NyaXB0IDEgZG9lcyBu
b3QgaGF2ZSBhIHNvdXJjZVVSTC4KK1BBU1M6IElubGluZSBzY3JpcHQgMiBoYXMgYSBzb3VyY2VV
UkwuCitQQVNTOiBJbmxpbmUgc2NyaXB0IDMgZG9lcyBub3QgaGF2ZSBhIHNvdXJjZVVSTC4KK1BB
U1M6IElubGluZSBzY3JpcHQgNCBkb2VzIG5vdCBoYXZlIGEgc291cmNlVVJMLgorUEFTUzogSW5s
aW5lIHNjcmlwdCAxIHNob3VsZCBoYXZlIGEgbG93IHN0YXJ0IGxpbmUuCitQQVNTOiBJbmxpbmUg
c2NyaXB0IDIgc2hvdWxkIGhhdmUgYSBsb3cgc3RhcnQgbGluZS4KK1BBU1M6IElubGluZSBzY3Jp
cHQgMyBzaG91bGQgaGF2ZSBhIGxvdyBzdGFydCBsaW5lLgorUEFTUzogSW5saW5lIHNjcmlwdCA0
IHNob3VsZCBoYXZlIGEgaGlnaCBzdGFydCBsaW5lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvbW9kZWwvc2NyaXB0LXJlc291cmNlLXJlbGF0aW9uc2hpcC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3NjcmlwdC1yZXNvdXJjZS1yZWxhdGlvbnNoaXAuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjEyODk4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3NjcmlwdC1yZXNvdXJjZS1yZWxh
dGlvbnNoaXAuaHRtbApAQCAtMCwwICsxLDE3MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PmZ1bmN0aW9uIGlubGluZVNj
cmlwdE9uZSgpIHsgcmV0dXJuIDE7IH08L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgZnVuY3Rpb24g
aW5saW5lU2NyaXB0VHdvKCkgeworICAgICAgcmV0dXJuIDI7CisgIH0KKyAgLy8jIHNvdXJjZVVS
TD1pbmxpbmUtc2NyaXB0LXR3by5qcworICA8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
cmlnZ2VyUmVzb3VyY2VXaXRoTm9ybWFsU2NyaXB0KCkgeworICAgIGxldCBzY3JpcHQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBzY3JpcHQuc3JjID0gInJlc291cmNl
cy9yZWxhdGlvbnNoaXAtbm9ybWFsLmpzIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KHNjcmlwdCk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJSZXNvdXJjZVdpdGhOYW1lZFNjcmlwdCgp
IHsKKyAgICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Cisg
ICAgc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvcmVsYXRpb25zaGlwLW5hbWVkLmpzIjsKKyAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJT
Y3JpcHRXaXRob3V0UmVzb3VyY2UoKSB7CisgICAgZXZhbCgiLy8jIHNvdXJjZVVSTD1zY3JpcHQt
b25seS5qc1xuMSsxIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiV2ViSW5zcGVjdG9yLlNjcmlwdCBhbmQg
V2ViSW5zcGVjdG9yLlJlc291cmNlIHJlbGF0aW9uc2hpcCIpOworCisgICAgSW5zcGVjdG9yVGVz
dC5kdW1wQWN0aXZpdHlUb1N5c3RlbUNvbnNvbGUgPSB0cnVlOworICAgIEluc3BlY3RvckJhY2tl
bmQuZHVtcEluc3BlY3RvclByb3RvY29sTWVzc2FnZXMgPSB0cnVlOworCisgICAgZnVuY3Rpb24g
dmFsaWRhdGVOb3JtYWxSZWxhdGlvbnNoaXAocmVzb3VyY2UsIHNjcmlwdCkgeworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UudXJsID09PSBzY3JpcHQudXJsLCAiUmVz
b3VyY2UgYW5kIFNjcmlwdCBoYXZlIHRoZSBzYW1lIFVSTC4iKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHJlc291cmNlLnNjcmlwdHMubGVuZ3RoID09PSAxLCAiUmVzb3VyY2Ug
c2hvdWxkIGJlIHJlbGF0ZWQgdG8gb25lIHNjcmlwdC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHJlc291cmNlLnNjcmlwdHNbMF0gPT09IHNjcmlwdCwgIlJlc291cmNlIHNo
b3VsZCBiZSByZWxhdGVkIHRvIHRoZSBuZXdseSBhZGRlZCBzY3JpcHQuIik7CisgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChzY3JpcHQucmVzb3VyY2UgPT09IHJlc291cmNlLCAiU2Ny
aXB0IHNob3VsZCBiZSByZWxhdGVkIHRvIHRoZSByZXNvdXJjZS4iKTsKKyAgICB9CisKKyAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJTY3JpcHRXaXRoUmVzb3VyY2UiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIk5vcm1hbCByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIHNjcmlw
dCBhbmQgYSByZXNvdXJjZS4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7
CisgICAgICAgICAgICBsZXQgc2NyaXB0ID0gbnVsbCwgcmVzb3VyY2UgPSBudWxsOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwg
c2NyaXB0TGlzdGVuZXIpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1lLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5SZXNvdXJjZVdhc0FkZGVk
LCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIlJlc291
cmNlIHdhcyBhZGRlZC4iKTsKKyAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGV2ZW50LmRhdGEu
cmVzb3VyY2U7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZnVu
Y3Rpb24gc2NyaXB0TGlzdGVuZXIoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWV2ZW50
LmRhdGEuc2NyaXB0LnVybCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiU2NyaXB0IHdhcyBhZGRlZC4iKTsKKyAgICAgICAg
ICAgICAgICBzY3JpcHQgPSBldmVudC5kYXRhLnNjcmlwdDsKKyAgICAgICAgICAgICAgICB2YWxp
ZGF0ZVJlbGF0aW9uc2hpcCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biB2YWxpZGF0ZVJlbGF0aW9uc2hpcCgpIHsKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZU5vcm1h
bFJlbGF0aW9uc2hpcChyZXNvdXJjZSwgc2NyaXB0KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoIXNjcmlwdC5zb3VyY2VVUkwsICJTY3JpcHQgc2hvdWxkIG5vdCBo
YXZlIGEgc291cmNlVVJMLiIpOworCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuU2NyaXB0QWRkZWQsIHNjcmlwdExpc3RlbmVyLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJSZXNvdXJjZVdpdGhOb3JtYWxTY3JpcHQoKSIpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJOYW1lZFNjcmlwdFdpdGhSZXNvdXJjZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTm9y
bWFsIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGEgbmFtZWQgc2NyaXB0IGFuZCBhIHJlc291cmNlLiIs
CisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGxldCBz
Y3JpcHQgPSBudWxsLCByZXNvdXJjZSA9IG51bGw7CisKKyAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBzY3JpcHRMaXN0ZW5lcik7CisgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuRnJhbWUuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZy
YW1lLkV2ZW50LlJlc291cmNlV2FzQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucGFzcygiUmVzb3VyY2Ugd2FzIGFkZGVkLiIpOworICAgICAgICAgICAg
ICAgIHJlc291cmNlID0gZXZlbnQuZGF0YS5yZXNvdXJjZTsKKyAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICBmdW5jdGlvbiBzY3JpcHRMaXN0ZW5lcihldmVudCkgeworICAgICAgICAgICAg
ICAgIGlmICghZXZlbnQuZGF0YS5zY3JpcHQudXJsKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJTY3JpcHQgd2FzIGFkZGVk
LiIpOworICAgICAgICAgICAgICAgIHNjcmlwdCA9IGV2ZW50LmRhdGEuc2NyaXB0OworICAgICAg
ICAgICAgICAgIHZhbGlkYXRlUmVsYXRpb25zaGlwKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlUmVsYXRpb25zaGlwKCkgeworICAgICAgICAgICAgICAg
IHZhbGlkYXRlTm9ybWFsUmVsYXRpb25zaGlwKHJlc291cmNlLCBzY3JpcHQpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzY3JpcHQuc291cmNlVVJMID09PSAiZm9v
LmpzIiwgIlNjcmlwdCBzaG91bGQgaGF2ZSBhIHNvdXJjZVVSTC4iKTsKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgc2NyaXB0TGlzdGVuZXIs
IG51bGwpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidHJpZ2dlclJlc291cmNlV2l0
aE5hbWVkU2NyaXB0KCkiKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiU2NyaXB0V2l0aG91dFJlc291cmNlIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJBIG5hbWVkIGV2YWwgZG9lcyBub3QgaGF2ZSBhIHJlc291cmNlLiIsCisg
ICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBzY3JpcHRMaXN0ZW5lcik7CisgICAgICAgICAg
ICBsZXQgcmVzb3VyY2VMaXN0ZW5lciA9IFdlYkluc3BlY3Rvci5GcmFtZS5zaW5nbGVGaXJlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuUmVzb3VyY2VXYXNBZGRlZCwgKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJSZXNvdXJjZSBz
aG91bGQgbm90IGJlIGFkZGVkLiIpOworICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNjcmlwdExpc3RlbmVyKGV2ZW50KSB7
CisgICAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnNjcmlwdC5zb3VyY2VVUkwpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cGFzcygiU2NyaXB0IHdhcyBhZGRlZC4iKTsKKyAgICAgICAgICAgICAgICBsZXQgc2NyaXB0ID0g
ZXZlbnQuZGF0YS5zY3JpcHQ7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoc2NyaXB0LnJlc291cmNlID09PSBudWxsLCAiU2NyaXB0IHNob3VsZCBub3QgYmUgYXNz
b2NpYXRlZCB3aXRoIGEgUmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHNjcmlwdC5zb3VyY2VVUkwgPT09ICJzY3JpcHQtb25seS5qcyIsICJTY3Jp
cHQgc2hvdWxkIGhhdmUgYSBzb3VyY2VVUkwuIik7CisKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuRnJhbWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQu
UmVzb3VyY2VXYXNBZGRlZCwgcmVzb3VyY2VMaXN0ZW5lciwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIHNjcmlwdExpc3RlbmVy
LCBudWxsKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJTY3JpcHRXaXRo
b3V0UmVzb3VyY2UoKSIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEb2N1bWVudFdpdGhJbmxpbmVTY3JpcHRzIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJBIGRvY3VtZW50IHJlc291cmNlIG1heSBiZSBhc3NvY2lhdGVkIHdp
dGggbXVsdGlwbGUgaW5saW5lIHNjcmlwdHMuIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgICAgICAgICAgbGV0IG1haW5SZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5m
cmFtZVJlc291cmNlTWFuYWdlci5tYWluRnJhbWUubWFpblJlc291cmNlOworICAgICAgICAgICAg
bGV0IHNjcmlwdHMgPSBtYWluUmVzb3VyY2Uuc2NyaXB0cy5zbGljZSgpLnNvcnQoKGEsIGIpID0+
IGEucmFuZ2Uuc3RhcnRMaW5lIC0gYi5yYW5nZS5zdGFydExpbmUpOworCisgICAgICAgICAgICAv
LyBTY3JpcHRzIGFyZToKKyAgICAgICAgICAgIC8vICAgMS4gPHNjcmlwdD4gd2l0aCBpbmxpbmVT
Y3JpcHRPbmUoKQorICAgICAgICAgICAgLy8gICAyLiA8c2NyaXB0PiB3aXRoIGlubGluZVNjcmlw
dFR3bygpCisgICAgICAgICAgICAvLyAgIDMuIFRoaXMgPHNjcmlwdD4gd2l0aCB0ZXN0KCkKKyAg
ICAgICAgICAgIC8vICAgNC4gVGhlIDxib2R5IG9ubG9hZD4gaW5saW5lIHNjcmlwdCBldmVudCBs
aXN0ZW5lcgorCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2NyaXB0cy5s
ZW5ndGggPT09IDQsICJNYWluIFJlc291cmNlIHNob3VsZCBoYXZlIDQgc2NyaXB0cy4iKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghc2NyaXB0c1swXS5zb3VyY2VVUkws
ICJJbmxpbmUgc2NyaXB0IDEgZG9lcyBub3QgaGF2ZSBhIHNvdXJjZVVSTC4iKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzY3JpcHRzWzFdLnNvdXJjZVVSTCA9PT0gImlu
bGluZS1zY3JpcHQtdHdvLmpzIiwgIklubGluZSBzY3JpcHQgMiBoYXMgYSBzb3VyY2VVUkwuIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIXNjcmlwdHNbMl0uc291cmNl
VVJMLCAiSW5saW5lIHNjcmlwdCAzIGRvZXMgbm90IGhhdmUgYSBzb3VyY2VVUkwuIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIXNjcmlwdHNbM10uc291cmNlVVJMLCAi
SW5saW5lIHNjcmlwdCA0IGRvZXMgbm90IGhhdmUgYSBzb3VyY2VVUkwuIik7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzY3JpcHRzWzBdLnJhbmdlLnN0YXJ0TGluZSA8
IDE1LCAiSW5saW5lIHNjcmlwdCAxIHNob3VsZCBoYXZlIGEgbG93IHN0YXJ0IGxpbmUuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2NyaXB0c1sxXS5yYW5nZS5zdGFy
dExpbmUgPCAxNSwgIklubGluZSBzY3JpcHQgMiBzaG91bGQgaGF2ZSBhIGxvdyBzdGFydCBsaW5l
LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHNjcmlwdHNbMl0ucmFu
Z2Uuc3RhcnRMaW5lIDwgMTUsICJJbmxpbmUgc2NyaXB0IDMgc2hvdWxkIGhhdmUgYSBsb3cgc3Rh
cnQgbGluZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzY3JpcHRz
WzNdLnJhbmdlLnN0YXJ0TGluZSA+IDEwMCwgIklubGluZSBzY3JpcHQgNCBzaG91bGQgaGF2ZSBh
IGhpZ2ggc3RhcnQgbGluZS4iKTsKKworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+V2ViSW5zcGVjdG9y
LlNjcmlwdCBhbmQgV2ViSW5zcGVjdG9yLlJlc291cmNlIHJlbGF0aW9uc2hpcC48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmOGE4ZmRiLi4xMDZiMjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOSBAQAogMjAxNi0wNC0xNCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHNvdXJjZU1hcHBpbmdVUkwgbm90IHVzZWQgd2hlbiBzb3VyY2VVUkwgaXMgc2V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMjEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1NDM4NDE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFuIHVwIERlYnVnZ2VyLnNvdXJjZVBhcnNlZCB0
byBzZXBhcmF0ZWx5IGluY2x1ZGU6CisKKyAgICAgICAgICAgIC0gdXJsICgicmVzb3VyY2UgVVJM
IiwgInNvdXJjZSB1cmwiIGluIEpTQyBBUElzKQorICAgICAgICAgICAgLSBzb3VyY2VVUkwgLSAv
LyMgc291cmNlVVJMIGRpcmVjdGl2ZQorCisgICAgICAgIEJ5IGFsd2F5cyBoYXZpbmcgdGhlIHJl
c291cmNlIFVSTCB0aGUgV2ViIEluc3BlY3RvciBmcm9udGVuZAorICAgICAgICBjYW4gYmV0dGVy
IG1hdGNoIHRoaXMgU2NyaXB0IHRvIGEgUmVzb3VyY2Ugb2YgdGhlIHNhbWUgVVJMLAorICAgICAg
ICBhbmQgZGVjaWRlIHRvIHVzZSB0aGUgc291cmNlVVJMIGlmIGl0IGlzIGF2YWlsYWJsZSB3aGVu
CisgICAgICAgIGFwcHJvcHJpYXRlLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0Rl
YnVnZ2VyLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
c2V0QnJlYWtwb2ludEJ5VXJsKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZGlkUGFyc2VTb3VyY2UpOgorICAgICAgICBTZW5kIHRoZSBuZXcgc291cmNlUGFy
c2VkIHBhcmFtZXRlcnMuCisKKzIwMTYtMDQtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDbGVhbnVwIGluc3BlY3Rvci9k
ZWJ1Z2dlciB0ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU2NjE5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggZGZj
OGE0Yi4uNWMzMWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTMy
MCw4ICszMjAsOCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRC
eVVybChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBsaQogCiAgICAgU2NyaXB0QnJlYWtw
b2ludCBicmVha3BvaW50KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBicmVh
a3BvaW50QWN0aW9ucywgYXV0b0NvbnRpbnVlLCBpZ25vcmVDb3VudCk7CiAgICAgZm9yIChTY3Jp
cHRzTWFwOjppdGVyYXRvciBpdCA9IG1fc2NyaXB0cy5iZWdpbigpOyBpdCAhPSBtX3NjcmlwdHMu
ZW5kKCk7ICsraXQpIHsKLSAgICAgICAgU3RyaW5nIHNjcmlwdFVSTCA9ICFpdC0+dmFsdWUuc291
cmNlVVJMLmlzRW1wdHkoKSA/IGl0LT52YWx1ZS5zb3VyY2VVUkwgOiBpdC0+dmFsdWUudXJsOwot
ICAgICAgICBpZiAoIW1hdGNoZXMoc2NyaXB0VVJMLCB1cmwsIGlzUmVnZXgpKQorICAgICAgICBT
dHJpbmcgc2NyaXB0VVJMRm9yQnJlYWtwb2ludHMgPSAhaXQtPnZhbHVlLnNvdXJjZVVSTC5pc0Vt
cHR5KCkgPyBpdC0+dmFsdWUuc291cmNlVVJMIDogaXQtPnZhbHVlLnVybDsKKyAgICAgICAgaWYg
KCFtYXRjaGVzKHNjcmlwdFVSTEZvckJyZWFrcG9pbnRzLCB1cmwsIGlzUmVnZXgpKQogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRl
YnVnZ2VyOjpMb2NhdGlvbj4gbG9jYXRpb24gPSByZXNvbHZlQnJlYWtwb2ludChicmVha3BvaW50
SWRlbnRpZmllciwgaXQtPmtleSwgYnJlYWtwb2ludCk7CkBAIC02MTMsMTggKzYxMywyMSBAQCBT
dHJpbmcgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0
IFNjcmlwdCYgc2NyaXB0KQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNl
U291cmNlKEpTQzo6U291cmNlSUQgc291cmNlSUQsIGNvbnN0IFNjcmlwdCYgc2NyaXB0KQogewor
ICAgIFN0cmluZyBzY3JpcHRJRFN0ciA9IFN0cmluZzo6bnVtYmVyKHNvdXJjZUlEKTsKICAgICBi
b29sIGhhc1NvdXJjZVVSTCA9ICFzY3JpcHQuc291cmNlVVJMLmlzRW1wdHkoKTsKLSAgICBTdHJp
bmcgc2NyaXB0VVJMID0gaGFzU291cmNlVVJMID8gc2NyaXB0LnNvdXJjZVVSTCA6IHNjcmlwdC51
cmw7Ci0gICAgYm9vbCogaGFzU291cmNlVVJMUGFyYW0gPSBoYXNTb3VyY2VVUkwgPyAmaGFzU291
cmNlVVJMIDogbnVsbHB0cjsKKyAgICBTdHJpbmcgc291cmNlVVJMID0gc2NyaXB0LnNvdXJjZVVS
TDsKICAgICBTdHJpbmcgc291cmNlTWFwcGluZ1VSTCA9IHNvdXJjZU1hcFVSTEZvclNjcmlwdChz
Y3JpcHQpOwotICAgIFN0cmluZyogc291cmNlTWFwVVJMUGFyYW0gPSBzb3VyY2VNYXBwaW5nVVJM
LmlzTnVsbCgpID8gbnVsbHB0ciA6ICZzb3VyY2VNYXBwaW5nVVJMOworCiAgICAgY29uc3QgYm9v
bCogaXNDb250ZW50U2NyaXB0ID0gc2NyaXB0LmlzQ29udGVudFNjcmlwdCA/ICZzY3JpcHQuaXND
b250ZW50U2NyaXB0IDogbnVsbHB0cjsKLSAgICBTdHJpbmcgc2NyaXB0SURTdHIgPSBTdHJpbmc6
Om51bWJlcihzb3VyY2VJRCk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnNjcmlwdFBhcnNl
ZChzY3JpcHRJRFN0ciwgc2NyaXB0VVJMLCBzY3JpcHQuc3RhcnRMaW5lLCBzY3JpcHQuc3RhcnRD
b2x1bW4sIHNjcmlwdC5lbmRMaW5lLCBzY3JpcHQuZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQs
IHNvdXJjZU1hcFVSTFBhcmFtLCBoYXNTb3VyY2VVUkxQYXJhbSk7CisgICAgU3RyaW5nKiBzb3Vy
Y2VVUkxQYXJhbSA9IGhhc1NvdXJjZVVSTCA/ICZzb3VyY2VVUkwgOiBudWxscHRyOworICAgIFN0
cmluZyogc291cmNlTWFwVVJMUGFyYW0gPSBzb3VyY2VNYXBwaW5nVVJMLmlzRW1wdHkoKSA/IG51
bGxwdHIgOiAmc291cmNlTWFwcGluZ1VSTDsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5z
Y3JpcHRQYXJzZWQoc2NyaXB0SURTdHIsIHNjcmlwdC51cmwsIHNjcmlwdC5zdGFydExpbmUsIHNj
cmlwdC5zdGFydENvbHVtbiwgc2NyaXB0LmVuZExpbmUsIHNjcmlwdC5lbmRDb2x1bW4sIGlzQ29u
dGVudFNjcmlwdCwgc291cmNlVVJMUGFyYW0sIHNvdXJjZU1hcFVSTFBhcmFtKTsKIAogICAgIG1f
c2NyaXB0cy5zZXQoc291cmNlSUQsIHNjcmlwdCk7CiAKLSAgICBpZiAoc2NyaXB0VVJMLmlzRW1w
dHkoKSkKKyAgICBTdHJpbmcgc2NyaXB0VVJMRm9yQnJlYWtwb2ludHMgPSBoYXNTb3VyY2VVUkwg
PyBzY3JpcHQuc291cmNlVVJMIDogc2NyaXB0LnVybDsKKyAgICBpZiAoc2NyaXB0VVJMRm9yQnJl
YWtwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8gaXQg
PSBtX2phdmFTY3JpcHRCcmVha3BvaW50cy5iZWdpbigpLCBlbmQgPSBtX2phdmFTY3JpcHRCcmVh
a3BvaW50cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBAIC02MzMsMTAgKzYzNiwxMCBAQCB2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKEpTQzo6U291cmNlSUQg
c291cmNlSUQsIGNvbnN0IFNjcmlwdAogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGJv
b2wgaXNSZWdleDsKLSAgICAgICAgYnJlYWtwb2ludE9iamVjdC0+Z2V0Qm9vbGVhbihBU0NJSUxp
dGVyYWwoImlzUmVnZXgiKSwgaXNSZWdleCk7CiAgICAgICAgIFN0cmluZyB1cmw7CisgICAgICAg
IGJyZWFrcG9pbnRPYmplY3QtPmdldEJvb2xlYW4oQVNDSUlMaXRlcmFsKCJpc1JlZ2V4IiksIGlz
UmVnZXgpOwogICAgICAgICBicmVha3BvaW50T2JqZWN0LT5nZXRTdHJpbmcoQVNDSUlMaXRlcmFs
KCJ1cmwiKSwgdXJsKTsKLSAgICAgICAgaWYgKCFtYXRjaGVzKHNjcmlwdFVSTCwgdXJsLCBpc1Jl
Z2V4KSkKKyAgICAgICAgaWYgKCFtYXRjaGVzKHNjcmlwdFVSTEZvckJyZWFrcG9pbnRzLCB1cmws
IGlzUmVnZXgpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgU2NyaXB0QnJlYWtw
b2ludCBicmVha3BvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCmluZGV4IDRmMWJkOTguLjY5MmYxZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVn
Z2VyLmpzb24KQEAgLTI3NSwxNCArMjc1LDE0IEBACiAgICAgICAgICAgICAibmFtZSI6ICJzY3Jp
cHRQYXJzZWQiLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzY3JpcHRJZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjog
IklkZW50aWZpZXIgb2YgdGhlIHNjcmlwdCBwYXJzZWQuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvciBu
YW1lIG9mIHRoZSBzY3JpcHQgcGFyc2VkIChpZiBhbnkpLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2Yg
dGhlIHNjcmlwdCBwYXJzZWQgKGlmIGFueSkuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic3RhcnRMaW5lIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG9m
ZnNldCBvZiB0aGUgc2NyaXB0IHdpdGhpbiB0aGUgcmVzb3VyY2Ugd2l0aCBnaXZlbiBVUkwgKGZv
ciBzY3JpcHQgdGFncykuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnRDb2x1
bW4iLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBvZmZzZXQgb2Yg
dGhlIHNjcmlwdCB3aXRoaW4gdGhlIHJlc291cmNlIHdpdGggZ2l2ZW4gVVJMLiIgfSwKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImVuZExpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2Ny
aXB0aW9uIjogIkxhc3QgbGluZSBvZiB0aGUgc2NyaXB0LiIgfSwKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImVuZENvbHVtbiIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAi
TGVuZ3RoIG9mIHRoZSBsYXN0IGxpbmUgb2YgdGhlIHNjcmlwdC4iIH0sCiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpc0NvbnRlbnRTY3JpcHQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkRldGVybWluZXMgd2hldGhlciB0aGlzIHNjcmlw
dCBpcyBhIHVzZXIgZXh0ZW5zaW9uIHNjcmlwdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzb3VyY2VNYXBVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVVJMIG9mIHNvdXJjZSBtYXAgYXNzb2NpYXRlZCB3aXRoIHNjcmlwdCAo
aWYgYW55KS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYXNTb3VyY2VVUkwiLCAi
dHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUs
IGlmIHRoaXMgc2NyaXB0IGhhcyBzb3VyY2VVUkwuIiB9CisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzb3VyY2VVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAic291cmNlVVJMIG5hbWUgb2YgdGhlIHNjcmlwdCAoaWYgYW55KS4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VNYXBVUkwiLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHNvdXJjZSBtYXAgYXNz
b2NpYXRlZCB3aXRoIHNjcmlwdCAoaWYgYW55KS4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiB2aXJ0dWFsIG1hY2hpbmUgcGFyc2VzIHNj
cmlwdC4gVGhpcyBldmVudCBpcyBhbHNvIGZpcmVkIGZvciBhbGwga25vd24gYW5kIHVuY29sbGVj
dGVkIHNjcmlwdHMgdXBvbiBlbmFibGluZyBkZWJ1Z2dlci4iCiAgICAgICAgIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwppbmRleCA5OTQwZGU2Li5kMzBiMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw3MCBAQAogMjAxNi0wNC0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNvdXJjZU1hcHBpbmdV
Ukwgbm90IHVzZWQgd2hlbiBzb3VyY2VVUkwgaXMgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI1NDM4NDE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFByZXZpb3VzbHkgRGVidWdnZXIuc291cmNlUGFyc2VkIG9ubHkgcHJvdmlkaW5nIHRoZSBz
b3VyY2VVUkwsIGFuZAorICAgICAgICB3aXBpbmcgb3V0IHRoZSByZXNvdXJjZVVSTCwgbWVhbnQg
dGhhdCBhIFNjcmlwdCBmcm9tIGEgUmVzb3VyY2UgdGhhdAorICAgICAgICBzZXQgYSBzb3VyY2VV
UkwgZGlyZWN0aXZlIHdvdWxkIGZhaWwgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGl0cyBSZXNvdXJj
ZS4KKworICAgICAgICBUaGlzIHdvdWxkIHJlc3VsdCBpbiBkdXBsaWNhdGVkIHRyZWUgZWxlbWVu
dHMgaW4gdGhlIFJlc291cmNlcyBTaWRlYmFyLAorICAgICAgICBvbmUgZm9yIHRoZSBSZXNvdXJj
ZSwgYW5kIG9uZSBmb3IgdGhlIFNjcmlwdC4gV2l0aCB0aGUgU2NyaXB0IGdldHRpbmcKKyAgICAg
ICAgdWx0aW1hdGVseSBnZXR0aW5nIHRoZSBTb3VyY2VNYXAgcmVzb3VyY2VzLiBIb3dldmVyLCBz
aW5jZSB0aGUgZnJvbnRlbmQKKyAgICAgICAgcHJlZmVycyBSZXNvdXJjZXMgb3ZlciBTY3JpcHRz
IHdoZW4gcG9zc2libGUsIGFuIGVycm9yIHRoYXQgZ2VuZXJhdGVkCisgICAgICAgIGZyb20gdGhl
IHNjcmlwdCB3b3VsZCBwb2ludCB0byBhIGxvY2F0aW9uIGluIHRoZSBSZXNvdXJjZSwgbm90IGZv
bGxvd2luZworICAgICAgICBzb3VyY2UgbWFwcy4KKworICAgICAgICBCeSBhbHdheXMgcHJvdmlk
aW5nIHRoZSByZXNvdXJjZSBVUkwgaW4gRGVidWdnZXIuc291cmNlUGFyc2VkLCBhIFNjcmlwdAor
ICAgICAgICBjYW4gYmV0dGVyIGJlIGFzc29jaWF0ZWQgd2l0aCBpdHMgUmVzb3VyY2UuIFRoZSBy
ZXN1bHQgaXMgbm93IGEgc2luZ2xlCisgICAgICAgIHNoYXJlZCB0cmVlIGVsZW1lbnQgaW4gdGhl
IFJlc291cmNlcyBTaWRlYmFyLCBhbmQgdGhlIFJlc291cmNlIGdldHRpbmcKKyAgICAgICAgdGhl
IFNvdXJjZU1hcCByZXNvdXJjZXMuIE5vdyB0aGUgc2NyaXB0IGVycm9yIGdvZXMgdGhyb3VnaCB0
aGUgUmVzb3VyY2UKKyAgICAgICAgdG8gaXRzIFNvdXJjZU1hcCByZXNvdXJjZXMgYXMgd2Ugd291
bGQgZXhwZWN0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9EZWJ1Z2dlck9i
c2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyT2JzZXJ2ZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyT2JzZXJ2ZXIucHJvdG90eXBlLnNjcmlwdFBhcnNl
ZCk6CisgICAgICAgIFdlIG5vdyBoYXZlIHRvIGhhbmRsZSB0d28gZGlmZmVyZW50IHNpZ25hdHVy
ZXMgb2Ygc2NyaXB0UGFyc2VkLiBPbmUKKyAgICAgICAgZm9yIGxlZ2FjeSwgYW5kIG9uZSBmb3Ig
bm9uLWxlZ2FjeS4gQ2FjaGUgdGhhdCB2YWx1ZSBlYXJseSBvbiwgc2luY2UKKyAgICAgICAgc2Ny
aXB0UGFyc2VkIGhhcHBlbnMgYSBsb3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL0luc3BlY3RvckJhY2tlbmQuanM6CisgICAgICAgIChJbnNwZWN0b3JCYWNrZW5kLkFnZW50
LnByb3RvdHlwZS5oYXNFdmVudFBhcmFtZXRlcik6CisgICAgICAgIFJ1bnRpbWUgY2hlY2sgYSBw
cm90b2NvbCBldmVudCB0byBzZWUgaWYgaXQgaGFzIGEgcGFyYW1ldGVyLiBUaGlzCisgICAgICAg
IGlzIHVzZWQgdG8gY2hlY2sgaWYgRGVidWdnZXIuc291cmNlUGFyc2VkIGlzIGxlZ2FjeSBvciBu
b3QgYmFzZWQKKyAgICAgICAgb24gaWYgaXQgaGFzIHRoZSBsZWdhY3kgImhhc1NvdXJjZVVSTCIg
cGFyYW1ldGVyLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0LnByb3RvdHlwZS5nZXQgc291cmNlVVJMKToKKyAgICAgICAgVHJlYXQgc291cmNlVVJMIGFu
ZCB1cmwgc2VwYXJhdGVseS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5
cGUuZ2V0IGRpc3BsYXlOYW1lKToKKyAgICAgICAgSGFuZGxlIGJvdGggdGhlIHVybCBhbmQgc291
cmNlVVJMIGluIGRpc3BsYXlOYW1lLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyLnByb3RvdHlwZS5nZXQga25vd25Ob25SZXNvdXJjZVNjcmlwdHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuZGVidWdnZXJEaWRQYXVzZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5zY3JpcHRE
aWRQYXJzZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3Qu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZS5maW5kRnVu
Y3Rpb25Tb3VyY2VDb2RlTG9jYXRpb24pOgorICAgICAgICBVcGRhdGUgY29kZSB0aGF0IGNoZWNr
cyB0aGUgc291cmNlVVJMIHRvIGV4cGxpY2l0bHkgdXNlIHNvdXJjZVVSTC4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvU291cmNlTWFwTWFuYWdlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBNYW5hZ2VyLnByb3RvdHlwZS5kb3dubG9hZFNvdXJjZU1h
cCk6CisgICAgICAgIEZvciBsZWdhY3kgYmFja2VuZHMsIG9yIGluIGNhc2Ugd2UgZ2V0IGEgcmVz
b3VyY2UgdGhhdCBoYXMgYW4gaW5jb21wbGV0ZQorICAgICAgICBiYXNlVVJMLCBhdHRlbXB0IHRv
IGdldCBhbiBhYnNvbHV0ZSBVUkwgYmFzZWQgb24gdGhlIG1haW4gcmVzb3VyY2UuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fYWRkU2NyaXB0
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
c2NyaXB0V2FzQWRkZWQpOgorICAgICAgICBJZ25vcmUgc2NyaXB0cyB3aXRob3V0IGEgdXJsIG9y
IHNvdXJjZVVSTC4KKworMjAxNi0wNC0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENsZWFudXAgaW5zcGVjdG9yL2RlYnVn
Z2VyIHRlc3RzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTY2MTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4IGEwOTUw
MGQuLjY3OWNiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTMz
Nyw3ICszMzcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdn
ZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBmb3IgKGxldCBz
Y3JpcHQgb2YgdGhpcy5fc2NyaXB0SWRNYXAudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGlmIChz
Y3JpcHQucmVzb3VyY2UpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBp
ZiAoIVdlYkluc3BlY3Rvci5pc0RlYnVnVUlFbmFibGVkKCkgJiYgaXNXZWJLaXRJbnRlcm5hbFNj
cmlwdChzY3JpcHQudXJsKSkKKyAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmlzRGVidWdV
SUVuYWJsZWQoKSAmJiBpc1dlYktpdEludGVybmFsU2NyaXB0KHNjcmlwdC5zb3VyY2VVUkwpKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAga25vd25TY3JpcHRzLnB1c2go
c2NyaXB0KTsKICAgICAgICAgfQpAQCAtNTM1LDcgKzUzNSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIC8vIEV4Y2x1
ZGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGNhbGwgZnJhbWUgaXMgaW4gdGhlIGluc3BlY3RvciBjb2Rl
LgotICAgICAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuaXNEZWJ1Z1VJRW5hYmxlZCgpICYmIGlz
V2ViS2l0SW50ZXJuYWxTY3JpcHQoc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUudXJsKSkK
KyAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmlzRGVidWdVSUVuYWJsZWQoKSAmJiBpc1dl
YktpdEludGVybmFsU2NyaXB0KHNvdXJjZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2RlLnNvdXJjZVVS
TCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGxldCBzY29wZUNo
YWluID0gdGhpcy5fc2NvcGVDaGFpbkZyb21QYXlsb2FkKGNhbGxGcmFtZVBheWxvYWQuc2NvcGVD
aGFpbik7CkBAIC01NjUsNyArNTY1LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9
IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAg
ICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKICAgICB9CiAKLSAgICBzY3JpcHREaWRQ
YXJzZShzY3JpcHRJZGVudGlmaWVyLCB1cmwsIGlzQ29udGVudFNjcmlwdCwgc3RhcnRMaW5lLCBz
dGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBzb3VyY2VNYXBVUkwpCisgICAgc2NyaXB0
RGlkUGFyc2Uoc2NyaXB0SWRlbnRpZmllciwgdXJsLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBl
bmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCwgc291cmNlVVJMLCBzb3VyY2VNYXBV
UkwpCiAgICAgewogICAgICAgICAvLyBEb24ndCBhZGQgdGhlIHNjcmlwdCBhZ2FpbiBpZiBpdCBp
cyBhbHJlYWR5IGtub3duLgogICAgICAgICBpZiAodGhpcy5fc2NyaXB0SWRNYXAuaGFzKHNjcmlw
dElkZW50aWZpZXIpKSB7CkBAIC01NzgsMTAgKzU3OCwxMCBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGlzV2Vi
SW5zcGVjdG9ySW50ZXJuYWxTY3JpcHQodXJsKSkKKyAgICAgICAgaWYgKGlzV2ViSW5zcGVjdG9y
SW50ZXJuYWxTY3JpcHQoc291cmNlVVJMKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoc2NyaXB0SWRlbnRpZmllciwg
bmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2Uoc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGlu
ZSwgZW5kQ29sdW1uKSwgdXJsLCBpc0NvbnRlbnRTY3JpcHQsIHNvdXJjZU1hcFVSTCk7CisgICAg
ICAgIGxldCBzY3JpcHQgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdChzY3JpcHRJZGVudGlmaWVy
LCBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZShzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRM
aW5lLCBlbmRDb2x1bW4pLCB1cmwsIGlzQ29udGVudFNjcmlwdCwgc291cmNlVVJMLCBzb3VyY2VN
YXBVUkwpOwogCiAgICAgICAgIHRoaXMuX3NjcmlwdElkTWFwLnNldChzY3JpcHRJZGVudGlmaWVy
LCBzY3JpcHQpOwogCkBAIC01OTQsNyArNTk0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFu
YWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QK
ICAgICAgICAgICAgIHNjcmlwdHMucHVzaChzY3JpcHQpOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKGlzV2ViS2l0SW50ZXJuYWxTY3JpcHQoc2NyaXB0LnVybCkpIHsKKyAgICAgICAgaWYgKGlz
V2ViS2l0SW50ZXJuYWxTY3JpcHQoc2NyaXB0LnNvdXJjZVVSTCkpIHsKICAgICAgICAgICAgIHRo
aXMuX2ludGVybmFsV2ViS2l0U2NyaXB0cy5wdXNoKHNjcmlwdCk7CiAgICAgICAgICAgICBpZiAo
IVdlYkluc3BlY3Rvci5pc0RlYnVnVUlFbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvU291cmNlTWFwTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMKaW5kZXggMjBmOTA1ZS4uZjRj
MGI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvU291cmNlTWFwTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9Tb3VyY2VNYXBNYW5hZ2VyLmpzCkBAIC00NCw2ICs0
NCwxMSBAQCBXZWJJbnNwZWN0b3IuU291cmNlTWFwTWFuYWdlciA9IGNsYXNzIFNvdXJjZU1hcE1h
bmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZQogCiAgICAgZG93bmxvYWRTb3VyY2VNYXAo
c291cmNlTWFwVVJMLCBiYXNlVVJMLCBvcmlnaW5hbFNvdXJjZUNvZGUpCiAgICAgeworICAgICAg
ICAvLyBUaGUgYmFzZVVSTCBjb3VsZCBoYXZlIGNvbWUgZnJvbSBhICIvLyMgc291cmNlVVJMIi4g
QXR0ZW1wdCB0byBnZXQgYQorICAgICAgICAvLyByZWFzb25hYmxlIGFic29sdXRlIFVSTCBmb3Ig
dGhlIGJhc2UgYnkgdXNpbmcgdGhlIG1haW4gcmVzb3VyY2UncyBVUkwuCisgICAgICAgIGlmIChX
ZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lKQorICAgICAgICAgICAg
YmFzZVVSTCA9IGFic29sdXRlVVJMKFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5t
YWluRnJhbWUudXJsLCBiYXNlVVJMKTsKKwogICAgICAgICBzb3VyY2VNYXBVUkwgPSBhYnNvbHV0
ZVVSTChzb3VyY2VNYXBVUkwsIGJhc2VVUkwpOwogICAgICAgICBpZiAoIXNvdXJjZU1hcFVSTCkK
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0LmpzCmluZGV4IGI2Yzg0ZDMuLmMwNzhjNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Njcmlw
dC5qcwpAQCAtMjUsNyArMjUsNyBAQAogCiBXZWJJbnNwZWN0b3IuU2NyaXB0ID0gY2xhc3MgU2Ny
aXB0IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGUKIHsKLSAgICBjb25zdHJ1Y3Rvcihp
ZCwgcmFuZ2UsIHVybCwgaW5qZWN0ZWQsIHNvdXJjZU1hcFVSTCkKKyAgICBjb25zdHJ1Y3Rvcihp
ZCwgcmFuZ2UsIHVybCwgaW5qZWN0ZWQsIHNvdXJjZVVSTCwgc291cmNlTWFwVVJMKQogICAgIHsK
ICAgICAgICAgc3VwZXIoKTsKIApAQCAtMzUsNiArMzUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
ID0gY2xhc3MgU2NyaXB0IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGUKICAgICAgICAg
dGhpcy5faWQgPSBpZCB8fCBudWxsOwogICAgICAgICB0aGlzLl9yYW5nZSA9IHJhbmdlIHx8IG51
bGw7CiAgICAgICAgIHRoaXMuX3VybCA9IHVybCB8fCBudWxsOworICAgICAgICB0aGlzLl9zb3Vy
Y2VVUkwgPSBzb3VyY2VVUkwgfHwgbnVsbDsKICAgICAgICAgdGhpcy5faW5qZWN0ZWQgPSBpbmpl
Y3RlZCB8fCBmYWxzZTsKIAogICAgICAgICB0aGlzLl9yZXNvdXJjZSA9IHRoaXMuX3Jlc29sdmVS
ZXNvdXJjZSgpOwpAQCAtNzEsNiArNzIsMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdCA9IGNsYXNz
IFNjcmlwdCBleHRlbmRzIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlCiAgICAgICAgIHJldHVybiB0
aGlzLl91cmw7CiAgICAgfQogCisgICAgZ2V0IHNvdXJjZVVSTCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fc291cmNlVVJMOworICAgIH0KKwogICAgIGdldCB1cmxDb21wb25lbnRzKCkK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fdXJsQ29tcG9uZW50cykKQEAgLTg4LDYgKzk0LDEy
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHQgPSBjbGFzcyBTY3JpcHQgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuU291cmNlQ29kZQogICAgICAgICBpZiAodGhpcy5fdXJsKQogICAgICAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh0aGlzLl91cmwsIHRoaXMudXJsQ29tcG9u
ZW50cyk7CiAKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZVVSTCkgeworICAgICAgICAgICAgaWYg
KCF0aGlzLl9zb3VyY2VVUkxDb21wb25lbnRzKQorICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJj
ZVVSTENvbXBvbmVudHMgPSBwYXJzZVVSTCh0aGlzLl9zb3VyY2VVUkwpOworICAgICAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh0aGlzLl9zb3VyY2VVUkwsIHRo
aXMuX3NvdXJjZVVSTENvbXBvbmVudHMpOworICAgICAgICB9CisKICAgICAgICAgLy8gQXNzaWdu
IGEgdW5pcXVlIG51bWJlciB0byB0aGUgc2NyaXB0IG9iamVjdCBzbyBpdCB3aWxsIHN0YXkgdGhl
IHNhbWUuCiAgICAgICAgIGlmICghdGhpcy5fdW5pcXVlRGlzcGxheU5hbWVOdW1iZXIpCiAgICAg
ICAgICAgICB0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlciA9IHRoaXMuY29uc3RydWN0b3Iu
X25leHRVbmlxdWVEaXNwbGF5TmFtZU51bWJlcisrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRGVidWdnZXJPYnNlcnZlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RlYnVnZ2VyT2JzZXJ2
ZXIuanMKaW5kZXggYTA1YzRhMC4uYzM1ODNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRGVidWdnZXJPYnNlcnZlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9EZWJ1Z2dlck9ic2Vy
dmVyLmpzCkBAIC0yNSw2ICsyNSwxMSBAQAogCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJPYnNlcnZl
ciA9IGNsYXNzIERlYnVnZ2VyT2JzZXJ2ZXIKIHsKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgewor
ICAgICAgICB0aGlzLl9sZWdhY3lTY3JpcHRQYXJzZWQgPSBEZWJ1Z2dlckFnZW50Lmhhc0V2ZW50
UGFyYW1ldGVyKCJzY3JpcHRQYXJzZWQiLCAiaGFzU291cmNlVVJMIik7CisgICAgfQorCiAgICAg
Ly8gRXZlbnRzIGRlZmluZWQgYnkgdGhlICJEZWJ1Z2dlciIgZG9tYWluLgogCiAgICAgZ2xvYmFs
T2JqZWN0Q2xlYXJlZCgpCkBAIC0zMiw5ICszNywyMCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJP
YnNlcnZlciA9IGNsYXNzIERlYnVnZ2VyT2JzZXJ2ZXIKICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5yZXNldCgpOwogICAgIH0KIAotICAgIHNjcmlwdFBhcnNlZChzY3JpcHRJ
ZCwgdXJsLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29u
dGVudFNjcmlwdCwgc291cmNlTWFwVVJMLCBoYXNTb3VyY2VVUkwpCisgICAgc2NyaXB0UGFyc2Vk
KHNjcmlwdElkLCB1cmwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVt
biwgaXNDb250ZW50U2NyaXB0LCBzb3VyY2VVUkwsIHNvdXJjZU1hcFVSTCkKICAgICB7Ci0gICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2NyaXB0RGlkUGFyc2Uoc2NyaXB0SWQs
IHVybCwgaXNDb250ZW50U2NyaXB0LCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBl
bmRDb2x1bW4sIHNvdXJjZU1hcFVSTCk7CisgICAgICAgIGlmICh0aGlzLl9sZWdhY3lTY3JpcHRQ
YXJzZWQpIHsKKyAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyA5KTogRGVidWdnZXIu
c2NyaXB0UGFyc2VkIGhhZCBzbGlnaHRseSBkaWZmZXJlbnQgYXJndW1lbnRzLgorICAgICAgICAg
ICAgLy8gRGVidWdnZXIuc2NyaXB0UGFyc2VkOiAoc2NyaXB0SWQsIHVybCwgc3RhcnRMaW5lLCBz
dGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQsIHNvdXJjZU1h
cFVSTCwgaGFzU291cmNlVVJMKQorICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGluIHRoaXMgbGVn
YWN5IHZlcnNpb24sIHVybCBjb3VsZCBiZSB0aGUgc291cmNlVVJMIG5hbWUsIGFuZCB0aGUgcmVz
b3VyY2UgVVJMIGNvdWxkIGJlIGxvc3QuCisgICAgICAgICAgICBsZXQgbGVnYWN5U291cmNlTWFw
VVJMID0gYXJndW1lbnRzWzddOworICAgICAgICAgICAgbGV0IGhhc1NvdXJjZVVSTCA9IGFyZ3Vt
ZW50c1s4XTsKKyAgICAgICAgICAgIGxldCBsZWdhY3lTb3VyY2VVUkwgPSBoYXNTb3VyY2VVUkwg
PyB1cmwgOiB1bmRlZmluZWQ7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLnNjcmlwdERpZFBhcnNlKHNjcmlwdElkLCB1cmwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4s
IGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0LCBsZWdhY3lTb3VyY2VVUkwsIGxl
Z2FjeVNvdXJjZU1hcFVSTCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNjcmlwdERpZFBhcnNlKHNjcmlwdElk
LCB1cmwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250
ZW50U2NyaXB0LCBzb3VyY2VVUkwsIHNvdXJjZU1hcFVSTCk7CiAgICAgfQogCiAgICAgc2NyaXB0
RmFpbGVkVG9QYXJzZSh1cmwsIHNjcmlwdFNvdXJjZSwgc3RhcnRMaW5lLCBlcnJvckxpbmUsIGVy
cm9yTWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kLmpzCmluZGV4IDMyYjFkYzUu
LjM0NzQ5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZC5qcwpAQCAtNDI2LDYgKzQy
NiwxMiBAQCBJbnNwZWN0b3JCYWNrZW5kLkFnZW50ID0gY2xhc3MgSW5zcGVjdG9yQmFja2VuZEFn
ZW50CiAgICAgICAgIHJldHVybiBldmVudE5hbWUgaW4gdGhpcy5fZXZlbnRzOwogICAgIH0KIAor
ICAgIGhhc0V2ZW50UGFyYW1ldGVyKGV2ZW50TmFtZSwgZXZlbnRQYXJhbWV0ZXJOYW1lKQorICAg
IHsKKyAgICAgICAgbGV0IGV2ZW50ID0gdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV07CisgICAgICAg
IHJldHVybiBldmVudCAmJiBldmVudC5wYXJhbWV0ZXJOYW1lcy5pbmNsdWRlcyhldmVudFBhcmFt
ZXRlck5hbWUpOworICAgIH0KKwogICAgIGFjdGl2YXRlKCkKICAgICB7CiAgICAgICAgIHRoaXMu
X2FjdGl2ZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKaW5kZXggMThhNWZlOC4uODVi
Mjc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwpAQCAtNTEzLDcgKzUxMyw3IEBAIFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKICAgICAgICAgICAgIHZh
ciBsb2NhdGlvbiA9IHJlc3BvbnNlLmxvY2F0aW9uOwogICAgICAgICAgICAgdmFyIHNvdXJjZUNv
ZGUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNjcmlwdEZvcklkZW50aWZpZXIobG9j
YXRpb24uc2NyaXB0SWQpOwogCi0gICAgICAgICAgICBpZiAoIXNvdXJjZUNvZGUgfHwgKCFXZWJJ
bnNwZWN0b3IuaXNEZWJ1Z1VJRW5hYmxlZCgpICYmIGlzV2ViS2l0SW50ZXJuYWxTY3JpcHQoc291
cmNlQ29kZS51cmwpKSkgeworICAgICAgICAgICAgaWYgKCFzb3VyY2VDb2RlIHx8ICghV2ViSW5z
cGVjdG9yLmlzRGVidWdVSUVuYWJsZWQoKSAmJiBpc1dlYktpdEludGVybmFsU2NyaXB0KHNvdXJj
ZUNvZGUuc291cmNlVVJMKSkpIHsKICAgICAgICAgICAgICAgICByZXN1bHQucmVzb2x2ZShXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LlNvdXJjZUNvZGVMb2NhdGlvblByb21pc2UuTm9Tb3VyY2VG
b3VuZCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRl
YmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
ZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwppbmRleCBiN2Y2MzBkLi43YTgzZTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGVi
YXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwpAQCAtNDI4LDcgKzQyOCw3IEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVu
ZHMgV2ViSW5zcGVjCiAgICAgX2FkZFNjcmlwdChzY3JpcHQpCiAgICAgewogICAgICAgICAvLyBD
T01QQVRJQklMSVRZKGlPUyA5KTogQmFja2VuZHMgY291bGQgc2VuZCB0aGUgZnJvbnRlbmQgYnVp
bHQtaW4gY29kZSwgZmlsdGVyIG91dCBKU0MgaW50ZXJuYWxzLgotICAgICAgICBpZiAoIXNjcmlw
dC51cmwpCisgICAgICAgIGlmICghc2NyaXB0LnVybCAmJiAhc2NyaXB0LnNvdXJjZVVSTCkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBEb24ndCBhZGQgYnJlYWtwb2ludHMgaWYg
dGhlIHNjcmlwdCBpcyByZXByZXNlbnRlZCBieSBhIFJlc291cmNlLiBUaGV5IHdlcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
U2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggNDI4ZjIzNy4uNDI2N2FkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VT
aWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKQEAgLTI3NSw3ICsyNzUsNyBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBSZXNvdXJjZVNpZGViYXJQYW5lbCBl
eHRlbmRzIFdlYkluc3BlYwogCiAgICAgICAgIC8vIFdlIGRvbid0IGFkZCBzY3JpcHRzIHdpdGhv
dXQgVVJMcyBoZXJlLiBUaG9zZSBzY3JpcHRzIGNhbiBxdWlja2x5IGNsdXR0ZXIgdGhlIGludGVy
ZmFjZSBhbmQKICAgICAgICAgLy8gYXJlIHVzdWFsbHkgbW9yZSB0cmFuc2llbnQuIFRoZXkgd2ls
bCBnZXQgYWRkZWQgaWYvd2hlbiB0aGV5IG5lZWQgdG8gYmUgc2hvd24gaW4gYSBjb250ZW50IHZp
ZXcuCi0gICAgICAgIGlmICghc2NyaXB0LnVybCkKKyAgICAgICAgaWYgKCFzY3JpcHQudXJsICYm
ICFzY3JpcHQuc291cmNlVVJMKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIElm
IHRoZSBzY3JpcHQgVVJMIG1hdGNoZXMgYSByZXNvdXJjZSB3ZSBjYW4gYXNzdW1lIGl0IGlzIHBh
cnQgb2YgdGhhdCByZXNvdXJjZSBhbmQgZG9lcyBub3QgbmVlZCBhZGRlZC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>