<?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>35378</bug_id>
          
          <creation_ts>2010-02-25 04:35:56 -0800</creation_ts>
          <short_desc>Web Inspector: evaluate-on-hover does not work on HTML files.</short_desc>
          <delta_ts>2010-02-25 10:47:04 -0800</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 (Deprecated)</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193672</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-25 04:35:56 -0800</bug_when>
    <thetext>1. Open some HTML page with inline script
2. Stop on breakpoint inside that script
3. Hover over elements to see evaluated results

Expected: popover with result
Actual: nothing happens

The reason is that evaluate-on-hover works for highlighted source only, so we need to highlight inner JavaScript to make it work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193674</commentid>
    <comment_count>1</comment_count>
      <attachid>49474</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-25 04:44:28 -0800</bug_when>
    <thetext>Created attachment 49474
[PATCH] Proposed change.

This change also removes editing-related complexities from the highlighter logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193677</commentid>
    <comment_count>2</comment_count>
      <attachid>49476</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-25 04:55:19 -0800</bug_when>
    <thetext>Created attachment 49476
[PATCH] Proposed change. (Same with updated expectations for HTML test)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193678</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-25 04:56:37 -0800</bug_when>
    <thetext>Attachment 49476 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/inspector/front-end/SourceHTMLTokenizer.js:143:  Line contains tab character.  [whitespace/tab] [5]
WebCore/inspector/front-end/SourceHTMLTokenizer.js:144:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193716</commentid>
    <comment_count>4</comment_count>
      <attachid>49476</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-02-25 07:07:51 -0800</bug_when>
    <thetext>Comment on attachment 49476
[PATCH] Proposed change. (Same with updated expectations for HTML test)

&gt; +            var match = /&lt;\/[Ss][Cc][Rr][Ii][Pp][Tt]/.exec(line);

Why not just do //i?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193790</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-25 10:13:32 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 49476 [details])
&gt; &gt; +            var match = /&lt;\/[Ss][Cc][Rr][Ii][Pp][Tt]/.exec(line);
&gt; 
&gt; Why not just do //i?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193808</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-25 10:47:04 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/inspector/syntax-highlight-html-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/SourceCSSTokenizer.js
	M	WebCore/inspector/front-end/SourceCSSTokenizer.re2js
	M	WebCore/inspector/front-end/SourceHTMLTokenizer.js
	M	WebCore/inspector/front-end/SourceHTMLTokenizer.re2js
	M	WebCore/inspector/front-end/SourceJavaScriptTokenizer.js
	M	WebCore/inspector/front-end/SourceJavaScriptTokenizer.re2js
	M	WebCore/inspector/front-end/SourceTokenizer.js
	M	WebCore/inspector/front-end/TextEditorHighlighter.js
	M	WebCore/inspector/front-end/TextViewer.js
Committed r55248</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49474</attachid>
            <date>2010-02-25 04:44:28 -0800</date>
            <delta_ts>2010-02-25 04:45:36 -0800</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>highlight_html</filename>
            <type>text/plain</type>
            <size>37091</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODQ4YmNiZS4uMmE5ZmVmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wMi0yNSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBldmFsdWF0ZS1vbi1ob3ZlciBkb2Vz
IG5vdCB3b3JrIG9uIEhUTUwgZmlsZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM1Mzc4CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUNTU1Rva2VuaXplci5yZTJqczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUhUTUxUb2tlbml6ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRN
TFRva2VuaXplcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5w
cm90b3R5cGUuc2V0IGxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tl
bml6ZXIucHJvdG90eXBlLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuX2lzRXhwZWN0aW5nQXR0cmlidXRl
VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90
eXBlLl9zZXRFeHBlY3RpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLl9zZXRFeHBlY3RpbmdBdHRyaWJ1dGVWYWx1ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuX2F0dHJW
YWx1ZVRva2VuVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXpl
ci5wcm90b3R5cGUubmV4dFRva2VuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUhUTUxUb2tlbml6ZXIucmUyanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUphdmFTY3JpcHRUb2tlbml6ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlSmF2YVNjcmlwdFRva2VuaXplci5yZTJqczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZVRva2VuaXplci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tl
bml6ZXIucHJvdG90eXBlLnNldCBjb25kaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZVRva2VuaXplci5wcm90b3R5cGUuZ2V0IGNvbmRpdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlVG9rZW5pemVyLnByb3RvdHlwZS5nZXQgc3ViVG9rZW5pemVyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIucHJvdG90eXBlLmdldExleENvbmRpdGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLnByb3RvdHlwZS5zZXRM
ZXhDb25kaXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvckhp
Z2hsaWdodGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlw
ZS5zZXQgbWltZVR5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGln
aHRlci5wcm90b3R5cGUuaGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9oaWdobGlnaHRJbkNodW5rcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZS5faGlnaGxpZ2h0TGlu
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90b3R5
cGUuX2hpZ2hsaWdodExpbmUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZp
ZXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5fcGFp
bnRMaW5lKToKKwogMjAxMC0wMi0yNCAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLnJlMmpzCmluZGV4IGFj
MjJiZDQuLjZiYTlmNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VDU1NUb2tlbml6ZXIucmUyanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUNTU1Rva2VuaXplci5yZTJqcwpAQCAtMTgyLDcgKzE4Miw3IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VDU1NUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgX2lzUHJvcGVydHlWYWx1
ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0aW9u
ID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFlfVkFMVUUgfHwgdGhpcy5fcGFyc2VD
b25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVF9SVUxFOworICAgICAgICByZXR1
cm4gdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlv
bnMuUFJPUEVSVFlfVkFMVUUgfHwgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRTsKICAgICB9LAogCiAgICAgbmV4dFRva2VuOiBm
dW5jdGlvbihjdXJzb3IpCkBAIC0yNDQsMzUgKzI0NCwzNSBAQCBXZWJJbnNwZWN0b3IuU291cmNl
Q1NTVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICA8SU5JVElBTD4gT3Bl
bkN1cmx5QnJhY2tldAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhp
cy50b2tlblR5cGUgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VD
b25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVF9SVUxFKQotICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
SU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNv
bmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEUpCisgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
UFJPUEVSVFk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VD
b25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAg
ICAgPElOSVRJQUw+IENsb3NlQ3VybHlCcmFja2V0CiAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAg
IHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vy
c29yOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIDxJTklUSUFMPiBDb2xv
bgogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5QUk9QRVJUWSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlBST1BFUlRZX1ZB
TFVFOworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFkpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRp
dGlvbnMuUFJPUEVSVFlfVkFMVUU7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7
CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgPElOSVRJQUw+IFNlbWljb2xv
bgogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUg
PSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVF9SVUxFKQotICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9PT0g
dGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEUpCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5J
VElBTDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogCkBAIC0yODgsMTggKzI4OCwxOCBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICA8SU5JVElBTD4gSWRlbnRpZmllcgogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgdmFyIHRva2VuID0gdGhpcy5fbGluZS5zdWJzdHJpbmcoY3Vyc29yT25FbnRlciwgY3Vy
c29yKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
dGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
SU5JVElBTCkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09PSAiQGltcG9y
dCIgfHwgdG9rZW4gPT09ICJAbWVkaWEiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy50b2tlblR5cGUgPSAiY3NzLWF0LXJ1bGUiOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEU7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEU7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKHRva2VuLmluZGV4T2YoIkAiKSA9PT0gMCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJjc3MtYXQtcnVsZSI7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tl
blR5cGUgPSAiY3NzLXNlbGVjdG9yIjsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLkFUX1JVTEUgJiYgdG9rZW4gaW4gdGhpcy5fbWVkaWFUeXBlcykKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRSAmJiB0b2tlbiBpbiB0aGlzLl9tZWRpYVR5cGVz
KQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiY3NzLWtleXdvcmQi
OwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0g
dGhpcy5fcGFyc2VDb25kaXRpb25zLlBST1BFUlRZICYmIHRva2VuIGluIHRoaXMuX3Byb3BlcnR5
S2V5d29yZHMpCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbmRpdGlvbi5w
YXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlBST1BFUlRZICYmIHRva2Vu
IGluIHRoaXMuX3Byb3BlcnR5S2V5d29yZHMpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LnRva2VuVHlwZSA9ICJjc3MtcHJvcGVydHkiOwogICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
ICh0aGlzLl9pc1Byb3BlcnR5VmFsdWUoKSAmJiB0b2tlbiBpbiB0aGlzLl92YWx1ZUtleXdvcmRz
KQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiY3NzLWtleXdvcmQi
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tl
bml6ZXIuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXpl
ci5qcwppbmRleCAzYzliZDhjLi5jYzFjYWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcwpAQCAtMSw0ICsxLDQgQEAKLS8qIEdl
bmVyYXRlZCBieSByZTJjIDAuMTMuNSBvbiBNb24gRmViIDE1IDE5OjMwOjIxIDIwMTAgKi8KKy8q
IEdlbmVyYXRlZCBieSByZTJjIDAuMTMuNSBvbiBUaHUgRmViIDI1IDEzOjUzOjM2IDIwMTAgKi8K
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCkBAIC03MSwzMSArNzEsNDMgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6
ZXIgPSBmdW5jdGlvbigpCiAgICAgfTsKIAogICAgIHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsg
bGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwsIHBhcnNlQ29uZGl0aW9u
OiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCB9OworICAgIHRoaXMuY29uZGl0aW9uID0g
dGhpcy5pbml0aWFsQ29uZGl0aW9uOwogfQogCiBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5wcm90b3R5cGUgPSB7CisgICAgc2V0IGxpbmUobGluZSkgeworICAgICAgICBpZiAodGhp
cy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgICAgICB2YXIgbWF0Y2gg
PSAvPFwvW1NzXVtDY11bUnJdW0lpXVtQcF1bVHRdLy5leGVjKGxpbmUpOworICAgICAgICAgICAg
aWYgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9r
ZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6
ZXIubGluZSA9IGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fbGluZSA9IGxpbmU7Cisg
ICAgfSwKKwogICAgIF9pc0V4cGVjdGluZ0F0dHJpYnV0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25z
LkFUVFJJQlVURTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlv
biAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7CiAgICAgfSwKIAogICAgIF9pc0V4
cGVjdGluZ0F0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4g
dGhpcy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZB
TFVFOworICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhp
cy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKICAgICB9LAogCiAgICAgX3NldEV4
cGVjdGluZ0F0dHJpYnV0ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lz
RXhwZWN0aW5nQXR0cmlidXRlVmFsdWUoKSkKLSAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0
aW9uIF49IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEVfVkFMVUU7Ci0gICAgICAgIHRo
aXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7Cisg
ICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNl
Q29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7CiAgICAgfSwKIAog
ICAgIF9zZXRFeHBlY3RpbmdBdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlKCkpCi0gICAgICAgICAgICB0aGlzLl9w
YXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFOwotICAgICAg
ICB0aGlzLl9wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRF
X1ZBTFVFOworICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIF49IHRo
aXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5w
YXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFOwog
ICAgIH0sCiAKICAgICBfc3RyaW5nVG9rZW46IGZ1bmN0aW9uKGN1cnNvciwgc3RyaW5nRW5kcykK
QEAgLTExMiw4ICsxMjQsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90
b3R5cGUgPSB7CiAKICAgICBfYXR0clZhbHVlVG9rZW5UeXBlOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
TElOS0lGWSkgewotICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5f
cGFyc2VDb25kaXRpb25zLkFfTk9ERSkKKyAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJz
ZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZKSB7CisgICAgICAgICAg
ICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRp
b25zLkFfTk9ERSkKICAgICAgICAgICAgICAgICByZXR1cm4gImh0bWwtZXh0ZXJuYWwtbGluayI7
CiAgICAgICAgICAgICByZXR1cm4gImh0bWwtcmVzb3VyY2UtbGluayI7CiAgICAgICAgIH0KQEAg
LTEyMiw2ICsxMzQsMjIgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90
eXBlID0gewogCiAgICAgbmV4dFRva2VuOiBmdW5jdGlvbihjdXJzb3IpCiAgICAgeworICAgICAg
ICBpZiAodGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgICAgICAv
LyBSZS1zZXQgbGluZSB0byBmb3JjZSA8L3NjcmlwdD4gZGV0ZWN0aW9uIGZpcnN0LgorICAgICAg
ICAgICAgdGhpcy5saW5lID0gdGhpcy5fbGluZTsKKyAgICAgICAgICAgIGlmIChjdXJzb3IgIT09
IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5fbGluZS5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICAvLyBUb2tlbml6ZXIgaXMgc3RhdGVsZXNzLCBzbyByZXN0b3JlIGl0cyBjb25k
aXRpb24gYmVmb3JlIHRva2VuaXppbmcgYW5kIHNhdmUgaXQgYWZ0ZXIuCisgICAgICAgICAgICAg
ICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmNvbmRpdGlvbiA9IHRoaXMuX2Nv
bmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb247CisJICAgICAgICAg
ICAgdmFyIHJlc3VsdCA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5uZXh0VG9r
ZW4oY3Vyc29yKTsKKwkgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IHRoaXMuX2ludGVybmFs
SmF2YVNjcmlwdFRva2VuaXplci50b2tlblR5cGU7CisgICAgICAgICAgICAgICAgdGhpcy5fY29u
ZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplci5jb25kaXRpb247CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yICE9PSB0aGlzLl9saW5lLmxl
bmd0aCkgeworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRU
b2tlbml6ZXI7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlvbi5zdWJUb2tl
bml6ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICB2YXIgY3Vyc29yT25F
bnRlciA9IGN1cnNvcjsKICAgICAgICAgdmFyIGdvdG9DYXNlID0gMTsKICAgICAgICAgd2hpbGUg
KDEpIHsKQEAgLTMwNSwxNCArMzMzLDE0IEBAIGNhc2UgMzk6CiBjYXNlIDQwOgogICAgICAgICAg
ICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gJiB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NS
SVBUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgdG9rZW5pemUgc2NyaXB0
IHRhZyBjb250ZW50cywga2VlcCBsZXhlciBzdGF0ZSBhbHRob3VnaCBwcm9jZXNzaW5nICI8Ii4K
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENv
bmRpdGlvbnMuSU5JVElBTCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlw
ZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRp
b24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklO
SVRJQUw7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICB9CkBA
IC00MTMsMTQgKzQ0MSwxNCBAQCBjYXNlIDY2OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAg
ICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLlRBRyk7CiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlv
biAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5TQ1JJUFQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCB0b2tlbml6ZSBz
Y3JpcHQgdGFnIGNvbnRlbnRzLCBrZWVwIGxleGVyIHN0YXRlIGFsdGhvdWdoIHByb2Nlc3Npbmcg
IjwiLgogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5f
bGV4Q29uZGl0aW9ucy5JTklUSUFMKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9r
ZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUg
PSAiaHRtbC10YWciOwotICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQ7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
X2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQ7
CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEV4cGVjdGluZ0F0dHJpYnV0ZSgpOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KQEAgLTQ0
OSw3ICs0NzcsNyBAQCBjYXNlIDczOgogICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24o
dGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3Bh
cnNlQ29uZGl0aW9ucy5JTklUSUFMOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29y
OwogICAgICAgICAgICAgICAgIH0KIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqICovCkBAIC01MjcsMjYgKzU1NSwyNiBAQCBjYXNlIHRoaXMuY2FzZV9UQUc6CiAgICAgICAg
ICAgICB7IGdvdG9DYXNlID0gMTA5OyBjb250aW51ZTsgfTsKIGNhc2UgODk6CiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NS
SVBUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggaWYgZXhwZWN0
aW5nIGF0dHJpYnV0ZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9
IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0
aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuSU5JVElBTCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5
cGUgPSAiaHRtbC10YWciOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0
aW5nQXR0cmlidXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlz
Ll9saW5lLnN1YnN0cmluZyhjdXJzb3JPbkVudGVyLCBjdXJzb3IpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRva2VuID09PSAiYSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhp
cy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiB8
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAgICAgICAgICAgICAgICAgICAgICAg
ZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25k
aXRpb25zLkFfTk9ERSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRp
b24ucGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgpKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmlu
ZyhjdXJzb3JPbkVudGVyLCBjdXJzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRv
a2VuID09PSAiaHJlZiIgfHwgdG9rZW4gPT09ICJzcmMiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5L
SUZZOwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fcGFyc2VDb25kaXRp
b24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJ
TktJRlk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNl
Q29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIHw9IHRo
aXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
TElOS0lGWTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwt
YXR0cmlidXRlLW5hbWUiOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lz
RXhwZWN0aW5nQXR0cmlidXRlVmFsdWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
dG9rZW5UeXBlID0gdGhpcy5fYXR0clZhbHVlVG9rZW5UeXBlKCk7CkBAIC01NzcsMTQgKzYwNSwx
OCBAQCBjYXNlIDk2OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNl
dExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwpOwogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9w
YXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5U
eXBlID0gImh0bWwtdGFnIjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlv
bi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVy
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0
VG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0
YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNv
bmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0
aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5zdWJUb2tl
bml6ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMuCi0gICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
SU5JVElBTDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWci
OworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGN1cnNvcjsKICAgICAgICAgICAgICAgICB9CiBjYXNlIDk4OgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwppbmRleCBjZmE4
ODM0Li41Y2NiZjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlSFRNTFRva2VuaXplci5yZTJqcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlSFRNTFRva2VuaXplci5yZTJqcwpAQCAtNzAsMzEgKzcwLDQzIEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VIVE1MVG9rZW5pemVyID0gZnVuY3Rpb24oKQogICAgIH07CiAKICAgICB0aGlzLmlu
aXRpYWxDb25kaXRpb24gPSB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5JTklU
SUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUwgfTsKKyAg
ICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsKIH0KIAogV2ViSW5zcGVj
dG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0geworICAgIHNldCBsaW5lKGxpbmUp
IHsKKyAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcikgeworICAg
ICAgICAgICAgdmFyIG1hdGNoID0gLzxcL1tTc11bQ2NdW1JyXVtJaV1bUHBdW1R0XS8uZXhlYyhs
aW5lKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2lu
dGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgbWF0Y2gu
aW5kZXgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJu
YWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAgICB9CisgICAgICAgIHRo
aXMuX2xpbmUgPSBsaW5lOworICAgIH0sCisKICAgICBfaXNFeHBlY3RpbmdBdHRyaWJ1dGU6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wYXJzZUNvbmRpdGlvbiAmIHRo
aXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7CisgICAgICAgIHJldHVybiB0aGlzLl9jb25k
aXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFOwog
ICAgIH0sCiAKICAgICBfaXNFeHBlY3RpbmdBdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25k
aXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmRpdGlvbi5w
YXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEVfVkFMVUU7CiAg
ICAgfSwKIAogICAgIF9zZXRFeHBlY3RpbmdBdHRyaWJ1dGU6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlKCkpCi0gICAgICAgICAg
ICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRF
X1ZBTFVFOwotICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRp
dGlvbnMuQVRUUklCVVRFOworICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uIF49IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEVfVkFMVUU7CisgICAgICAgIHRo
aXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRU
UklCVVRFOwogICAgIH0sCiAKICAgICBfc2V0RXhwZWN0aW5nQXR0cmlidXRlVmFsdWU6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgpKQot
ICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25z
LkFUVFJJQlVURTsKLSAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5w
YXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFOworICAgICAg
ICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25z
LkFUVFJJQlVURV9WQUxVRTsKICAgICB9LAogCiAgICAgX3N0cmluZ1Rva2VuOiBmdW5jdGlvbihj
dXJzb3IsIHN0cmluZ0VuZHMpCkBAIC0xMTEsOCArMTIzLDggQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgX2F0dHJWYWx1ZVRva2VuVHlwZTog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhp
cy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9wYXJz
ZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BX05PREUpCisgICAgICAgIGlmICh0
aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElO
S0lGWSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAm
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BX05PREUpCiAgICAgICAgICAgICAgICAgcmV0dXJuICJo
dG1sLWV4dGVybmFsLWxpbmsiOwogICAgICAgICAgICAgcmV0dXJuICJodG1sLXJlc291cmNlLWxp
bmsiOwogICAgICAgICB9CkBAIC0xMjEsNiArMTMzLDIwIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VI
VE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIG5leHRUb2tlbjogZnVuY3Rpb24oY3Vy
c29yKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
cikgeworICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8gZm9yY2UgPC9zY3JpcHQ+IGRldGVj
dGlvbiBmaXJzdC4KKyAgICAgICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xpbmU7CisgICAgICAg
ICAgICBpZiAoY3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuX2xp
bmUubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gVG9rZW5pemVyIGlzIHN0YXRlbGVzcywg
c28gcmVzdG9yZSBpdHMgY29uZGl0aW9uIGJlZm9yZSB0b2tlbml6aW5nIGFuZCBzYXZlIGl0IGFm
dGVyLgorICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5j
b25kaXRpb24gPSB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29u
ZGl0aW9uOworCSAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9pbnRlcm5hbEphdmFTY3Jp
cHRUb2tlbml6ZXIubmV4dFRva2VuKGN1cnNvcik7CisJICAgICAgICAgICAgdGhpcy50b2tlblR5
cGUgPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIudG9rZW5UeXBlOworICAgICAg
ICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25k
aXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuY29uZGl0aW9uOworICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNv
ciAhPT0gdGhpcy5fbGluZS5sZW5ndGgpCisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2lu
dGVybmFsSmF2YVNjcmlwdFRva2VuaXplcjsKKyAgICAgICAgfQorCiAgICAgICAgIHZhciBjdXJz
b3JPbkVudGVyID0gY3Vyc29yOwogICAgICAgICB2YXIgZ290b0Nhc2UgPSAxOwogICAgICAgICB3
aGlsZSAoMSkgewpAQCAtMTc0LDE0ICsyMDAsMTQgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxU
b2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAgICAgPElOSVRJQUw+IFNjcmlw
dFN0YXJ0ID0+IFRBRwogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYg
dGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMsIGtlZXAgbGV4ZXIgc3RhdGUg
YWx0aG91Z2ggcHJvY2Vzc2luZyAiPCIuCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNl
dExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVDsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFy
c2VDb25kaXRpb25zLlNDUklQVDsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0
aW5nQXR0cmlidXRlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMTg5LDM0ICsyMTUsMzcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhU
TUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIDxJTklUSUFMPiBTY3Jp
cHRFbmQgPT4gVEFHCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB0aGlz
LnRva2VuVHlwZSA9ICJodG1sLXRhZyI7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNl
Q29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0
aW9ucy5JTklUSUFMOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIDxJTklUSUFMPiBMVCA9PiBUQUcKICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlv
biAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5TQ1JJUFQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCB0b2tlbml6ZSBz
Y3JpcHQgdGFnIGNvbnRlbnRzLCBrZWVwIGxleGVyIHN0YXRlIGFsdGhvdWdoIHByb2Nlc3Npbmcg
IjwiLgogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5f
bGV4Q29uZGl0aW9ucy5JTklUSUFMKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9r
ZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAg
ICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNv
bmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlv
bnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10
YWciOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAg
IH0KLQorICAKICAgICAgICAgICAgICAgICA8VEFHPiBHVCA9PiBJTklUSUFMCiAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gJiB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
dG9rZW5UeXBlID0gImh0bWwtdGFnIjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Nv
bmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9r
ZW5pemVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5n
ZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2Vu
aXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFs
Q29uZGl0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMuCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5J
VElBTDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1
cnNvcjsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTIzOCwyNiArMjY3LDI2IEBAIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgICAg
IDxUQUc+IElkZW50aWZpZXIKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQ
VCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGYWxsIHRocm91Z2ggaWYgZXhwZWN0aW5nIGF0dHJpYnV0ZXMuCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRp
dGlvbnMuSU5JVElBTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOwogICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0aW5nQXR0cmlidXRlKCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmluZyhjdXJzb3JP
bkVudGVyLCBjdXJzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09PSAi
YSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gfD0g
dGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9E
RSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
QV9OT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gXj0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
ICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmluZyhjdXJzb3JPbkVudGVyLCBjdXJzb3Ip
OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09PSAiaHJlZiIgfHwgdG9rZW4g
PT09ICJzcmMiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0
aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZOwotICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZSBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRp
b25zLkxJTktJRlkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25k
aXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5MSU5LSUZZOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhp
cy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5L
SUZZKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNv
bmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElOS0lGWTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtYXR0cmlidXRlLW5hbWUiOwogICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlVmFsdWUo
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gdGhpcy5fYXR0clZh
bHVlVG9rZW5UeXBlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzCmluZGV4IDc1YWJlZWUuLjcyNWM0ZjggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9r
ZW5pemVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2Ny
aXB0VG9rZW5pemVyLmpzCkBAIC0xLDQgKzEsNCBAQAotLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4x
My41IG9uIFRodSBKYW4gMjggMjA6NDk6MjMgMjAxMCAqLworLyogR2VuZXJhdGVkIGJ5IHJlMmMg
MC4xMy41IG9uIFRodSBGZWIgMjUgMTM6NTM6MzYgMjAxMCAqLwogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTY5LDYgKzY5
LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIgPSBmdW5jdGlvbigp
CiAgICAgdGhpcy5jYXNlX1JFR0VYID0gMTAwNTsKIAogICAgIHRoaXMuaW5pdGlhbENvbmRpdGlv
biA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLk5PRElWIH0KKyAgICB0aGlz
LmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsKIH0KIAogV2ViSW5zcGVjdG9yLlNv
dXJjZUphdmFTY3JpcHRUb2tlbml6ZXIucHJvdG90eXBlID0gewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIucmUyanMgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5yZTJq
cwppbmRleCAwNTNjODJmLi5hZTcxZWZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5yZTJqcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5yZTJqcwpAQCAtNjgs
NiArNjgsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplciA9IGZ1bmN0
aW9uKCkKICAgICB0aGlzLmNhc2VfUkVHRVggPSAxMDA1OwogCiAgICAgdGhpcy5pbml0aWFsQ29u
ZGl0aW9uID0geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlvbnMuTk9ESVYgfQorICAg
IHRoaXMuY29uZGl0aW9uID0gdGhpcy5pbml0aWFsQ29uZGl0aW9uOwogfQogCiBXZWJJbnNwZWN0
b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5wcm90b3R5cGUgPSB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5pemVyLmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVRva2VuaXplci5qcwppbmRleCBkNDk4MDI4Li4xODMy
ZDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5p
emVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VUb2tlbml6ZXIu
anMKQEAgLTQwLDI4ICs0MCwyNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLnByb3Rv
dHlwZSA9IHsKIAogICAgIHNldCBjb25kaXRpb24oY29uZGl0aW9uKQogICAgIHsKLSAgICAgICAg
dGhpcy5fbGV4Q29uZGl0aW9uID0gY29uZGl0aW9uLmxleENvbmRpdGlvbjsKLSAgICAgICAgdGhp
cy5fcGFyc2VDb25kaXRpb24gPSBjb25kaXRpb24ucGFyc2VDb25kaXRpb247CisgICAgICAgIHRo
aXMuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsKICAgICB9LAogCiAgICAgZ2V0IGNvbmRpdGlvbigp
CiAgICAgewotICAgICAgICByZXR1cm4geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlv
biwgcGFyc2VDb25kaXRpb246IHRoaXMuX3BhcnNlQ29uZGl0aW9uIH07CisgICAgICAgIHJldHVy
biB0aGlzLl9jb25kaXRpb247CiAgICAgfSwKIAotICAgIGhhc0NvbmRpdGlvbjogZnVuY3Rpb24o
Y29uZGl0aW9uKQorICAgIGdldCBzdWJUb2tlbml6ZXIoKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2xleENvbmRpdGlvbiA9PT0gY29uZGl0aW9uLmxleENvbmRpdGlvbiAmJiB0aGlzLl9w
YXJzZUNvbmRpdGlvbiA9PT0gY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uOworICAgICAgICByZXR1
cm4gdGhpcy5fY29uZGl0aW9uLnN1YlRva2VuaXplcjsKICAgICB9LAogCiAgICAgZ2V0TGV4Q29u
ZGl0aW9uOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGV4Q29uZGl0
aW9uOworICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb24ubGV4Q29uZGl0aW9uOwogICAgIH0s
CiAKICAgICBzZXRMZXhDb25kaXRpb246IGZ1bmN0aW9uKGxleENvbmRpdGlvbikKICAgICB7Ci0g
ICAgICAgIHRoaXMuX2xleENvbmRpdGlvbiA9IGxleENvbmRpdGlvbjsKKyAgICAgICAgdGhpcy5j
b25kaXRpb24ubGV4Q29uZGl0aW9uID0gbGV4Q29uZGl0aW9uOwogICAgIH0sCiAKICAgICBfY2hh
ckF0OiBmdW5jdGlvbihjdXJzb3IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwppbmRleCBjZjBiNTkwLi4wZjllYzJmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVy
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0
ZXIuanMKQEAgLTM0LDI0ICszNCwyNCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdo
dGVyID0gZnVuY3Rpb24odGV4dE1vZGVsLCBkYW1hZ2VDYWxsYmFjaykKICAgICB0aGlzLl90ZXh0
TW9kZWwgPSB0ZXh0TW9kZWw7CiAgICAgdGhpcy5fdG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNv
dXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9o
dG1sIik7CiAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2sgPSBkYW1hZ2VDYWxsYmFjazsKKyAgICB0
aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lID0gMDsKIH0KIAogV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JIaWdobGlnaHRlci5wcm90b3R5cGUgPSB7CiAgICAgc2V0IG1pbWVUeXBlKG1pbWVUeXBlKQog
ICAgIHsKICAgICAgICAgdmFyIHRva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6
ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIobWltZVR5cGUpOwotICAgICAg
ICBpZiAodG9rZW5pemVyKQorICAgICAgICBpZiAodG9rZW5pemVyKSB7CiAgICAgICAgICAgICB0
aGlzLl90b2tlbml6ZXIgPSB0b2tlbml6ZXI7CisgICAgICAgICAgICB0aGlzLl90b2tlbml6ZXJD
b25kaXRpb24gPSB0aGlzLl90b2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKKyAgICAgICAgfQog
ICAgIH0sCiAKICAgICBoaWdobGlnaHQ6IGZ1bmN0aW9uKGVuZExpbmUpCiAgICAgewogICAgICAg
ICAvLyBGaXJzdCBjaGVjayBpZiB3ZSBoYXZlIHdvcmsgdG8gZG8uCi0gICAgICAgIHZhciBzdGF0
ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUoZW5kTGluZSAtIDEsICJoaWdobGlnaHRl
ci1zdGF0ZSIpCi0gICAgICAgIGlmIChzdGF0ZSAmJiAhc3RhdGUub3V0T2ZEYXRlKSB7Ci0gICAg
ICAgICAgICAvLyBMYXN0IGxpbmUgaXMgaGlnaGxpZ2h0ZWQsIGp1c3QgZXhpdC4KKyAgICAgICAg
aWYgKGVuZExpbmUgPD0gdGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3JlcXVlc3RlZEVuZExpbmUgPSBlbmRM
aW5lOwogCkBAIC02MCwxOCArNjAsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdo
dGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIC8vIFdlIHdpbGwgYmUgaGlnaGxpZ2h0aW5nLiBGaXJzdCByZXdpbmQgdG8gdGhlIGxhc3Qg
aGlnaGxpZ2h0ZWQgbGluZSB0byBnYWluIHByb3BlciBoaWdobGlnaHRlciBjb250ZXh0LgotICAg
ICAgICB2YXIgc3RhcnRMaW5lID0gZW5kTGluZTsKLSAgICAgICAgd2hpbGUgKHN0YXJ0TGluZSA+
IDApIHsKLSAgICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1
dGUoc3RhcnRMaW5lIC0gMSwgImhpZ2hsaWdodGVyLXN0YXRlIik7Ci0gICAgICAgICAgICBpZiAo
c3RhdGUgJiYgIXN0YXRlLm91dE9mRGF0ZSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIHN0YXJ0TGluZS0tOwotICAgICAgICB9Ci0KICAgICAgICAgLy8gRG8gc21hbGwgaGln
aGxpZ2h0IHN5bmNocm9ub3VzbHkuIFRoaXMgd2lsbCBwcm92aWRlIGluc3RhbnQgaGlnaGxpZ2h0
IG9uIFBhZ2VVcCAvIFBhZ2VEb3duLCBnZW50bGUgc2Nyb2xsaW5nLgotICAgICAgICB2YXIgdG9M
aW5lID0gTWF0aC5taW4oc3RhcnRMaW5lICsgMjAwLCBlbmRMaW5lKTsKLSAgICAgICAgdGhpcy5f
aGlnaGxpZ2h0SW5DaHVua3Moc3RhcnRMaW5lLCB0b0xpbmUpOworICAgICAgICB2YXIgdG9MaW5l
ID0gTWF0aC5taW4odGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSArIDIwMCwgZW5kTGluZSk7Cisg
ICAgICAgIHRoaXMuX2hpZ2hsaWdodEluQ2h1bmtzKHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUs
IHRvTGluZSk7CiAKICAgICAgICAgLy8gU2NoZWR1bGUgdGFpbCBoaWdobGlnaHQgaWYgbmVjZXNz
YXJ5LgogICAgICAgICBpZiAoZW5kTGluZSA+IHRvTGluZSkKQEAgLTgzLDggKzc0LDcgQEAgV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRl
bGV0ZSB0aGlzLl9oaWdobGlnaHRUaW1lcjsKIAogICAgICAgICAvLyBGaXJzdCB3ZSBhbHdheXMg
Y2hlY2sgaWYgd2UgaGF2ZSB3b3JrIHRvIGRvLiBDb3VsZCBiZSB0aGF0IHVzZXIgc2Nyb2xsZWQg
YmFjayBhbmQgd2UgY2FuIHF1aXQuCi0gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2Rl
bC5nZXRBdHRyaWJ1dGUodGhpcy5fcmVxdWVzdGVkRW5kTGluZSAtIDEsICJoaWdobGlnaHRlci1z
dGF0ZSIpOwotICAgICAgICBpZiAoc3RhdGUgJiYgIXN0YXRlLm91dE9mRGF0ZSkKKyAgICAgICAg
aWYgKHRoaXMuX3JlcXVlc3RlZEVuZExpbmUgPD0gdGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAodGhpcy5fcmVxdWVzdGVkRW5kTGlu
ZSAhPT0gZW5kTGluZSkgewpAQCAtMTAyLDY4ICs5MiwzMCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdo
dFRpbWVyID0gc2V0VGltZW91dCh0aGlzLl9oaWdobGlnaHRJbkNodW5rcy5iaW5kKHRoaXMsIHRv
TGluZSwgdGhpcy5fcmVxdWVzdGVkRW5kTGluZSksIDEwKTsKICAgICB9LAogCi0gICAgdXBkYXRl
SGlnaGxpZ2h0OiBmdW5jdGlvbihzdGFydExpbmUsIGVuZExpbmUpCi0gICAgewotICAgICAgICAv
LyBTdGFydCBsaW5lIHdhcyBlZGl0ZWQsIHdlIHNob3VsZCBoaWdobGlnaHQgZXZlcnl0aGluZyB1
bnRpbCBlbmRMaW5lIHN5bmNocm9ub3VzbHkuCi0gICAgICAgIGlmIChzdGFydExpbmUpIHsKLSAg
ICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUoc3RhcnRM
aW5lIC0gMSwgImhpZ2hsaWdodGVyLXN0YXRlIik7Ci0gICAgICAgICAgICBpZiAoIXN0YXRlIHx8
IHN0YXRlLm91dE9mRGF0ZSkgewotICAgICAgICAgICAgICAgIC8vIEhpZ2hsaWdodGVyIGRpZCBu
b3QgcmVhY2ggdGhpcyBwb2ludCB5ZXQsIG5vdGhpbmcgdG8gdXBkYXRlLiBJdCB3aWxsIHJlYWNo
IGl0IG9uIHN1YnNlcXVlbnQgdGltZXIgdGljayBhbmQgZG8gdGhlIGpvYi4KLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmVz
dG9yZWQgPSB0aGlzLl9oaWdobGlnaHRMaW5lcyhzdGFydExpbmUsIGVuZExpbmUpOwotCi0gICAg
ICAgIC8vIFNldCBpbnZhbGlkYXRlZCBmbGFnIHRvIHRoZSBzdWJzZXF1ZW50IGxpbmVzLgotICAg
ICAgICBmb3IgKHZhciBpID0gZW5kTGluZTsgaSA8IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciBoaWdobGlnaHRlclN0YXRlID0gdGhpcy5fdGV4dE1v
ZGVsLmdldEF0dHJpYnV0ZShpLCAiaGlnaGxpZ2h0ZXItc3RhdGUiKTsKLSAgICAgICAgICAgIGlm
IChoaWdobGlnaHRlclN0YXRlKQotICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVyU3RhdGUub3V0
T2ZEYXRlID0gIXJlc3RvcmVkOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBfaGlnaGxpZ2h0TGluZXM6IGZ1bmN0aW9u
KHN0YXJ0TGluZSwgZW5kTGluZSkKICAgICB7Ci0gICAgICAgIC8vIFJlc3RvcmUgaGlnaGxpZ2h0
ZXIgY29udGV4dCB0YWtlbiBmcm9tIHByZXZpb3VzIGxpbmUuCi0gICAgICAgIHZhciBzdGF0ZSA9
IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUoc3RhcnRMaW5lIC0gMSwgImhpZ2hsaWdodGVy
LXN0YXRlIik7Ci0gICAgICAgIGlmIChzdGF0ZSkKLSAgICAgICAgICAgIHRoaXMuX3Rva2VuaXpl
ci5jb25kaXRpb24gPSBzdGF0ZS5wb3N0Q29uZGl0aW9uOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICB0aGlzLl90b2tlbml6ZXIuY29uZGl0aW9uID0gdGhpcy5fdG9rZW5pemVyLmluaXRpYWxD
b25kaXRpb247Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0TGluZTsgaSA8IGVuZExpbmU7
ICsraSkgewotICAgICAgICAgICAgc3RhdGUgPSB7fTsKLSAgICAgICAgICAgIHN0YXRlLnByZUNv
bmRpdGlvbiA9IHRoaXMuX3Rva2VuaXplci5jb25kaXRpb247Ci0gICAgICAgICAgICBzdGF0ZS5h
dHRyaWJ1dGVzID0ge307CisgICAgICAgIC8vIFRva2VuaXplciBpcyBzdGF0ZWxlc3MgYW5kIHJl
dXNlZCBhY2Nyb3NzIHZpZXdlcnMsIHJlc3RvcmUgaXRzIGNvbmRpdGlvbiBiZWZvcmUgaGlnaGxp
Z2h0IGFuZCBzYXZlIGl0IGFmdGVyLgorICAgICAgICB0aGlzLl90b2tlbml6ZXIuY29uZGl0aW9u
ID0gdGhpcy5fdG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICBmb3IgKHZhciBpID0gc3RhcnRM
aW5lOyBpIDwgZW5kTGluZTsgKytpKQorICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0TGluZShp
KTsKKyAgICAgICAgdGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSA9IGVuZExpbmU7CisgICAgICAg
IHRoaXMuX3Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX3Rva2VuaXplci5jb25kaXRpb247CiAK
LSAgICAgICAgICAgIHRoaXMuX2xleCh0aGlzLl90ZXh0TW9kZWwubGluZShpKSwgaSwgc3RhdGUu
YXR0cmlidXRlcyk7Ci0KLSAgICAgICAgICAgIHN0YXRlLnBvc3RDb25kaXRpb24gPSB0aGlzLl90
b2tlbml6ZXIuY29uZGl0aW9uOwotICAgICAgICAgICAgdGhpcy5fdGV4dE1vZGVsLnNldEF0dHJp
YnV0ZShpLCAiaGlnaGxpZ2h0ZXItc3RhdGUiLCBzdGF0ZSk7Ci0KLSAgICAgICAgICAgIHZhciBu
ZXh0TGluZVN0YXRlID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0ZShpICsgMSwgImhpZ2hs
aWdodGVyLXN0YXRlIik7Ci0gICAgICAgICAgICBpZiAobmV4dExpbmVTdGF0ZSAmJiB0aGlzLl90
b2tlbml6ZXIuaGFzQ29uZGl0aW9uKG5leHRMaW5lU3RhdGUucHJlQ29uZGl0aW9uKSkgewotICAg
ICAgICAgICAgICAgIC8vIEZvbGxvd2luZyBsaW5lcyBhcmUgdXAgdG8gZGF0ZSwgbm8gbmVlZCBy
ZS1oaWdobGlnaHQuCi0gICAgICAgICAgICAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2soc3RhcnRM
aW5lLCBpICsgMSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KICAgICAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2soc3RhcnRMaW5lLCBlbmRM
aW5lKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0sCiAKLSAgICBfbGV4OiBmdW5jdGlv
bihsaW5lLCBsaW5lTnVtYmVyLCBhdHRyaWJ1dGVzKSB7Ci0gICAgICAgICB0aGlzLl90b2tlbml6
ZXIubGluZSA9IGxpbmU7Ci0gICAgICAgICB2YXIgY29sdW1uID0gMDsKLSAgICAgICAgIGRvIHsK
LSAgICAgICAgICAgICB2YXIgbmV3Q29sdW1uID0gdGhpcy5fdG9rZW5pemVyLm5leHRUb2tlbihj
b2x1bW4pOwotICAgICAgICAgICAgIHZhciB0b2tlblR5cGUgPSB0aGlzLl90b2tlbml6ZXIudG9r
ZW5UeXBlOwotICAgICAgICAgICAgIGlmICh0b2tlblR5cGUpCi0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZXNbY29sdW1uXSA9IHsgbGVuZ3RoOiBuZXdDb2x1bW4gLSBjb2x1bW4sIHRva2VuVHlw
ZTogdG9rZW5UeXBlIH07Ci0gICAgICAgICAgICAgY29sdW1uID0gbmV3Q29sdW1uOwotICAgICAg
ICAgfSB3aGlsZSAoY29sdW1uIDwgbGluZS5sZW5ndGgpCisgICAgX2hpZ2hsaWdodExpbmU6IGZ1
bmN0aW9uKGxpbmVOdW1iZXIpIHsKKyAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwu
bGluZShsaW5lTnVtYmVyKTsKKyAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSB7fTsKKyAgICAgICAg
dGhpcy5fdG9rZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAgICB2YXIgY29sdW1uID0gMDsKKyAg
ICAgICAgZG8geworICAgICAgICAgICAgdmFyIG5ld0NvbHVtbiA9IHRoaXMuX3Rva2VuaXplci5u
ZXh0VG9rZW4oY29sdW1uKTsKKyAgICAgICAgICAgIHZhciB0b2tlblR5cGUgPSB0aGlzLl90b2tl
bml6ZXIudG9rZW5UeXBlOworICAgICAgICAgICAgaWYgKHRva2VuVHlwZSkKKyAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGVzW2NvbHVtbl0gPSB7IGxlbmd0aDogbmV3Q29sdW1uIC0gY29sdW1uLCB0
b2tlblR5cGU6IHRva2VuVHlwZSwgc3ViVG9rZW5pemVyOiB0aGlzLl90b2tlbml6ZXIuc3ViVG9r
ZW5pemVyIH07CisgICAgICAgICAgICBjb2x1bW4gPSBuZXdDb2x1bW47CisgICAgICAgIH0gd2hp
bGUgKGNvbHVtbiA8IGxpbmUubGVuZ3RoKQorICAgICAgICB0aGlzLl90ZXh0TW9kZWwuc2V0QXR0
cmlidXRlKGxpbmVOdW1iZXIsICJoaWdobGlnaHQiLCBhdHRyaWJ1dGVzKTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCmluZGV4IDliZTZhMDAuLjUw
Y2UzZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2Vy
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCkBAIC0z
MzAsMTYgKzMzMCwxNSBAQCBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90b3R5cGUgPSB7CiAg
ICAgX3BhaW50TGluZTogZnVuY3Rpb24obGluZVJvdywgbGluZU51bWJlcikKICAgICB7CiAgICAg
ICAgIHZhciBlbGVtZW50ID0gbGluZVJvdy5sYXN0Q2hpbGQ7Ci0gICAgICAgIHZhciBoaWdobGln
aHRlclN0YXRlID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0ZShsaW5lTnVtYmVyLCAiaGln
aGxpZ2h0ZXItc3RhdGUiKTsKLSAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGlu
ZShsaW5lTnVtYmVyKTsKLQotICAgICAgICBpZiAoIWhpZ2hsaWdodGVyU3RhdGUpIHsKKyAgICAg
ICAgdmFyIGhpZ2hsaWdodCA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUobGluZU51bWJl
ciwgImhpZ2hsaWdodCIpOworICAgICAgICBpZiAoIWhpZ2hsaWdodCkgewogICAgICAgICAgICAg
aWYgKHRoaXMuX3JhbmdlVG9NYXJrICYmIHRoaXMuX3JhbmdlVG9NYXJrLnN0YXJ0TGluZSA9PT0g
bGluZU51bWJlcikKICAgICAgICAgICAgICAgICB0aGlzLl9tYXJrZWRSYW5nZUVsZW1lbnQgPSBo
aWdobGlnaHRTZWFyY2hSZXN1bHQoZWxlbWVudCwgdGhpcy5fcmFuZ2VUb01hcmsuc3RhcnRDb2x1
bW4sIHRoaXMuX3JhbmdlVG9NYXJrLmVuZENvbHVtbiAtIHRoaXMuX3JhbmdlVG9NYXJrLnN0YXJ0
Q29sdW1uKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGVsZW1l
bnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwu
bGluZShsaW5lTnVtYmVyKTsKIAogICAgICAgICB2YXIgcGxhaW5UZXh0U3RhcnQgPSAtMTsKICAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDspIHsKQEAgLTM0OCw3ICszNDcs
NyBAQCBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAg
ICAgcGxhaW5UZXh0U3RhcnQgPSBqOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZSA9IGhpZ2hsaWdodGVyU3RhdGUgJiYgaGln
aGxpZ2h0ZXJTdGF0ZS5hdHRyaWJ1dGVzW2pdOworICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZSA9
IGhpZ2hsaWdodFtqXTsKICAgICAgICAgICAgIGlmICghYXR0cmlidXRlIHx8ICFhdHRyaWJ1dGUu
dG9rZW5UeXBlKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dFN0YXJ0ID09PSAtMSkK
ICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0U3RhcnQgPSBqOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49476</attachid>
            <date>2010-02-25 04:55:19 -0800</date>
            <delta_ts>2010-02-25 07:07:51 -0800</delta_ts>
            <desc>[PATCH] Proposed change. (Same with updated expectations for HTML test)</desc>
            <filename>highlight_html</filename>
            <type>text/plain</type>
            <size>54383</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMmY2MTUxLi5kZjBlZGE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTAtMDIt
MjUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogZXZhbHVhdGUtb24taG92ZXIgZG9lcyBub3Qgd29yayBvbiBIVE1MIGZpbGVz
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTM3
OAorCisgICAgICAgICogaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtaHRtbC1leHBlY3RlZC50
eHQ6CisKIDIwMTAtMDItMjQgIENocmlzIEV2YW5zICA8Y2V2YW5zQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggNTgx
N2MzMC4uYTdlZjIyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1o
aWdobGlnaHQtaHRtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5
bnRheC1oaWdobGlnaHQtaHRtbC1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw2IEBAIFRlc3RzIHRo
YXQgU291cmNlSFRNTFRva2VuaXplciBkZXRlY3RzIHRoZSB0b2tlbnMuCiA8dGFibGUgY2VsbHNw
YWNpbmc9IjAiIGNlbGxwYWRkaW5nPScwJz46IHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10
YWcsKix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS12
YWx1ZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lLCosd2Via2l0LWh0bWwtYXR0cmlidXRl
LXZhbHVlLHdlYmtpdC1odG1sLXRhZwogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RU
RCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0
L2xvb3NlLmR0ZCI+OiB3ZWJraXQtaHRtbC1kb2N0eXBlLHdlYmtpdC1odG1sLWRvY3R5cGUsd2Vi
a2l0LWh0bWwtZG9jdHlwZQogPCEtLWRpdj48ZGl2IGZvb2Jhci0tPjogd2Via2l0LWh0bWwtY29t
bWVudAotPHNjcmlwdD48L3NjcmlwdD48IS0tZGl2LS0+OiB3ZWJraXQtaHRtbC10YWcsKix3ZWJr
aXQtaHRtbC10YWcsd2Via2l0LWh0bWwtdGFnLHdlYmtpdC1odG1sLWNvbW1lbnQKLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5kb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPjwvJyArICdzY3JpcHQ+Jyk7PC9zY3JpcHQ+OiB3ZWJraXQtaHRtbC10YWcs
Kix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1
ZSwqLHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcKKzxzY3JpcHQ+PC9zY3JpcHQ+PCEt
LWRpdi0tPjogd2Via2l0LWh0bWwtdGFnLHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcs
d2Via2l0LWh0bWwtdGFnLHdlYmtpdC1odG1sLWNvbW1lbnQKKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij5kb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PjwvJyArICdzY3JpcHQ+Jyk7PC9zY3JpcHQ+OiB3ZWJraXQtaHRtbC10YWcsKix3ZWJraXQtaHRt
bC1hdHRyaWJ1dGUtbmFtZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSx3ZWJraXQtaHRt
bC10YWcsd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCwq
LHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqLHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqLHdl
YmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NDhiY2JlLi4yYTlmZWZiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQxIEBACisyMDEwLTAyLTI1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGV2YWx1YXRlLW9uLWhvdmVyIGRvZXMgbm90IHdvcmsgb24gSFRNTCBmaWxlcy4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNzgK
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLnJlMmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5zZXQgbGluZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuX2lzRXhwZWN0
aW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVy
LnByb3RvdHlwZS5faXNFeHBlY3RpbmdBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuX3NldEV4cGVjdGluZ0F0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUu
X3NldEV4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5fYXR0clZhbHVlVG9rZW5UeXBlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5uZXh0VG9rZW4pOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqczoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLnJl
MmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5pemVyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5wcm90b3R5cGUuc2V0IGNvbmRp
dGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLnByb3RvdHlwZS5n
ZXQgY29uZGl0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIucHJv
dG90eXBlLmdldCBzdWJUb2tlbml6ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVRv
a2VuaXplci5wcm90b3R5cGUuZ2V0TGV4Q29uZGl0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Tb3VyY2VUb2tlbml6ZXIucHJvdG90eXBlLnNldExleENvbmRpdGlvbik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlLnNldCBtaW1lVHlwZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZS5oaWdobGlnaHQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90b3R5cGUu
X2hpZ2hsaWdodEluQ2h1bmtzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGln
aGxpZ2h0ZXIucHJvdG90eXBlLl9oaWdobGlnaHRMaW5lcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZS5faGlnaGxpZ2h0TGluZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLl9wYWludExpbmUpOgorCiAyMDEwLTAyLTI0ICBB
bnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUNTU1Rva2VuaXplci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VDU1NUb2tlbml6ZXIuanMKaW5kZXggNTk5Y2ZiMy4uMGQ4ZTk5YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5qcworKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLmpzCkBAIC0xLDQgKzEs
NCBAQAotLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBKYW4gMjggMjA6NDk6MjIg
MjAxMCAqLworLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBGZWIgMjUgMTU6NTM6
MDYgMjAxMCAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKQEAgLTk5LDM1ICs5OSwzNSBAQCBXZWJJbnNwZWN0b3IuU291cmNl
Q1NTVG9rZW5pemVyID0gZnVuY3Rpb24oKQogICAgIAogICAgIHRoaXMuX3ZhbHVlS2V5d29yZHMg
PSBbCiAgICAgICAgICJhYm92ZSIsICJhYnNvbHV0ZSIsICJhY3RpdmVib3JkZXIiLCAiYWN0aXZl
Y2FwdGlvbiIsICJhZmFyIiwgImFmdGVyLXdoaXRlLXNwYWNlIiwgImFoZWFkIiwgImFsaWFzIiwg
ImFsbCIsICJhbGwtc2Nyb2xsIiwKLSAgICAgICAgImFsdGVybmF0ZSIsICJhbHdheXMiLCJhbWhh
cmljIiwgImFtaGFyaWMtYWJlZ2VkZSIsICJhbnRpYWxpYXNlZCIsICJhcHB3b3Jrc3BhY2UiLCAi
YXF1YSIsICJhcm1lbmlhbiIsICJhdXRvIiwgImF2b2lkIiwKLSAgICAgICAgImJhY2tncm91bmQi
LCAiYmFja3dhcmRzIiwgImJhc2VsaW5lIiwgImJlbG93IiwgImJpZGktb3ZlcnJpZGUiLCAiYmxh
Y2siLCAiYmxpbmsiLCAiYmxvY2siLCAiYmxvY2stYXhpcyIsICJibHVlIiwgImJvbGQiLAotICAg
ICAgICAiYm9sZGVyIiwgImJvcmRlciIsICJib3JkZXItYm94IiwgImJvdGgiLCAiYm90dG9tIiwg
ImJyZWFrLWFsbCIsICJicmVhay13b3JkIiwgImJ1dHRvbiIsICJidXR0b24tYmV2ZWwiLCAiYnV0
dG9uZmFjZSIsCi0gICAgICAgICJidXR0b25oaWdobGlnaHQiLCAiYnV0dG9uc2hhZG93IiwgImJ1
dHRvbnRleHQiLCAiY2FwaXRhbGl6ZSIsICJjYXBzLWxvY2staW5kaWNhdG9yIiwgImNhcHRpb24i
LCAiY2FwdGlvbnRleHQiLCAiY2FyZXQiLCAiY2VsbCIsCi0gICAgICAgICJjZW50ZXIiLCAiY2hl
Y2tib3giLCAiY2lyY2xlIiwgImNqay1lYXJ0aGx5LWJyYW5jaCIsICJjamstaGVhdmVubHktc3Rl
bSIsICJjamstaWRlb2dyYXBoaWMiLCAiY2xlYXIiLCAiY2xpcCIsICJjbG9zZS1xdW90ZSIsCi0g
ICAgICAgICJjb2wtcmVzaXplIiwgImNvbGxhcHNlIiwgImNvbXBhY3QiLCAiY29uZGVuc2VkIiwg
ImNvbnRhaW4iLCAiY29udGVudCIsICJjb250ZW50LWJveCIsICJjb250ZXh0LW1lbnUiLCAiY29u
dGludW91cyIsICJjb3B5IiwKLSAgICAgICAgImNvdmVyIiwgImNyb3AiLCAiY3Jvc3MiLCAiY3Jv
c3NoYWlyIiwgImN1cnJlbnRjb2xvciIsICJjdXJzaXZlIiwgImRhc2hlZCIsICJkZWNpbWFsIiwg
ImRlY2ltYWwtbGVhZGluZy16ZXJvIiwgImRlZmF1bHQiLAotICAgICAgICAiZGVmYXVsdC1idXR0
b24iLCAiZGVzdGluYXRpb24tYXRvcCIsICJkZXN0aW5hdGlvbi1pbiIsICJkZXN0aW5hdGlvbi1v
dXQiLCAiZGVzdGluYXRpb24tb3ZlciIsICJkaXNjIiwgImRpc2NhcmQiLCAiZG9jdW1lbnQiLAor
ICAgICAgICAiYWx0ZXJuYXRlIiwgImFsd2F5cyIsImFtaGFyaWMiLCAiYW1oYXJpYy1hYmVnZWRl
IiwgImFudGlhbGlhc2VkIiwgImFwcHdvcmtzcGFjZSIsICJhcXVhIiwgImFyYWJpYy1pbmRpYyIs
ICJhcm1lbmlhbiIsCisgICAgICAgICJhdXRvIiwgImF2b2lkIiwgImJhY2tncm91bmQiLCAiYmFj
a3dhcmRzIiwgImJhc2VsaW5lIiwgImJlbG93IiwgImJpZGktb3ZlcnJpZGUiLCAiYmluYXJ5Iiwg
ImJlbmdhbGkiLCAiYmxhY2siLCAiYmxpbmsiLAorICAgICAgICAiYmxvY2siLCAiYmxvY2stYXhp
cyIsICJibHVlIiwgImJvbGQiLCAiYm9sZGVyIiwgImJvcmRlciIsICJib3JkZXItYm94IiwgImJv
dGgiLCAiYm90dG9tIiwgImJyZWFrLWFsbCIsICJicmVhay13b3JkIiwgImJ1dHRvbiIsCisgICAg
ICAgICJidXR0b24tYmV2ZWwiLCAiYnV0dG9uZmFjZSIsICJidXR0b25oaWdobGlnaHQiLCAiYnV0
dG9uc2hhZG93IiwgImJ1dHRvbnRleHQiLCAiY2FtYm9kaWFuIiwgImNhcGl0YWxpemUiLCAiY2Fw
cy1sb2NrLWluZGljYXRvciIsCisgICAgICAgICJjYXB0aW9uIiwgImNhcHRpb250ZXh0IiwgImNh
cmV0IiwgImNlbGwiLCAiY2VudGVyIiwgImNoZWNrYm94IiwgImNpcmNsZSIsICJjamstZWFydGhs
eS1icmFuY2giLCAiY2prLWhlYXZlbmx5LXN0ZW0iLCAiY2prLWlkZW9ncmFwaGljIiwKKyAgICAg
ICAgImNsZWFyIiwgImNsaXAiLCAiY2xvc2UtcXVvdGUiLCAiY29sLXJlc2l6ZSIsICJjb2xsYXBz
ZSIsICJjb21wYWN0IiwgImNvbmRlbnNlZCIsICJjb250YWluIiwgImNvbnRlbnQiLCAiY29udGVu
dC1ib3giLCAiY29udGV4dC1tZW51IiwKKyAgICAgICAgImNvbnRpbnVvdXMiLCAiY29weSIsICJj
b3ZlciIsICJjcm9wIiwgImNyb3NzIiwgImNyb3NzaGFpciIsICJjdXJyZW50Y29sb3IiLCAiY3Vy
c2l2ZSIsICJkYXNoZWQiLCAiZGVjaW1hbCIsICJkZWNpbWFsLWxlYWRpbmctemVybyIsICJkZWZh
dWx0IiwKKyAgICAgICAgImRlZmF1bHQtYnV0dG9uIiwgImRlc3RpbmF0aW9uLWF0b3AiLCAiZGVz
dGluYXRpb24taW4iLCAiZGVzdGluYXRpb24tb3V0IiwgImRlc3RpbmF0aW9uLW92ZXIiLCAiZGV2
YW5hZ2FyaSIsICJkaXNjIiwgImRpc2NhcmQiLCAiZG9jdW1lbnQiLAogICAgICAgICAiZG90LWRh
c2giLCAiZG90LWRvdC1kYXNoIiwgImRvdHRlZCIsICJkb3VibGUiLCAiZG93biIsICJlLXJlc2l6
ZSIsICJlYXNlIiwgImVhc2UtaW4iLCAiZWFzZS1pbi1vdXQiLCAiZWFzZS1vdXQiLCAiZWxlbWVu
dCIsCiAgICAgICAgICJlbGxpcHNpcyIsICJlbWJlZCIsICJlbmQiLCAiZXRoaW9waWMiLCAiZXRo
aW9waWMtYWJlZ2VkZSIsICJldGhpb3BpYy1hYmVnZWRlLWFtLWV0IiwgImV0aGlvcGljLWFiZWdl
ZGUtZ2V6IiwKICAgICAgICAgImV0aGlvcGljLWFiZWdlZGUtdGktZXIiLCAiZXRoaW9waWMtYWJl
Z2VkZS10aS1ldCIsICJldGhpb3BpYy1oYWxlaGFtZS1hYS1lciIsICJldGhpb3BpYy1oYWxlaGFt
ZS1hYS1ldCIsCiAgICAgICAgICJldGhpb3BpYy1oYWxlaGFtZS1hbS1ldCIsICJldGhpb3BpYy1o
YWxlaGFtZS1nZXoiLCAiZXRoaW9waWMtaGFsZWhhbWUtb20tZXQiLCAiZXRoaW9waWMtaGFsZWhh
bWUtc2lkLWV0IiwKICAgICAgICAgImV0aGlvcGljLWhhbGVoYW1lLXNvLWV0IiwgImV0aGlvcGlj
LWhhbGVoYW1lLXRpLWVyIiwgImV0aGlvcGljLWhhbGVoYW1lLXRpLWV0IiwgImV0aGlvcGljLWhh
bGVoYW1lLXRpZyIsICJldy1yZXNpemUiLCAiZXhwYW5kZWQiLAogICAgICAgICAiZXh0cmEtY29u
ZGVuc2VkIiwgImV4dHJhLWV4cGFuZGVkIiwgImZhbnRhc3kiLCAiZmFzdCIsICJmaWxsIiwgImZp
eGVkIiwgImZsYXQiLCAiZm9yd2FyZHMiLCAiZnJvbSIsICJmdWNoc2lhIiwgImdlb21ldHJpY1By
ZWNpc2lvbiIsCi0gICAgICAgICJnZW9yZ2lhbiIsICJncmF5IiwgImdyYXl0ZXh0IiwgImdyZWVu
IiwgImdyZXkiLCAiZ3Jvb3ZlIiwgImhhbmQiLCAiaGFuZ3VsIiwgImhhbmd1bC1jb25zb25hbnQi
LCAiaGVicmV3IiwgImhlbHAiLCAiaGlkZGVuIiwgImhpZGUiLAotICAgICAgICAiaGlnaGVyIiwg
ImhpZ2hsaWdodCIsICJoaWdobGlnaHR0ZXh0IiwgImhpcmFnYW5hIiwgImhpcmFnYW5hLWlyb2hh
IiwgImhvcml6b250YWwiLCAiaHNsIiwgImhzbGEiLCAiaWNvbiIsICJpZ25vcmUiLAorICAgICAg
ICAiZ2VvcmdpYW4iLCAiZ3JheSIsICJncmF5dGV4dCIsICJncmVlbiIsICJncmV5IiwgImdyb292
ZSIsICJndWphcmF0aSIsICJndXJtdWtoaSIsICJoYW5kIiwgImhhbmd1bCIsICJoYW5ndWwtY29u
c29uYW50IiwgImhlYnJldyIsICJoZWxwIiwKKyAgICAgICAgImhpZGRlbiIsICJoaWRlIiwgImhp
Z2hlciIsICJoaWdobGlnaHQiLCAiaGlnaGxpZ2h0dGV4dCIsICJoaXJhZ2FuYSIsICJoaXJhZ2Fu
YS1pcm9oYSIsICJob3Jpem9udGFsIiwgImhzbCIsICJoc2xhIiwgImljb24iLCAiaWdub3JlIiwK
ICAgICAgICAgImluYWN0aXZlYm9yZGVyIiwgImluYWN0aXZlY2FwdGlvbiIsICJpbmFjdGl2ZWNh
cHRpb250ZXh0IiwgImluZmluaXRlIiwgImluZm9iYWNrZ3JvdW5kIiwgImluZm90ZXh0IiwgImlu
aGVyaXQiLCAiaW5pdGlhbCIsICJpbmxpbmUiLAotICAgICAgICAiaW5saW5lLWF4aXMiLCAiaW5s
aW5lLWJsb2NrIiwgImlubGluZS10YWJsZSIsICJpbnNldCIsICJpbnNpZGUiLCAiaW50cmluc2lj
IiwgImludmVydCIsICJpdGFsaWMiLCAianVzdGlmeSIsICJrYXRha2FuYSIsCi0gICAgICAgICJr
YXRha2FuYS1pcm9oYSIsICJsYW5kc2NhcGUiLCAibGFyZ2UiLCAibGFyZ2VyIiwgImxlZnQiLCAi
bGV2ZWwiLCAibGlnaHRlciIsICJsaW1lIiwgImxpbmUtdGhyb3VnaCIsICJsaW5lYXIiLCAibGlu
ZXMiLAotICAgICAgICAibGlzdC1idXR0b24iLCAibGlzdC1pdGVtIiwgImxpc3Rib3giLCAibGlz
dGl0ZW0iLCAibG9jYWwiLCAibG9naWNhbCIsICJsb3VkIiwgImxvd2VyIiwgImxvd2VyLWFscGhh
IiwgImxvd2VyLWdyZWVrIiwgImxvd2VyLWxhdGluIiwKLSAgICAgICAgImxvd2VyLW5vcndlZ2lh
biIsICJsb3dlci1yb21hbiIsICJsb3dlcmNhc2UiLCAibHRyIiwgIm1hcm9vbiIsICJtYXRjaCIs
ICJtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5kIiwgIm1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5
IiwKKyAgICAgICAgImlubGluZS1heGlzIiwgImlubGluZS1ibG9jayIsICJpbmxpbmUtdGFibGUi
LCAiaW5zZXQiLCAiaW5zaWRlIiwgImludHJpbnNpYyIsICJpbnZlcnQiLCAiaXRhbGljIiwgImp1
c3RpZnkiLCAia2FubmFkYSIsICJrYXRha2FuYSIsCisgICAgICAgICJrYXRha2FuYS1pcm9oYSIs
ICJraG1lciIsICJsYW5kc2NhcGUiLCAibGFvIiwgImxhcmdlIiwgImxhcmdlciIsICJsZWZ0Iiwg
ImxldmVsIiwgImxpZ2h0ZXIiLCAibGltZSIsICJsaW5lLXRocm91Z2giLCAibGluZWFyIiwgImxp
bmVzIiwKKyAgICAgICAgImxpc3QtYnV0dG9uIiwgImxpc3QtaXRlbSIsICJsaXN0Ym94IiwgImxp
c3RpdGVtIiwgImxvY2FsIiwgImxvZ2ljYWwiLCAibG91ZCIsICJsb3dlciIsICJsb3dlci1hbHBo
YSIsICJsb3dlci1ncmVlayIsICJsb3dlci1oZXhhZGVjaW1hbCIsICJsb3dlci1sYXRpbiIsCisg
ICAgICAgICJsb3dlci1ub3J3ZWdpYW4iLCAibG93ZXItcm9tYW4iLCAibG93ZXJjYXNlIiwgImx0
ciIsICJtYWxheWFsYW0iLCAibWFyb29uIiwgIm1hdGNoIiwgIm1lZGlhLWNvbnRyb2xzLWJhY2tn
cm91bmQiLCAibWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXkiLAogICAgICAgICAibWVkaWEtZnVs
bHNjcmVlbi1idXR0b24iLCAibWVkaWEtbXV0ZS1idXR0b24iLCAibWVkaWEtcGxheS1idXR0b24i
LCAibWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsICJtZWRpYS1yZXdpbmQtYnV0dG9u
IiwKICAgICAgICAgIm1lZGlhLXNlZWstYmFjay1idXR0b24iLCAibWVkaWEtc2Vlay1mb3J3YXJk
LWJ1dHRvbiIsICJtZWRpYS1zbGlkZXIiLCAibWVkaWEtc2xpZGVydGh1bWIiLCAibWVkaWEtdGlt
ZS1yZW1haW5pbmctZGlzcGxheSIsCiAgICAgICAgICJtZWRpYS12b2x1bWUtc2xpZGVyIiwgIm1l
ZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwgIm1lZGlhLXZvbHVtZS1zbGlkZXJ0aHVtYiIs
ICJtZWRpdW0iLCAibWVudSIsICJtZW51bGlzdCIsICJtZW51bGlzdC1idXR0b24iLAotICAgICAg
ICAibWVudWxpc3QtdGV4dCIsICJtZW51bGlzdC10ZXh0ZmllbGQiLCAibWVudXRleHQiLCAibWVz
c2FnZS1ib3giLCAibWlkZGxlIiwgIm1pbi1pbnRyaW5zaWMiLCAibWl4IiwgIm1vbm9zcGFjZSIs
ICJtb3ZlIiwgIm11bHRpcGxlIiwKLSAgICAgICAgIm4tcmVzaXplIiwgIm5hcnJvd2VyIiwgIm5h
dnkiLCAibmUtcmVzaXplIiwgIm5lc3ctcmVzaXplIiwgIm5vLWNsb3NlLXF1b3RlIiwgIm5vLWRy
b3AiLCAibm8tb3Blbi1xdW90ZSIsICJuby1yZXBlYXQiLCAibm9uZSIsCi0gICAgICAgICJub3Jt
YWwiLCAibm90LWFsbG93ZWQiLCAibm93cmFwIiwgIm5zLXJlc2l6ZSIsICJudy1yZXNpemUiLCAi
bndzZS1yZXNpemUiLCAib2JsaXF1ZSIsICJvbGl2ZSIsICJvcGVuLXF1b3RlIiwgIm9wdGltaXpl
TGVnaWJpbGl0eSIsCi0gICAgICAgICJvcHRpbWl6ZVNwZWVkIiwgIm9yYW5nZSIsICJvcm9tbyIs
ICJvdXRzZXQiLCAib3V0c2lkZSIsICJvdmVybGF5IiwgIm92ZXJsaW5lIiwgInBhZGRpbmciLCAi
cGFkZGluZy1ib3giLCAicGFpbnRlZCIsICJwYXVzZWQiLAotICAgICAgICAicGx1cy1kYXJrZXIi
LCAicGx1cy1saWdodGVyIiwgInBvaW50ZXIiLCAicG9ydHJhaXQiLCAicHJlIiwgInByZS1saW5l
IiwgInByZS13cmFwIiwgInByZXNlcnZlLTNkIiwgInByb2dyZXNzIiwgInB1cnBsZSIsCisgICAg
ICAgICJtZW51bGlzdC10ZXh0IiwgIm1lbnVsaXN0LXRleHRmaWVsZCIsICJtZW51dGV4dCIsICJt
ZXNzYWdlLWJveCIsICJtaWRkbGUiLCAibWluLWludHJpbnNpYyIsICJtaXgiLCAibW9uZ29saWFu
IiwgIm1vbm9zcGFjZSIsICJtb3ZlIiwgIm11bHRpcGxlIiwKKyAgICAgICAgIm15YW5tYXIiLCAi
bi1yZXNpemUiLCAibmFycm93ZXIiLCAibmF2eSIsICJuZS1yZXNpemUiLCAibmVzdy1yZXNpemUi
LCAibm8tY2xvc2UtcXVvdGUiLCAibm8tZHJvcCIsICJuby1vcGVuLXF1b3RlIiwgIm5vLXJlcGVh
dCIsICJub25lIiwKKyAgICAgICAgIm5vcm1hbCIsICJub3QtYWxsb3dlZCIsICJub3dyYXAiLCAi
bnMtcmVzaXplIiwgIm53LXJlc2l6ZSIsICJud3NlLXJlc2l6ZSIsICJvYmxpcXVlIiwgIm9jdGFs
IiwgIm9saXZlIiwgIm9wZW4tcXVvdGUiLCAib3B0aW1pemVMZWdpYmlsaXR5IiwKKyAgICAgICAg
Im9wdGltaXplU3BlZWQiLCAib3JhbmdlIiwgIm9yaXlhIiwgIm9yb21vIiwgIm91dHNldCIsICJv
dXRzaWRlIiwgIm92ZXJsYXkiLCAib3ZlcmxpbmUiLCAicGFkZGluZyIsICJwYWRkaW5nLWJveCIs
ICJwYWludGVkIiwgInBhdXNlZCIsCisgICAgICAgICJwZXJzaWFuIiwgInBsdXMtZGFya2VyIiwg
InBsdXMtbGlnaHRlciIsICJwb2ludGVyIiwgInBvcnRyYWl0IiwgInByZSIsICJwcmUtbGluZSIs
ICJwcmUtd3JhcCIsICJwcmVzZXJ2ZS0zZCIsICJwcm9ncmVzcyIsICJwdXJwbGUiLAogICAgICAg
ICAicHVzaC1idXR0b24iLCAicmFkaW8iLCAicmVhZC1vbmx5IiwgInJlYWQtd3JpdGUiLCAicmVh
ZC13cml0ZS1wbGFpbnRleHQtb25seSIsICJyZWQiLCAicmVsYXRpdmUiLCAicmVwZWF0IiwgInJl
cGVhdC14IiwKICAgICAgICAgInJlcGVhdC15IiwgInJlc2V0IiwgInJldmVyc2UiLCAicmdiIiwg
InJnYmEiLCAicmlkZ2UiLCAicmlnaHQiLCAicm91bmQiLCAicm93LXJlc2l6ZSIsICJydGwiLCAi
cnVuLWluIiwgInJ1bm5pbmciLCAicy1yZXNpemUiLCAic2Fucy1zZXJpZiIsCiAgICAgICAgICJz
Y3JvbGwiLCAic2Nyb2xsYmFyIiwgInNlLXJlc2l6ZSIsICJzZWFyY2hmaWVsZCIsICJzZWFyY2hm
aWVsZC1jYW5jZWwtYnV0dG9uIiwgInNlYXJjaGZpZWxkLWRlY29yYXRpb24iLCAic2VhcmNoZmll
bGQtcmVzdWx0cy1idXR0b24iLApAQCAtMTM2LDE1ICsxMzYsMTUgQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZUNTU1Rva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICAgICAgInNtYWxsIiwgInNtYWxsLWNh
cHMiLCAic21hbGwtY2FwdGlvbiIsICJzbWFsbGVyIiwgInNvbGlkIiwgInNvbWFsaSIsICJzb3Vy
Y2UtYXRvcCIsICJzb3VyY2UtaW4iLCAic291cmNlLW91dCIsICJzb3VyY2Utb3ZlciIsCiAgICAg
ICAgICJzcGFjZSIsICJzcXVhcmUiLCAic3F1YXJlLWJ1dHRvbiIsICJzdGFydCIsICJzdGF0aWMi
LCAic3RhdHVzLWJhciIsICJzdHJldGNoIiwgInN0cm9rZSIsICJzdWIiLCAic3VicGl4ZWwtYW50
aWFsaWFzZWQiLCAic3VwZXIiLAogICAgICAgICAic3ctcmVzaXplIiwgInRhYmxlIiwgInRhYmxl
LWNhcHRpb24iLCAidGFibGUtY2VsbCIsICJ0YWJsZS1jb2x1bW4iLCAidGFibGUtY29sdW1uLWdy
b3VwIiwgInRhYmxlLWZvb3Rlci1ncm91cCIsICJ0YWJsZS1oZWFkZXItZ3JvdXAiLAotICAgICAg
ICAidGFibGUtcm93IiwgInRhYmxlLXJvdy1ncm91cCIsICJ0ZWFsIiwgInRleHQiLCAidGV4dC1i
b3R0b20iLCAidGV4dC10b3AiLCAidGV4dGFyZWEiLCAidGV4dGZpZWxkIiwgInRoaWNrIiwgInRo
aW4iLCAidGhyZWVkZGFya3NoYWRvdyIsCi0gICAgICAgICJ0aHJlZWRmYWNlIiwgInRocmVlZGhp
Z2hsaWdodCIsICJ0aHJlZWRsaWdodHNoYWRvdyIsICJ0aHJlZWRzaGFkb3ciLCAidGlncmUiLCAi
dGlncmlueWEtZXIiLCAidGlncmlueWEtZXItYWJlZ2VkZSIsICJ0aWdyaW55YS1ldCIsCi0gICAg
ICAgICJ0aWdyaW55YS1ldC1hYmVnZWRlIiwgInRvIiwgInRvcCIsICJ0cmFuc3BhcmVudCIsICJ1
bHRyYS1jb25kZW5zZWQiLCAidWx0cmEtZXhwYW5kZWQiLCAidW5kZXJsaW5lIiwgInVwIiwgInVw
cGVyLWFscGhhIiwgInVwcGVyLWdyZWVrIiwKLSAgICAgICAgInVwcGVyLWxhdGluIiwgInVwcGVy
LW5vcndlZ2lhbiIsICJ1cHBlci1yb21hbiIsICJ1cHBlcmNhc2UiLCAidXJsIiwgInZlcnRpY2Fs
IiwgInZlcnRpY2FsLXRleHQiLCAidmlzaWJsZSIsICJ2aXNpYmxlRmlsbCIsICJ2aXNpYmxlUGFp
bnRlZCIsCi0gICAgICAgICJ2aXNpYmxlU3Ryb2tlIiwgInZpc3VhbCIsICJ3LXJlc2l6ZSIsICJ3
YWl0IiwgIndhdmUiLCAid2hpdGUiLCAid2lkZXIiLCAid2luZG93IiwgIndpbmRvd2ZyYW1lIiwg
IndpbmRvd3RleHQiLCAieC1sYXJnZSIsICJ4LXNtYWxsIiwKLSAgICAgICAgInhvciIsICJ4eC1s
YXJnZSIsICJ4eC1zbWFsbCIsICJ5ZWxsb3ciLCAiLXdhcC1tYXJxdWVlIiwgIi13ZWJraXQtYWN0
aXZlbGluayIsICItd2Via2l0LWF1dG8iLCAiLXdlYmtpdC1iYXNlbGluZS1taWRkbGUiLCAiLXdl
YmtpdC1ib2R5IiwKLSAgICAgICAgIi13ZWJraXQtYm94IiwgIi13ZWJraXQtY2VudGVyIiwgIi13
ZWJraXQtY29udHJvbCIsICItd2Via2l0LWZvY3VzLXJpbmctY29sb3IiLCAiLXdlYmtpdC1ncmFi
IiwgIi13ZWJraXQtZ3JhYmJpbmciLCAiLXdlYmtpdC1ncmFkaWVudCIsICItd2Via2l0LWlubGlu
ZS1ib3giLAotICAgICAgICAiLXdlYmtpdC1sZWZ0IiwgIi13ZWJraXQtbGluayIsICItd2Via2l0
LW1hcnF1ZWUiLCAiLXdlYmtpdC1taW5pLWNvbnRyb2wiLCAiLXdlYmtpdC1ub3dyYXAiLCAiLXdl
YmtpdC1yaWdodCIsICItd2Via2l0LXNtYWxsLWNvbnRyb2wiLAotICAgICAgICAiLXdlYmtpdC10
ZXh0IiwgIi13ZWJraXQteHh4LWxhcmdlIiwgIi13ZWJraXQtem9vbS1pbiIsICItd2Via2l0LXpv
b20tb3V0IiwKKyAgICAgICAgInRhYmxlLXJvdyIsICJ0YWJsZS1yb3ctZ3JvdXAiLCAidGVhbCIs
ICJ0ZWx1Z3UiLCAidGV4dCIsICJ0ZXh0LWJvdHRvbSIsICJ0ZXh0LXRvcCIsICJ0ZXh0YXJlYSIs
ICJ0ZXh0ZmllbGQiLCAidGhhaSIsICJ0aGljayIsICJ0aGluIiwKKyAgICAgICAgInRocmVlZGRh
cmtzaGFkb3ciLCAidGhyZWVkZmFjZSIsICJ0aHJlZWRoaWdobGlnaHQiLCAidGhyZWVkbGlnaHRz
aGFkb3ciLCAidGhyZWVkc2hhZG93IiwgInRpYmV0YW4iLCAidGlncmUiLCAidGlncmlueWEtZXIi
LCAidGlncmlueWEtZXItYWJlZ2VkZSIsCisgICAgICAgICJ0aWdyaW55YS1ldCIsICJ0aWdyaW55
YS1ldC1hYmVnZWRlIiwgInRvIiwgInRvcCIsICJ0cmFuc3BhcmVudCIsICJ1bHRyYS1jb25kZW5z
ZWQiLCAidWx0cmEtZXhwYW5kZWQiLCAidW5kZXJsaW5lIiwgInVwIiwgInVwcGVyLWFscGhhIiwg
InVwcGVyLWdyZWVrIiwKKyAgICAgICAgInVwcGVyLWhleGFkZWNpbWFsIiwgInVwcGVyLWxhdGlu
IiwgInVwcGVyLW5vcndlZ2lhbiIsICJ1cHBlci1yb21hbiIsICJ1cHBlcmNhc2UiLCAidXJkdSIs
ICJ1cmwiLCAidmVydGljYWwiLCAidmVydGljYWwtdGV4dCIsICJ2aXNpYmxlIiwKKyAgICAgICAg
InZpc2libGVGaWxsIiwgInZpc2libGVQYWludGVkIiwgInZpc2libGVTdHJva2UiLCAidmlzdWFs
IiwgInctcmVzaXplIiwgIndhaXQiLCAid2F2ZSIsICJ3aGl0ZSIsICJ3aWRlciIsICJ3aW5kb3ci
LCAid2luZG93ZnJhbWUiLCAid2luZG93dGV4dCIsCisgICAgICAgICJ4LWxhcmdlIiwgIngtc21h
bGwiLCAieG9yIiwgInh4LWxhcmdlIiwgInh4LXNtYWxsIiwgInllbGxvdyIsICItd2FwLW1hcnF1
ZWUiLCAiLXdlYmtpdC1hY3RpdmVsaW5rIiwgIi13ZWJraXQtYXV0byIsICItd2Via2l0LWJhc2Vs
aW5lLW1pZGRsZSIsCisgICAgICAgICItd2Via2l0LWJvZHkiLCAiLXdlYmtpdC1ib3giLCAiLXdl
YmtpdC1jZW50ZXIiLCAiLXdlYmtpdC1jb250cm9sIiwgIi13ZWJraXQtZm9jdXMtcmluZy1jb2xv
ciIsICItd2Via2l0LWdyYWIiLCAiLXdlYmtpdC1ncmFiYmluZyIsCisgICAgICAgICItd2Via2l0
LWdyYWRpZW50IiwgIi13ZWJraXQtaW5saW5lLWJveCIsICItd2Via2l0LWxlZnQiLCAiLXdlYmtp
dC1saW5rIiwgIi13ZWJraXQtbWFycXVlZSIsICItd2Via2l0LW1pbmktY29udHJvbCIsICItd2Vi
a2l0LW5vd3JhcCIsICItd2Via2l0LXJpZ2h0IiwKKyAgICAgICAgIi13ZWJraXQtc21hbGwtY29u
dHJvbCIsICItd2Via2l0LXRleHQiLCAiLXdlYmtpdC14eHgtbGFyZ2UiLCAiLXdlYmtpdC16b29t
LWluIiwgIi13ZWJraXQtem9vbS1vdXQiLAogICAgIF0ua2V5U2V0KCk7CiAKICAgICB0aGlzLl9t
ZWRpYVR5cGVzID0gWyJhbGwiLCAiYXVyYWwiLCAiYnJhaWxsZSIsICJlbWJvc3NlZCIsICJoYW5k
aGVsZCIsICJpbXBvcnQiLCAicHJpbnQiLCAicHJvamVjdGlvbiIsICJzY3JlZW4iLCAidHR5Iiwg
InR2Il0ua2V5U2V0KCk7CkBAIC0xODMsNyArMTgzLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNT
U1Rva2VuaXplci5wcm90b3R5cGUgPSB7CiAKICAgICBfaXNQcm9wZXJ0eVZhbHVlOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5QUk9QRVJUWV9WQUxVRSB8fCB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9
PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEU7CisgICAgICAgIHJldHVybiB0aGlzLl9j
b25kaXRpb24ucGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5QUk9QRVJU
WV9WQUxVRSB8fCB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5BVF9SVUxFOwogICAgIH0sCiAKICAgICBuZXh0VG9rZW46IGZ1bmN0aW9uKGN1
cnNvcikKQEAgLTQyMywxOCArNDIzLDE4IEBAIGNhc2UgMzE6CiBjYXNlIDMyOgogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmlu
ZyhjdXJzb3JPbkVudGVyLCBjdXJzb3IpOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5f
cGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPT09IHRo
aXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAodG9rZW4gPT09ICJAaW1wb3J0IiB8fCB0b2tlbiA9PT0gIkBtZWRpYSIpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJjc3MtYXQtcnVsZSI7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJz
ZUNvbmRpdGlvbnMuQVRfUlVMRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9j
b25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW4uaW5kZXhPZigiQCIpID09
PSAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImNzcy1h
dC1ydWxlIjsKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJjc3Mtc2VsZWN0b3IiOwogICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0
aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRSAmJiB0b2tlbiBpbiB0aGlzLl9t
ZWRpYVR5cGVzKQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25kaXRpb24u
cGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVF9SVUxFICYmIHRva2Vu
IGluIHRoaXMuX21lZGlhVHlwZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2Vu
VHlwZSA9ICJjc3Mta2V5d29yZCI7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMu
X3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFkgJiYgdG9r
ZW4gaW4gdGhpcy5fcHJvcGVydHlLZXl3b3JkcykKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBp
ZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlv
bnMuUFJPUEVSVFkgJiYgdG9rZW4gaW4gdGhpcy5fcHJvcGVydHlLZXl3b3JkcykKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImNzcy1wcm9wZXJ0eSI7CiAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2lzUHJvcGVydHlWYWx1ZSgpICYmIHRva2VuIGlu
IHRoaXMuX3ZhbHVlS2V5d29yZHMpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2Vu
VHlwZSA9ICJjc3Mta2V5d29yZCI7CkBAIC02NDcsMzUgKzY0NywzNSBAQCBjYXNlIDQwOgogICAg
ICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHRo
aXMudG9rZW5UeXBlID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNl
Q29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5QUk9QRVJUWV9WQUxVRTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlv
bi5wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlBST1BFUlRZKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLlBST1BFUlRZX1ZBTFVFOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KIGNhc2UgNDI6CiAgICAgICAgICAgICAr
K2N1cnNvcjsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5
cGUgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24g
PT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVF9SVUxFKQotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9
PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEUpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
SU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7
CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24g
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogY2FzZSA0NDoKICAgICAgICAgICAgICsr
Y3Vyc29yOwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlw
ZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9
PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEUpCi0gICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOwor
ICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5J
TklUSUFMOwogICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5QUk9QRVJUWTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5QUk9QRVJUWTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICB9CiBjYXNlIDQ2OgogICAgICAgICAgICAgKytj
dXJzb3I7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBl
ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29u
ZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogY2Fz
ZSA0ODoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NU
b2tlbml6ZXIucmUyanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9r
ZW5pemVyLnJlMmpzCmluZGV4IGFjMjJiZDQuLjZiYTlmNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqcwpAQCAtMTgyLDcg
KzE4Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIucHJvdG90eXBlID0gewog
CiAgICAgX2lzUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFlf
VkFMVUUgfHwgdGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5B
VF9SVUxFOworICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFlfVkFMVUUgfHwgdGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRTsKICAgICB9
LAogCiAgICAgbmV4dFRva2VuOiBmdW5jdGlvbihjdXJzb3IpCkBAIC0yNDQsMzUgKzI0NCwzNSBA
QCBXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICA8SU5JVElBTD4gT3BlbkN1cmx5QnJhY2tldAogICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwotICAgICAgICAgICAgICAg
ICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5B
VF9SVUxFKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFU
X1JVTEUpCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25k
aXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7CisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJP
UEVSVFk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAgICAgPElOSVRJQUw+IENsb3NlQ3VybHlCcmFja2V0CiAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5w
YXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgICAgIDxJTklUSUFMPiBDb2xvbgogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5QUk9QRVJUWSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLlBST1BFUlRZX1ZBTFVFOworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5f
Y29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVS
VFkpCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRp
b24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFlfVkFMVUU7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAg
ICAgPElOSVRJQUw+IFNlbWljb2xvbgogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVF9SVUxFKQotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlv
bi5wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEUpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuUFJPUEVSVFk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRp
b24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuUFJPUEVSVFk7CiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogCkBAIC0y
ODgsMTggKzI4OCwxOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICA8SU5JVElBTD4gSWRlbnRpZmllcgogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5fbGluZS5zdWJzdHJp
bmcoY3Vyc29yT25FbnRlciwgY3Vyc29yKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHRva2VuID09PSAiQGltcG9ydCIgfHwgdG9rZW4gPT09ICJAbWVkaWEiKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiY3NzLWF0LXJ1bGUiOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFy
c2VDb25kaXRpb25zLkFUX1JVTEU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
Y29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEU7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLmluZGV4T2YoIkAiKSA9
PT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJjc3Mt
YXQtcnVsZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiY3NzLXNlbGVjdG9yIjsKICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRp
dGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUX1JVTEUgJiYgdG9rZW4gaW4gdGhpcy5f
bWVkaWFUeXBlcykKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRfUlVMRSAmJiB0b2tl
biBpbiB0aGlzLl9tZWRpYVR5cGVzKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tl
blR5cGUgPSAiY3NzLWtleXdvcmQiOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlz
Ll9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlBST1BFUlRZICYmIHRv
a2VuIGluIHRoaXMuX3Byb3BlcnR5S2V5d29yZHMpCisgICAgICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRp
b25zLlBST1BFUlRZICYmIHRva2VuIGluIHRoaXMuX3Byb3BlcnR5S2V5d29yZHMpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJjc3MtcHJvcGVydHkiOwogICAgICAg
ICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9pc1Byb3BlcnR5VmFsdWUoKSAmJiB0b2tlbiBp
biB0aGlzLl92YWx1ZUtleXdvcmRzKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tl
blR5cGUgPSAiY3NzLWtleXdvcmQiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlSFRNTFRva2VuaXplci5qcwppbmRleCAzYzliZDhjLi5jYzFjYWExIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcwpA
QCAtMSw0ICsxLDQgQEAKLS8qIEdlbmVyYXRlZCBieSByZTJjIDAuMTMuNSBvbiBNb24gRmViIDE1
IDE5OjMwOjIxIDIwMTAgKi8KKy8qIEdlbmVyYXRlZCBieSByZTJjIDAuMTMuNSBvbiBUaHUgRmVi
IDI1IDEzOjUzOjM2IDIwMTAgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC03MSwzMSArNzEsNDMgQEAgV2ViSW5zcGVj
dG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIgPSBmdW5jdGlvbigpCiAgICAgfTsKIAogICAgIHRoaXMu
aW5pdGlhbENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLklO
SVRJQUwsIHBhcnNlQ29uZGl0aW9uOiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCB9Owor
ICAgIHRoaXMuY29uZGl0aW9uID0gdGhpcy5pbml0aWFsQ29uZGl0aW9uOwogfQogCiBXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CisgICAgc2V0IGxpbmUobGlu
ZSkgeworICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7Cisg
ICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvW1NzXVtDY11bUnJdW0lpXVtQcF1bVHRdLy5leGVj
KGxpbmUpOworICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5f
aW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBtYXRj
aC5pbmRleCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9pbnRl
cm5hbEphdmFTY3JpcHRUb2tlbml6ZXIubGluZSA9IGxpbmU7CisgICAgICAgIH0KKyAgICAgICAg
dGhpcy5fbGluZSA9IGxpbmU7CisgICAgfSwKKwogICAgIF9pc0V4cGVjdGluZ0F0dHJpYnV0ZTog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0aW9uICYg
dGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nv
bmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7
CiAgICAgfSwKIAogICAgIF9pc0V4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFOworICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsK
ICAgICB9LAogCiAgICAgX3NldEV4cGVjdGluZ0F0dHJpYnV0ZTogZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlVmFsdWUoKSkKLSAgICAgICAg
ICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIF49IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJV
VEVfVkFMVUU7Ci0gICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29u
ZGl0aW9ucy5BVFRSSUJVVEU7CisgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25k
aXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAg
dGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5B
VFRSSUJVVEU7CiAgICAgfSwKIAogICAgIF9zZXRFeHBlY3RpbmdBdHRyaWJ1dGVWYWx1ZTogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlKCkp
Ci0gICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlv
bnMuQVRUUklCVVRFOwotICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJz
ZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFOworICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uIF49IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7CisgICAg
ICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRpdGlv
bnMuQVRUUklCVVRFX1ZBTFVFOwogICAgIH0sCiAKICAgICBfc3RyaW5nVG9rZW46IGZ1bmN0aW9u
KGN1cnNvciwgc3RyaW5nRW5kcykKQEAgLTExMiw4ICsxMjQsOCBAQCBXZWJJbnNwZWN0b3IuU291
cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAKICAgICBfYXR0clZhbHVlVG9rZW5UeXBl
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gJiB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElOS0lGWSkgewotICAgICAgICAgICAgaWYgKHRoaXMuX3Bh
cnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERSkKKyAgICAgICAgaWYg
KHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5M
SU5LSUZZKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9u
ICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERSkKICAgICAgICAgICAgICAgICByZXR1cm4g
Imh0bWwtZXh0ZXJuYWwtbGluayI7CiAgICAgICAgICAgICByZXR1cm4gImh0bWwtcmVzb3VyY2Ut
bGluayI7CiAgICAgICAgIH0KQEAgLTEyMiw2ICsxMzQsMjIgQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgbmV4dFRva2VuOiBmdW5jdGlvbihj
dXJzb3IpCiAgICAgeworICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5p
emVyKSB7CisgICAgICAgICAgICAvLyBSZS1zZXQgbGluZSB0byBmb3JjZSA8L3NjcmlwdD4gZGV0
ZWN0aW9uIGZpcnN0LgorICAgICAgICAgICAgdGhpcy5saW5lID0gdGhpcy5fbGluZTsKKyAgICAg
ICAgICAgIGlmIChjdXJzb3IgIT09IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5f
bGluZS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAvLyBUb2tlbml6ZXIgaXMgc3RhdGVsZXNz
LCBzbyByZXN0b3JlIGl0cyBjb25kaXRpb24gYmVmb3JlIHRva2VuaXppbmcgYW5kIHNhdmUgaXQg
YWZ0ZXIuCisgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVy
LmNvbmRpdGlvbiA9IHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJD
b25kaXRpb247CisJICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2ludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplci5uZXh0VG9rZW4oY3Vyc29yKTsKKwkgICAgICAgICAgICB0aGlzLnRva2Vu
VHlwZSA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci50b2tlblR5cGU7CisgICAg
ICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNv
bmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5jb25kaXRpb247Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vy
c29yICE9PSB0aGlzLl9saW5lLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXI7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2NvbmRpdGlvbi5zdWJUb2tlbml6ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwog
ICAgICAgICB2YXIgY3Vyc29yT25FbnRlciA9IGN1cnNvcjsKICAgICAgICAgdmFyIGdvdG9DYXNl
ID0gMTsKICAgICAgICAgd2hpbGUgKDEpIHsKQEAgLTMwNSwxNCArMzMzLDE0IEBAIGNhc2UgMzk6
CiBjYXNlIDQwOgogICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29u
ZGl0aW9ucy5UQUcpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBE
byBub3QgdG9rZW5pemUgc2NyaXB0IHRhZyBjb250ZW50cywga2VlcCBsZXhlciBzdGF0ZSBhbHRo
b3VnaCBwcm9jZXNzaW5nICI8Ii4KICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGV4
Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9r
ZW5UeXBlID0gImh0bWwtdGFnIjsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsK
ICAgICAgICAgICAgICAgICB9CkBAIC00MTMsMTQgKzQ0MSwxNCBAQCBjYXNlIDY2OgogICAgICAg
ICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9s
ZXhDb25kaXRpb25zLlRBRyk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICh0aGlzLl9wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAm
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIERvIG5vdCB0b2tlbml6ZSBzY3JpcHQgdGFnIGNvbnRlbnRzLCBrZWVwIGxleGVyIHN0YXRl
IGFsdGhvdWdoIHByb2Nlc3NpbmcgIjwiLgogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5z
ZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOwotICAgICAgICAgICAgICAgICAgICB0
aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQ7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3Bh
cnNlQ29uZGl0aW9ucy5TQ1JJUFQ7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEV4cGVj
dGluZ0F0dHJpYnV0ZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTQ0OSw3ICs0NzcsNyBAQCBjYXNlIDczOgogICAgICAgICAgICAg
dGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25k
aXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJz
ZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KIC8qICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqICovCkBAIC01MjcsMjYgKzU1NSwyNiBAQCBjYXNlIHRo
aXMuY2FzZV9UQUc6CiAgICAgICAgICAgICB7IGdvdG9DYXNlID0gMTA5OyBjb250aW51ZTsgfTsK
IGNhc2UgODk6CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9w
YXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
YWxsIHRocm91Z2ggaWYgZXhwZWN0aW5nIGF0dHJpYnV0ZXMuCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElB
TCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOwogICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fc2V0RXhwZWN0aW5nQXR0cmlidXRlKCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmluZyhjdXJzb3JPbkVudGVyLCBjdXJz
b3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09PSAiYSIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLkFfTk9ERTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMu
X3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuQV9OT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRp
dGlvbi5wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25k
aXRpb25zLkFfTk9ERTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0V4
cGVjdGluZ0F0dHJpYnV0ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4g
PSB0aGlzLl9saW5lLnN1YnN0cmluZyhjdXJzb3JPbkVudGVyLCBjdXJzb3IpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHRva2VuID09PSAiaHJlZiIgfHwgdG9rZW4gPT09ICJzcmMiKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZOwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBp
ZiAodGhpcy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5M
SU5LSUZZOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiBePSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElOS0lGWTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMudG9rZW5UeXBlID0gImh0bWwtYXR0cmlidXRlLW5hbWUiOwogICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlVmFsdWUoKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gdGhpcy5fYXR0clZhbHVlVG9rZW5UeXBl
KCk7CkBAIC01NzcsMTQgKzYwNSwxOCBAQCBjYXNlIDk2OgogICAgICAgICAgICAgKytjdXJzb3I7
CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklO
SVRJQUwpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFy
c2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0
aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5faW50ZXJu
YWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2Vu
aXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFs
SmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRv
a2VuaXplci5pbml0aWFsQ29uZGl0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX2NvbmRpdGlvbi5zdWJUb2tlbml6ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0
YWcgY29udGVudHMuCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51
bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50
b2tlblR5cGUgPSAiaHRtbC10YWciOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRp
b24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICB9CiBjYXNlIDk4
OgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tl
bml6ZXIucmUyanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2Vu
aXplci5yZTJqcwppbmRleCBjZmE4ODM0Li41Y2NiZjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwpAQCAtNzAsMzEg
KzcwLDQzIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyID0gZnVuY3Rpb24oKQog
ICAgIH07CiAKICAgICB0aGlzLmluaXRpYWxDb25kaXRpb24gPSB7IGxleENvbmRpdGlvbjogdGhp
cy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25k
aXRpb25zLklOSVRJQUwgfTsKKyAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRp
dGlvbjsKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0g
eworICAgIHNldCBsaW5lKGxpbmUpIHsKKyAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplcikgeworICAgICAgICAgICAgdmFyIG1hdGNoID0gLzxcL1tTc11bQ2NdW1Jy
XVtJaV1bUHBdW1R0XS8uZXhlYyhsaW5lKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAg
ICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5saW5lID0gbGlu
ZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lOwor
ICAgICAgICB9CisgICAgICAgIHRoaXMuX2xpbmUgPSBsaW5lOworICAgIH0sCisKICAgICBfaXNF
eHBlY3RpbmdBdHRyaWJ1dGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7CisgICAg
ICAgIHJldHVybiB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuQVRUUklCVVRFOwogICAgIH0sCiAKICAgICBfaXNFeHBlY3RpbmdBdHRyaWJ1dGVW
YWx1ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0
aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5BVFRSSUJVVEVfVkFMVUU7CiAgICAgfSwKIAogICAgIF9zZXRFeHBlY3RpbmdBdHRyaWJ1dGU6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0
ZVZhbHVlKCkpCi0gICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJz
ZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFOwotICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlv
biB8PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFOworICAgICAgICAgICAgdGhpcy5f
Y29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIF49IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJV
VEVfVkFMVUU7CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiB8PSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFOwogICAgIH0sCiAKICAgICBfc2V0RXhwZWN0aW5n
QXR0cmlidXRlVmFsdWU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pc0V4
cGVjdGluZ0F0dHJpYnV0ZSgpKQotICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0g
dGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURTsKLSAgICAgICAgdGhpcy5fcGFyc2VDb25k
aXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAg
ICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlv
bnMuQVRUUklCVVRFOworICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gfD0g
dGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKICAgICB9LAogCiAgICAgX3N0
cmluZ1Rva2VuOiBmdW5jdGlvbihjdXJzb3IsIHN0cmluZ0VuZHMpCkBAIC0xMTEsOCArMTIzLDgg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAg
X2F0dHJWYWx1ZVRva2VuVHlwZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMu
X3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkpIHsKLSAgICAg
ICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5B
X05PREUpCisgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuTElOS0lGWSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRp
dGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BX05PREUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuICJodG1sLWV4dGVybmFsLWxpbmsiOwogICAgICAgICAgICAgcmV0
dXJuICJodG1sLXJlc291cmNlLWxpbmsiOwogICAgICAgICB9CkBAIC0xMjEsNiArMTMzLDIwIEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIG5l
eHRUb2tlbjogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplcikgeworICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8g
Zm9yY2UgPC9zY3JpcHQ+IGRldGVjdGlvbiBmaXJzdC4KKyAgICAgICAgICAgIHRoaXMubGluZSA9
IHRoaXMuX2xpbmU7CisgICAgICAgICAgICBpZiAoY3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbEph
dmFTY3JpcHRUb2tlbml6ZXIuX2xpbmUubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gVG9r
ZW5pemVyIGlzIHN0YXRlbGVzcywgc28gcmVzdG9yZSBpdHMgY29uZGl0aW9uIGJlZm9yZSB0b2tl
bml6aW5nIGFuZCBzYXZlIGl0IGFmdGVyLgorICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFs
SmF2YVNjcmlwdFRva2VuaXplci5jb25kaXRpb24gPSB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxK
YXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uOworCSAgICAgICAgICAgIHZhciByZXN1bHQgPSB0
aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIubmV4dFRva2VuKGN1cnNvcik7CisJICAg
ICAgICAgICAgdGhpcy50b2tlblR5cGUgPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6
ZXIudG9rZW5UeXBlOworICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEph
dmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tl
bml6ZXIuY29uZGl0aW9uOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKGN1cnNvciAhPT0gdGhpcy5fbGluZS5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcjsKKyAgICAgICAg
fQorCiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVyID0gY3Vyc29yOwogICAgICAgICB2YXIgZ290
b0Nhc2UgPSAxOwogICAgICAgICB3aGlsZSAoMSkgewpAQCAtMTc0LDE0ICsyMDAsMTQgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgICAg
ICAgICAgPElOSVRJQUw+IFNjcmlwdFN0YXJ0ID0+IFRBRwogICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VD
b25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0
aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVu
dHMsIGtlZXAgbGV4ZXIgc3RhdGUgYWx0aG91Z2ggcHJvY2Vzc2luZyAiPCIuCiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklO
SVRJQUwpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25k
aXRpb25zLlNDUklQVDsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNl
Q29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVDsKICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fc2V0RXhwZWN0aW5nQXR0cmlidXRlKCk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTg5LDM0ICsyMTUsMzcgQEAg
V2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIDxJTklUSUFMPiBTY3JpcHRFbmQgPT4gVEFHCiAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7Ci0gICAgICAgICAg
ICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklO
SVRJQUw7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlv
biA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIDxJTklU
SUFMPiBMVCA9PiBUQUcKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICh0aGlzLl9wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAm
IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIERvIG5vdCB0b2tlbml6ZSBzY3JpcHQgdGFnIGNvbnRlbnRzLCBrZWVwIGxleGVyIHN0YXRl
IGFsdGhvdWdoIHByb2Nlc3NpbmcgIjwiLgogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5z
ZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklU
SUFMOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24g
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAgICAgICAgICAgICAgdGhp
cy50b2tlblR5cGUgPSAiaHRtbC10YWciOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vy
c29yOwogICAgICAgICAgICAgICAgIH0KLQorICAKICAgICAgICAgICAgICAgICA8VEFHPiBHVCA9
PiBJTklUSUFMCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5f
aW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJj
ZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZh
c2NyaXB0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmlu
dGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcg
Y29udGVudHMuCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tl
blR5cGUgPSAiaHRtbC10YWciOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24u
cGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTIzOCwy
NiArMjY3LDI2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICAgICAgICAgIDxUQUc+IElkZW50aWZpZXIKICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5f
cGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5f
Y29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBU
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggaWYgZXhwZWN0aW5n
IGF0dHJpYnV0ZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51
bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9u
ID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRp
dGlvbnMuSU5JVElBTCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUg
PSAiaHRtbC10YWciOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0aW5n
QXR0cmlidXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9s
aW5lLnN1YnN0cmluZyhjdXJzb3JPbkVudGVyLCBjdXJzb3IpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHRva2VuID09PSAiYSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5f
cGFyc2VDb25kaXRpb25zLkFfTk9ERSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiB8PSB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRp
b25zLkFfTk9ERSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24u
cGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmluZyhj
dXJzb3JPbkVudGVyLCBjdXJzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2Vu
ID09PSAiaHJlZiIgfHwgdG9rZW4gPT09ICJzcmMiKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZ
OwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24g
fD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJ
Rlk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29u
ZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZOworICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uIHw9IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5MSU5LSUZZKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElO
S0lGWTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtYXR0
cmlidXRlLW5hbWUiOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRXhw
ZWN0aW5nQXR0cmlidXRlVmFsdWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9r
ZW5UeXBlID0gdGhpcy5fYXR0clZhbHVlVG9rZW5UeXBlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzCmluZGV4
IDc1YWJlZWUuLjJjNjkxMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzCkBAIC0xLDQgKzEsNCBAQAotLyog
R2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBKYW4gMjggMjA6NDk6MjMgMjAxMCAqLwor
LyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBGZWIgMjUgMTU6NTM6MDUgMjAxMCAq
LwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKQEAgLTY5LDYgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUphdmFTY3JpcHRU
b2tlbml6ZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5jYXNlX1JFR0VYID0gMTAwNTsKIAogICAg
IHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRp
b25zLk5PRElWIH0KKyAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsK
IH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIucHJvdG90eXBlID0g
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3Jp
cHRUb2tlbml6ZXIucmUyanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2
YVNjcmlwdFRva2VuaXplci5yZTJqcwppbmRleCAwNTNjODJmLi5hZTcxZWZlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5y
ZTJqcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRv
a2VuaXplci5yZTJqcwpAQCAtNjgsNiArNjgsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNj
cmlwdFRva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNhc2VfUkVHRVggPSAxMDA1Owog
CiAgICAgdGhpcy5pbml0aWFsQ29uZGl0aW9uID0geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENv
bmRpdGlvbnMuTk9ESVYgfQorICAgIHRoaXMuY29uZGl0aW9uID0gdGhpcy5pbml0aWFsQ29uZGl0
aW9uOwogfQogCiBXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5wcm90b3R5
cGUgPSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9r
ZW5pemVyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVRva2VuaXplci5q
cwppbmRleCBkNDk4MDI4Li4xODMyZDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlVG9rZW5pemVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VUb2tlbml6ZXIuanMKQEAgLTQwLDI4ICs0MCwyNyBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIHNldCBjb25kaXRpb24oY29uZGl0
aW9uKQogICAgIHsKLSAgICAgICAgdGhpcy5fbGV4Q29uZGl0aW9uID0gY29uZGl0aW9uLmxleENv
bmRpdGlvbjsKLSAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSBjb25kaXRpb24ucGFyc2VD
b25kaXRpb247CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsKICAgICB9LAog
CiAgICAgZ2V0IGNvbmRpdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4geyBsZXhDb25kaXRp
b246IHRoaXMuX2xleENvbmRpdGlvbiwgcGFyc2VDb25kaXRpb246IHRoaXMuX3BhcnNlQ29uZGl0
aW9uIH07CisgICAgICAgIHJldHVybiB0aGlzLl9jb25kaXRpb247CiAgICAgfSwKIAotICAgIGhh
c0NvbmRpdGlvbjogZnVuY3Rpb24oY29uZGl0aW9uKQorICAgIGdldCBzdWJUb2tlbml6ZXIoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2xleENvbmRpdGlvbiA9PT0gY29uZGl0aW9uLmxl
eENvbmRpdGlvbiAmJiB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gY29uZGl0aW9uLnBhcnNlQ29u
ZGl0aW9uOworICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9uLnN1YlRva2VuaXplcjsKICAg
ICB9LAogCiAgICAgZ2V0TGV4Q29uZGl0aW9uOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fbGV4Q29uZGl0aW9uOworICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb24u
bGV4Q29uZGl0aW9uOwogICAgIH0sCiAKICAgICBzZXRMZXhDb25kaXRpb246IGZ1bmN0aW9uKGxl
eENvbmRpdGlvbikKICAgICB7Ci0gICAgICAgIHRoaXMuX2xleENvbmRpdGlvbiA9IGxleENvbmRp
dGlvbjsKKyAgICAgICAgdGhpcy5jb25kaXRpb24ubGV4Q29uZGl0aW9uID0gbGV4Q29uZGl0aW9u
OwogICAgIH0sCiAKICAgICBfY2hhckF0OiBmdW5jdGlvbihjdXJzb3IpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwppbmRleCBj
ZjBiNTkwLi4wZjllYzJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKQEAgLTM0LDI0ICszNCwyNCBAQCBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyID0gZnVuY3Rpb24odGV4dE1vZGVsLCBkYW1hZ2VDYWxs
YmFjaykKICAgICB0aGlzLl90ZXh0TW9kZWwgPSB0ZXh0TW9kZWw7CiAgICAgdGhpcy5fdG9rZW5p
emVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgp
LmdldFRva2VuaXplcigidGV4dC9odG1sIik7CiAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2sgPSBk
YW1hZ2VDYWxsYmFjazsKKyAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lID0gMDsKIH0KIAog
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90b3R5cGUgPSB7CiAgICAgc2V0
IG1pbWVUeXBlKG1pbWVUeXBlKQogICAgIHsKICAgICAgICAgdmFyIHRva2VuaXplciA9IFdlYklu
c3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6
ZXIobWltZVR5cGUpOwotICAgICAgICBpZiAodG9rZW5pemVyKQorICAgICAgICBpZiAodG9rZW5p
emVyKSB7CiAgICAgICAgICAgICB0aGlzLl90b2tlbml6ZXIgPSB0b2tlbml6ZXI7CisgICAgICAg
ICAgICB0aGlzLl90b2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl90b2tlbml6ZXIuaW5pdGlhbENv
bmRpdGlvbjsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICBoaWdobGlnaHQ6IGZ1bmN0aW9uKGVu
ZExpbmUpCiAgICAgewogICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB3ZSBoYXZlIHdvcmsgdG8g
ZG8uCi0gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUoZW5k
TGluZSAtIDEsICJoaWdobGlnaHRlci1zdGF0ZSIpCi0gICAgICAgIGlmIChzdGF0ZSAmJiAhc3Rh
dGUub3V0T2ZEYXRlKSB7Ci0gICAgICAgICAgICAvLyBMYXN0IGxpbmUgaXMgaGlnaGxpZ2h0ZWQs
IGp1c3QgZXhpdC4KKyAgICAgICAgaWYgKGVuZExpbmUgPD0gdGhpcy5fbGFzdEhpZ2hsaWdodGVk
TGluZSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3Jl
cXVlc3RlZEVuZExpbmUgPSBlbmRMaW5lOwogCkBAIC02MCwxOCArNjAsOSBAQCBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFdlIHdpbGwgYmUgaGlnaGxpZ2h0aW5nLiBGaXJz
dCByZXdpbmQgdG8gdGhlIGxhc3QgaGlnaGxpZ2h0ZWQgbGluZSB0byBnYWluIHByb3BlciBoaWdo
bGlnaHRlciBjb250ZXh0LgotICAgICAgICB2YXIgc3RhcnRMaW5lID0gZW5kTGluZTsKLSAgICAg
ICAgd2hpbGUgKHN0YXJ0TGluZSA+IDApIHsKLSAgICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMu
X3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUoc3RhcnRMaW5lIC0gMSwgImhpZ2hsaWdodGVyLXN0YXRl
Iik7Ci0gICAgICAgICAgICBpZiAoc3RhdGUgJiYgIXN0YXRlLm91dE9mRGF0ZSkKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIHN0YXJ0TGluZS0tOwotICAgICAgICB9Ci0KICAg
ICAgICAgLy8gRG8gc21hbGwgaGlnaGxpZ2h0IHN5bmNocm9ub3VzbHkuIFRoaXMgd2lsbCBwcm92
aWRlIGluc3RhbnQgaGlnaGxpZ2h0IG9uIFBhZ2VVcCAvIFBhZ2VEb3duLCBnZW50bGUgc2Nyb2xs
aW5nLgotICAgICAgICB2YXIgdG9MaW5lID0gTWF0aC5taW4oc3RhcnRMaW5lICsgMjAwLCBlbmRM
aW5lKTsKLSAgICAgICAgdGhpcy5faGlnaGxpZ2h0SW5DaHVua3Moc3RhcnRMaW5lLCB0b0xpbmUp
OworICAgICAgICB2YXIgdG9MaW5lID0gTWF0aC5taW4odGhpcy5fbGFzdEhpZ2hsaWdodGVkTGlu
ZSArIDIwMCwgZW5kTGluZSk7CisgICAgICAgIHRoaXMuX2hpZ2hsaWdodEluQ2h1bmtzKHRoaXMu
X2xhc3RIaWdobGlnaHRlZExpbmUsIHRvTGluZSk7CiAKICAgICAgICAgLy8gU2NoZWR1bGUgdGFp
bCBoaWdobGlnaHQgaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAoZW5kTGluZSA+IHRvTGluZSkK
QEAgLTgzLDggKzc0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9oaWdobGlnaHRUaW1lcjsKIAogICAgICAg
ICAvLyBGaXJzdCB3ZSBhbHdheXMgY2hlY2sgaWYgd2UgaGF2ZSB3b3JrIHRvIGRvLiBDb3VsZCBi
ZSB0aGF0IHVzZXIgc2Nyb2xsZWQgYmFjayBhbmQgd2UgY2FuIHF1aXQuCi0gICAgICAgIHZhciBz
dGF0ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUodGhpcy5fcmVxdWVzdGVkRW5kTGlu
ZSAtIDEsICJoaWdobGlnaHRlci1zdGF0ZSIpOwotICAgICAgICBpZiAoc3RhdGUgJiYgIXN0YXRl
Lm91dE9mRGF0ZSkKKyAgICAgICAgaWYgKHRoaXMuX3JlcXVlc3RlZEVuZExpbmUgPD0gdGhpcy5f
bGFzdEhpZ2hsaWdodGVkTGluZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAo
dGhpcy5fcmVxdWVzdGVkRW5kTGluZSAhPT0gZW5kTGluZSkgewpAQCAtMTAyLDY4ICs5MiwzMCBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHRoaXMuX2hpZ2hsaWdodFRpbWVyID0gc2V0VGltZW91dCh0aGlzLl9oaWdobGlnaHRJ
bkNodW5rcy5iaW5kKHRoaXMsIHRvTGluZSwgdGhpcy5fcmVxdWVzdGVkRW5kTGluZSksIDEwKTsK
ICAgICB9LAogCi0gICAgdXBkYXRlSGlnaGxpZ2h0OiBmdW5jdGlvbihzdGFydExpbmUsIGVuZExp
bmUpCi0gICAgewotICAgICAgICAvLyBTdGFydCBsaW5lIHdhcyBlZGl0ZWQsIHdlIHNob3VsZCBo
aWdobGlnaHQgZXZlcnl0aGluZyB1bnRpbCBlbmRMaW5lIHN5bmNocm9ub3VzbHkuCi0gICAgICAg
IGlmIChzdGFydExpbmUpIHsKLSAgICAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2Rl
bC5nZXRBdHRyaWJ1dGUoc3RhcnRMaW5lIC0gMSwgImhpZ2hsaWdodGVyLXN0YXRlIik7Ci0gICAg
ICAgICAgICBpZiAoIXN0YXRlIHx8IHN0YXRlLm91dE9mRGF0ZSkgewotICAgICAgICAgICAgICAg
IC8vIEhpZ2hsaWdodGVyIGRpZCBub3QgcmVhY2ggdGhpcyBwb2ludCB5ZXQsIG5vdGhpbmcgdG8g
dXBkYXRlLiBJdCB3aWxsIHJlYWNoIGl0IG9uIHN1YnNlcXVlbnQgdGltZXIgdGljayBhbmQgZG8g
dGhlIGpvYi4KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICB2YXIgcmVzdG9yZWQgPSB0aGlzLl9oaWdobGlnaHRMaW5lcyhzdGFydExp
bmUsIGVuZExpbmUpOwotCi0gICAgICAgIC8vIFNldCBpbnZhbGlkYXRlZCBmbGFnIHRvIHRoZSBz
dWJzZXF1ZW50IGxpbmVzLgotICAgICAgICBmb3IgKHZhciBpID0gZW5kTGluZTsgaSA8IHRoaXMu
X3RleHRNb2RlbC5saW5lc0NvdW50OyArK2kpIHsKLSAgICAgICAgICAgIHZhciBoaWdobGlnaHRl
clN0YXRlID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0ZShpLCAiaGlnaGxpZ2h0ZXItc3Rh
dGUiKTsKLSAgICAgICAgICAgIGlmIChoaWdobGlnaHRlclN0YXRlKQotICAgICAgICAgICAgICAg
IGhpZ2hsaWdodGVyU3RhdGUub3V0T2ZEYXRlID0gIXJlc3RvcmVkOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBfaGln
aGxpZ2h0TGluZXM6IGZ1bmN0aW9uKHN0YXJ0TGluZSwgZW5kTGluZSkKICAgICB7Ci0gICAgICAg
IC8vIFJlc3RvcmUgaGlnaGxpZ2h0ZXIgY29udGV4dCB0YWtlbiBmcm9tIHByZXZpb3VzIGxpbmUu
Ci0gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUoc3RhcnRM
aW5lIC0gMSwgImhpZ2hsaWdodGVyLXN0YXRlIik7Ci0gICAgICAgIGlmIChzdGF0ZSkKLSAgICAg
ICAgICAgIHRoaXMuX3Rva2VuaXplci5jb25kaXRpb24gPSBzdGF0ZS5wb3N0Q29uZGl0aW9uOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl90b2tlbml6ZXIuY29uZGl0aW9uID0gdGhp
cy5fdG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IHN0
YXJ0TGluZTsgaSA8IGVuZExpbmU7ICsraSkgewotICAgICAgICAgICAgc3RhdGUgPSB7fTsKLSAg
ICAgICAgICAgIHN0YXRlLnByZUNvbmRpdGlvbiA9IHRoaXMuX3Rva2VuaXplci5jb25kaXRpb247
Ci0gICAgICAgICAgICBzdGF0ZS5hdHRyaWJ1dGVzID0ge307CisgICAgICAgIC8vIFRva2VuaXpl
ciBpcyBzdGF0ZWxlc3MgYW5kIHJldXNlZCBhY2Nyb3NzIHZpZXdlcnMsIHJlc3RvcmUgaXRzIGNv
bmRpdGlvbiBiZWZvcmUgaGlnaGxpZ2h0IGFuZCBzYXZlIGl0IGFmdGVyLgorICAgICAgICB0aGlz
Ll90b2tlbml6ZXIuY29uZGl0aW9uID0gdGhpcy5fdG9rZW5pemVyQ29uZGl0aW9uOworICAgICAg
ICBmb3IgKHZhciBpID0gc3RhcnRMaW5lOyBpIDwgZW5kTGluZTsgKytpKQorICAgICAgICAgICAg
dGhpcy5faGlnaGxpZ2h0TGluZShpKTsKKyAgICAgICAgdGhpcy5fbGFzdEhpZ2hsaWdodGVkTGlu
ZSA9IGVuZExpbmU7CisgICAgICAgIHRoaXMuX3Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX3Rv
a2VuaXplci5jb25kaXRpb247CiAKLSAgICAgICAgICAgIHRoaXMuX2xleCh0aGlzLl90ZXh0TW9k
ZWwubGluZShpKSwgaSwgc3RhdGUuYXR0cmlidXRlcyk7Ci0KLSAgICAgICAgICAgIHN0YXRlLnBv
c3RDb25kaXRpb24gPSB0aGlzLl90b2tlbml6ZXIuY29uZGl0aW9uOwotICAgICAgICAgICAgdGhp
cy5fdGV4dE1vZGVsLnNldEF0dHJpYnV0ZShpLCAiaGlnaGxpZ2h0ZXItc3RhdGUiLCBzdGF0ZSk7
Ci0KLSAgICAgICAgICAgIHZhciBuZXh0TGluZVN0YXRlID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0
dHJpYnV0ZShpICsgMSwgImhpZ2hsaWdodGVyLXN0YXRlIik7Ci0gICAgICAgICAgICBpZiAobmV4
dExpbmVTdGF0ZSAmJiB0aGlzLl90b2tlbml6ZXIuaGFzQ29uZGl0aW9uKG5leHRMaW5lU3RhdGUu
cHJlQ29uZGl0aW9uKSkgewotICAgICAgICAgICAgICAgIC8vIEZvbGxvd2luZyBsaW5lcyBhcmUg
dXAgdG8gZGF0ZSwgbm8gbmVlZCByZS1oaWdobGlnaHQuCi0gICAgICAgICAgICAgICAgdGhpcy5f
ZGFtYWdlQ2FsbGJhY2soc3RhcnRMaW5lLCBpICsgMSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgdGhpcy5fZGFtYWdlQ2Fs
bGJhY2soc3RhcnRMaW5lLCBlbmRMaW5lKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0s
CiAKLSAgICBfbGV4OiBmdW5jdGlvbihsaW5lLCBsaW5lTnVtYmVyLCBhdHRyaWJ1dGVzKSB7Ci0g
ICAgICAgICB0aGlzLl90b2tlbml6ZXIubGluZSA9IGxpbmU7Ci0gICAgICAgICB2YXIgY29sdW1u
ID0gMDsKLSAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICB2YXIgbmV3Q29sdW1uID0gdGhpcy5f
dG9rZW5pemVyLm5leHRUb2tlbihjb2x1bW4pOwotICAgICAgICAgICAgIHZhciB0b2tlblR5cGUg
PSB0aGlzLl90b2tlbml6ZXIudG9rZW5UeXBlOwotICAgICAgICAgICAgIGlmICh0b2tlblR5cGUp
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNbY29sdW1uXSA9IHsgbGVuZ3RoOiBuZXdDb2x1
bW4gLSBjb2x1bW4sIHRva2VuVHlwZTogdG9rZW5UeXBlIH07Ci0gICAgICAgICAgICAgY29sdW1u
ID0gbmV3Q29sdW1uOwotICAgICAgICAgfSB3aGlsZSAoY29sdW1uIDwgbGluZS5sZW5ndGgpCisg
ICAgX2hpZ2hsaWdodExpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpIHsKKyAgICAgICAgdmFyIGxp
bmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKKyAgICAgICAgdmFyIGF0dHJp
YnV0ZXMgPSB7fTsKKyAgICAgICAgdGhpcy5fdG9rZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAg
ICB2YXIgY29sdW1uID0gMDsKKyAgICAgICAgZG8geworICAgICAgICAgICAgdmFyIG5ld0NvbHVt
biA9IHRoaXMuX3Rva2VuaXplci5uZXh0VG9rZW4oY29sdW1uKTsKKyAgICAgICAgICAgIHZhciB0
b2tlblR5cGUgPSB0aGlzLl90b2tlbml6ZXIudG9rZW5UeXBlOworICAgICAgICAgICAgaWYgKHRv
a2VuVHlwZSkKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW2NvbHVtbl0gPSB7IGxlbmd0aDog
bmV3Q29sdW1uIC0gY29sdW1uLCB0b2tlblR5cGU6IHRva2VuVHlwZSwgc3ViVG9rZW5pemVyOiB0
aGlzLl90b2tlbml6ZXIuc3ViVG9rZW5pemVyIH07CisgICAgICAgICAgICBjb2x1bW4gPSBuZXdD
b2x1bW47CisgICAgICAgIH0gd2hpbGUgKGNvbHVtbiA8IGxpbmUubGVuZ3RoKQorICAgICAgICB0
aGlzLl90ZXh0TW9kZWwuc2V0QXR0cmlidXRlKGxpbmVOdW1iZXIsICJoaWdobGlnaHQiLCBhdHRy
aWJ1dGVzKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dFZpZXdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2Vy
LmpzCmluZGV4IDliZTZhMDAuLjUwY2UzZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0Vmlld2VyLmpzCkBAIC0zMzAsMTYgKzMzMCwxNSBAQCBXZWJJbnNwZWN0b3IuVGV4dFZp
ZXdlci5wcm90b3R5cGUgPSB7CiAgICAgX3BhaW50TGluZTogZnVuY3Rpb24obGluZVJvdywgbGlu
ZU51bWJlcikKICAgICB7CiAgICAgICAgIHZhciBlbGVtZW50ID0gbGluZVJvdy5sYXN0Q2hpbGQ7
Ci0gICAgICAgIHZhciBoaWdobGlnaHRlclN0YXRlID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJp
YnV0ZShsaW5lTnVtYmVyLCAiaGlnaGxpZ2h0ZXItc3RhdGUiKTsKLSAgICAgICAgdmFyIGxpbmUg
PSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKLQotICAgICAgICBpZiAoIWhpZ2hs
aWdodGVyU3RhdGUpIHsKKyAgICAgICAgdmFyIGhpZ2hsaWdodCA9IHRoaXMuX3RleHRNb2RlbC5n
ZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImhpZ2hsaWdodCIpOworICAgICAgICBpZiAoIWhpZ2hs
aWdodCkgewogICAgICAgICAgICAgaWYgKHRoaXMuX3JhbmdlVG9NYXJrICYmIHRoaXMuX3Jhbmdl
VG9NYXJrLnN0YXJ0TGluZSA9PT0gbGluZU51bWJlcikKICAgICAgICAgICAgICAgICB0aGlzLl9t
YXJrZWRSYW5nZUVsZW1lbnQgPSBoaWdobGlnaHRTZWFyY2hSZXN1bHQoZWxlbWVudCwgdGhpcy5f
cmFuZ2VUb01hcmsuc3RhcnRDb2x1bW4sIHRoaXMuX3JhbmdlVG9NYXJrLmVuZENvbHVtbiAtIHRo
aXMuX3JhbmdlVG9NYXJrLnN0YXJ0Q29sdW1uKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCiAgICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgdmFyIGxp
bmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKIAogICAgICAgICB2YXIgcGxh
aW5UZXh0U3RhcnQgPSAtMTsKICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaW5lLmxlbmd0
aDspIHsKQEAgLTM0OCw3ICszNDcsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICAgICAgcGxhaW5UZXh0U3RhcnQgPSBqOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZSA9IGhp
Z2hsaWdodGVyU3RhdGUgJiYgaGlnaGxpZ2h0ZXJTdGF0ZS5hdHRyaWJ1dGVzW2pdOworICAgICAg
ICAgICAgdmFyIGF0dHJpYnV0ZSA9IGhpZ2hsaWdodFtqXTsKICAgICAgICAgICAgIGlmICghYXR0
cmlidXRlIHx8ICFhdHRyaWJ1dGUudG9rZW5UeXBlKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBs
YWluVGV4dFN0YXJ0ID09PSAtMSkKICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0U3RhcnQg
PSBqOwo=
</data>
<flag name="review"
          id="32354"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>