<?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>34364</bug_id>
          
          <creation_ts>2010-01-29 18:34:57 -0800</creation_ts>
          <short_desc>REGRESSION(canvas editor): URLs are not syntax-higlighted as links in source view</short_desc>
          <delta_ts>2010-02-02 06:00:40 -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>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>mjs</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186049</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-01-29 18:34:57 -0800</bug_when>
    <thetext>In r54084 I&apos;ve noticed that URLs are no longer syntax-highlighted as links in the source view of the Resources pane.  This works correctly in a build of WebKit from earlier in the week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186065</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-01-29 18:44:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/7594380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186569</commentid>
    <comment_count>2</comment_count>
      <attachid>47869</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-01 14:04:25 -0800</bug_when>
    <thetext>Created attachment 47869
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186570</commentid>
    <comment_count>3</comment_count>
      <attachid>47869</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-02-01 14:08:22 -0800</bug_when>
    <thetext>Comment on attachment 47869
[PATCH] Proposed change.

&gt; +        if (content.length &gt; 1 &amp;&amp; (quote === &quot;\&quot;&quot; ||   quote === &quot;&apos;&quot;))
&gt; +            content = content.substring(1, content.length - 1);

Shouldn&apos;t this be content.length &gt;= 2 or content.length &gt; 2?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186942</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-02 06:00:40 -0800</bug_when>
    <thetext>
(In reply to comment #3)
&gt; (From update of attachment 47869 [details])
&gt; &gt; +        if (content.length &gt; 1 &amp;&amp; (quote === &quot;\&quot;&quot; ||   quote === &quot;&apos;&quot;))
&gt; &gt; +            content = content.substring(1, content.length - 1);
&gt; 
&gt; Shouldn&apos;t this be content.length &gt;= 2 or content.length &gt; 2?

Yeah, you are probably right - I first thought that empty string is a valid case, but it really makes no sense to linkify it. I&apos;ll fix.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/ElementsTreeOutline.js
	M	WebCore/inspector/front-end/NativeTextViewer.js
	M	WebCore/inspector/front-end/SourceFrame.js
	M	WebCore/inspector/front-end/SourceHTMLTokenizer.js
	M	WebCore/inspector/front-end/SourceHTMLTokenizer.re2js
	M	WebCore/inspector/front-end/SourceView.js
	M	WebCore/inspector/front-end/TextEditorHighlighter.js
	M	WebCore/inspector/front-end/inspector.css
	M	WebCore/inspector/front-end/inspector.js
	M	WebCore/inspector/front-end/inspectorSyntaxHighlight.css
Committed r54231</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47869</attachid>
            <date>2010-02-01 14:04:25 -0800</date>
            <delta_ts>2010-02-01 14:08:21 -0800</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>linkifier</filename>
            <type>text/plain</type>
            <size>57321</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjI5ZTBjYy4uY2U0NmVlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NCBAQAogMjAxMC0wMi0wMSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBVUkxzIGFyZSBub3Qgc3ludGF4LWhp
Z2xpZ2h0ZWQgYXMgbGlua3MgaW4gc291cmNlIHZpZXcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
ZW5hYmxlcyBsaW5raWZpZXIgaW4gdGhlIE5hdGl2ZVRleHRWaWV3ZXIuIEl0IGFkZHMKKyAgICAg
ICAgImxpbmtpZnkiIGFuZCAiYV9ub2RlIiBwYXJzZSBzdGF0ZXMgaW50byB0aGUgaGlnaGxpZ2h0
ZXIgaW4gb3JkZXIKKyAgICAgICAgdG8gZGV0ZWN0IGxpbmtzIGFuZCBkaXN0aW5ndWlzaCBiZXR3
ZWVuIHJlc291cmNlIGFuZCBleHRlcm5hbCBvbmVzLgorICAgICAgICBDb250YWlucyBkcml2ZS1i
eSBmaXggZm9yIHRoZSB3ZWJraXQtaHRtbC0qIHN0eWxlcyBhbmQgbW92ZXMgdGhlbSB0byB0aGUK
KyAgICAgICAgY29tbW9uIGxvY2F0aW9uLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDM2NAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9OYXRpdmVUZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVRleHRW
aWV3ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVRleHRWaWV3ZXIucHJvdG90eXBl
Ll9jcmVhdGVTcGFuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVUZXh0Vmlld2VyLnBy
b3RvdHlwZS5fY3JlYXRlTGluayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlVGV4dFZp
ZXdlci5wcm90b3R5cGUuX3Jld3JpdGVIcmVmKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5zZXRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5w
cm90b3R5cGUuX2NyZWF0ZUVkaXRvcklmTmVlZGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlSFRNTFRva2VuaXplcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5wcm90b3R5cGUuX2lzRXhwZWN0aW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5faXNFeHBlY3RpbmdBdHRyaWJ1dGVW
YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUuX3NldEV4cGVjdGluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
SFRNTFRva2VuaXplci5wcm90b3R5cGUuX3NldEV4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5fc3RyaW5n
VG9rZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90
eXBlLl9hdHRyVmFsdWVUb2tlblR5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhU
TUxUb2tlbml6ZXIucHJvdG90eXBlLm5leHRUb2tlbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3
LnByb3RvdHlwZS5fY29udGVudExvYWRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvckhpZ2hsaWdodGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5jc3M6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdo
bGlnaHQuY3NzOgorCisyMDEwLTAyLTAxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBTeW50YXggaGlnaGxpZ2h0aW5nIGluIHNvdXJjZSB2aWV3IG9mCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGlu
ZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpz
CmluZGV4IGQzOGE3YmIuLjhkOGQ1ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC04OTgsMjkgKzg5OCwxOCBAQCBXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICgh
aHJlZlZhbHVlIHx8IGhyZWZWYWx1ZS5pbmRleE9mKCI6Ly8iKSA+IDApCiAgICAgICAgICAgICBy
ZXR1cm4gaHJlZlZhbHVlOwogCi0gICAgICAgIHZhciBtYXRjaDsKLSAgICAgICAgdmFyIGRvY3Vt
ZW50VVJMOwogICAgICAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlkYXRlID0gbm9kZTsgZnJh
bWVPd25lckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZyYW1lT3duZXJDYW5kaWRh
dGUucGFyZW50Tm9kZSkgewogICAgICAgICAgICAgaWYgKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9j
dW1lbnRVUkwpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudFVSTCA9IGZyYW1lT3duZXJDYW5k
aWRhdGUuZG9jdW1lbnRVUkw7CisgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFdlYkluc3Bl
Y3Rvci5jb21wbGV0ZVVSTChmcmFtZU93bmVyQ2FuZGlkYXRlLmRvY3VtZW50VVJMLCBocmVmVmFs
dWUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKGRvY3VtZW50VVJMKSB7Ci0gICAgICAgICAgICBtYXRjaCA9IGRv
Y3VtZW50VVJMLm1hdGNoKFdlYkluc3BlY3Rvci5VUkxSZWdFeHApOwotICAgICAgICAgICAgaWYg
KG1hdGNoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHBhdGggPSBocmVmVmFsdWU7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBhdGguY2hhckF0KDApICE9PSAiLyIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIGRvY3VtZW50UGF0aCA9IG1hdGNoWzRdIHx8ICIvIjsKLSAgICAgICAgICAgICAgICAg
ICAgcGF0aCA9IGRvY3VtZW50UGF0aC5zdWJzdHJpbmcoMCwgZG9jdW1lbnRQYXRoLmxhc3RJbmRl
eE9mKCIvIikpICsgIi8iICsgcGF0aDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIG1hdGNoWzFdICsgIjovLyIgKyBtYXRjaFsyXSArIChtYXRjaFszXSA/ICgiOiIg
KyBtYXRjaFszXSkgOiAiIikgKyBwYXRoOwotICAgICAgICAgICAgfQotICAgICAgICB9CiAKICAg
ICAgICAgLy8gZG9jdW1lbnRVUkwgbm90IGZvdW5kIG9yIGhhcyBiYWQgdmFsdWUKICAgICAgICAg
Zm9yICh2YXIgdXJsIGluIFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTE1hcCkgewotICAgICAgICAg
ICAgbWF0Y2ggPSB1cmwubWF0Y2goV2ViSW5zcGVjdG9yLlVSTFJlZ0V4cCk7CisgICAgICAgICAg
ICB2YXIgbWF0Y2ggPSB1cmwubWF0Y2goV2ViSW5zcGVjdG9yLlVSTFJlZ0V4cCk7CiAgICAgICAg
ICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbNF0gPT09IGhyZWZWYWx1ZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gdXJsOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmF0aXZlVGV4dFZpZXdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OYXRpdmVUZXh0Vmlld2VyLmpzCmluZGV4IDgwZDMwM2MuLjVlN2RiMjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVUZXh0Vmlld2VyLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVUZXh0Vmlld2VyLmpzCkBAIC0yOCwxMiAr
MjgsMTMgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLk5hdGl2ZVRleHRW
aWV3ZXIgPSBmdW5jdGlvbih0ZXh0TW9kZWwsIHBsYXRmb3JtKQorV2ViSW5zcGVjdG9yLk5hdGl2
ZVRleHRWaWV3ZXIgPSBmdW5jdGlvbih0ZXh0TW9kZWwsIHBsYXRmb3JtLCB1cmwpCiB7CiAgICAg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3IuY2FsbCh0aGlzLCB0ZXh0TW9kZWwsIHBsYXRmb3JtKTsK
ICAgICB0aGlzLl9zaGVldC50YWJJbmRleCA9IDA7CiAgICAgdGhpcy5fY2FudmFzLnN0eWxlLnpJ
bmRleCA9IDA7CiAgICAgdGhpcy5fY3JlYXRlTGluZURpdnMoKTsKKyAgICB0aGlzLl91cmwgPSB1
cmw7CiAgICAgdGhpcy5fc2VsZWN0aW9uQ29sb3IgPSAicmdiKDI0MSwgMjM0LCAwKSI7CiB9CiAK
QEAgLTE5MCwxMiArMTkxLDQxIEBAIFdlYkluc3BlY3Rvci5OYXRpdmVUZXh0Vmlld2VyLnByb3Rv
dHlwZSA9IHsKIAogICAgIF9jcmVhdGVTcGFuOiBmdW5jdGlvbihjb250ZW50LCBjbGFzc05hbWUp
CiAgICAgeworICAgICAgICBpZiAoY2xhc3NOYW1lID09PSAiaHRtbC1yZXNvdXJjZS1saW5rIiB8
fCBjbGFzc05hbWUgPT09ICJodG1sLWV4dGVybmFsLWxpbmsiKQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2NyZWF0ZUxpbmsoY29udGVudCwgY2xhc3NOYW1lID09PSAiaHRtbC1leHRlcm5hbC1s
aW5rIik7CisKICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CiAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gIndlYmtpdC0iICsgY2xhc3NOYW1lOwogICAg
ICAgICBzcGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpKTsK
ICAgICAgICAgcmV0dXJuIHNwYW47CiAgICAgfSwKIAorICAgIF9jcmVhdGVMaW5rOiBmdW5jdGlv
bihjb250ZW50LCBpc0V4dGVybmFsKQorICAgIHsKKyAgICAgICAgdmFyIHF1b3RlID0gY29udGVu
dC5jaGFyQXQoMCk7CisgICAgICAgIGlmIChjb250ZW50Lmxlbmd0aCA+IDEgJiYgKHF1b3RlID09
PSAiXCIiIHx8ICAgcXVvdGUgPT09ICInIikpCisgICAgICAgICAgICBjb250ZW50ID0gY29udGVu
dC5zdWJzdHJpbmcoMSwgY29udGVudC5sZW5ndGggLSAxKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcXVvdGUgPSBudWxsOworCisgICAgICAgIHZhciBhID0gV2ViSW5zcGVjdG9yLmxpbmtp
ZnlVUkxBc05vZGUodGhpcy5fcmV3cml0ZUhyZWYoY29udGVudCksIGNvbnRlbnQsIG51bGwsIGlz
RXh0ZXJuYWwpOworICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKKyAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZh
bHVlIjsKKyAgICAgICAgaWYgKHF1b3RlKQorICAgICAgICAgICAgc3Bhbi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShxdW90ZSkpOworICAgICAgICBzcGFuLmFwcGVuZENoaWxk
KGEpOworICAgICAgICBpZiAocXVvdGUpCisgICAgICAgICAgICBzcGFuLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHF1b3RlKSk7CisgICAgICAgIHJldHVybiBzcGFuOworICAg
IH0sCisKKyAgICBfcmV3cml0ZUhyZWY6IGZ1bmN0aW9uKGhyZWZWYWx1ZSwgaXNFeHRlcm5hbCkK
KyAgICB7CisgICAgICAgIGlmICghdGhpcy5fdXJsIHx8ICFocmVmVmFsdWUgfHwgaHJlZlZhbHVl
LmluZGV4T2YoIjovLyIpID4gMCkKKyAgICAgICAgICAgIHJldHVybiBocmVmVmFsdWU7CisgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuY29tcGxldGVVUkwodGhpcy5fdXJsLCBocmVmVmFsdWUp
OworICAgIH0sCisKICAgICBzZXREaXZEZWNvcmF0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBl
bGVtZW50KQogICAgIHsKICAgICAgICAgdmFyIGV4aXN0aW5nRWxlbWVudCA9IHRoaXMuX3RleHRN
b2RlbC5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImRpdi1kZWNvcmF0aW9uIik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggYTgwNjYwNi4uZTMwZGJk
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtMTIz
LDExICsxMjMsMTIgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHRoaXMuX2VkaXRvci5yZXZhbGlkYXRlRGVjb3JhdGlvbnNBbmRQYWludCgpOwog
ICAgIH0sCiAKLSAgICBzZXRDb250ZW50OiBmdW5jdGlvbihtaW1lVHlwZSwgY29udGVudCkKKyAg
ICBzZXRDb250ZW50OiBmdW5jdGlvbihtaW1lVHlwZSwgY29udGVudCwgdXJsKQogICAgIHsKICAg
ICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fdGV4dE1vZGVsLnNldFRl
eHQobnVsbCwgY29udGVudCk7CiAgICAgICAgIHRoaXMuX21pbWVUeXBlID0gbWltZVR5cGU7Cisg
ICAgICAgIHRoaXMuX3VybCA9IHVybDsKICAgICAgICAgdGhpcy5fY3JlYXRlRWRpdG9ySWZOZWVk
ZWQoKTsKICAgICB9LAogCkBAIC0xMzcsNyArMTM4LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIgZWRp
dG9yQ29uc3RydWN0b3IgPSBQcmVmZXJlbmNlcy51c2VDYW52YXNCYXNlZEVkaXRvciA/IFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yIDogV2ViSW5zcGVjdG9yLk5hdGl2ZVRleHRWaWV3ZXI7Ci0gICAg
ICAgIHRoaXMuX2VkaXRvciA9IG5ldyBlZGl0b3JDb25zdHJ1Y3Rvcih0aGlzLl90ZXh0TW9kZWws
IFdlYkluc3BlY3Rvci5wbGF0Zm9ybSk7CisgICAgICAgIHRoaXMuX2VkaXRvciA9IG5ldyBlZGl0
b3JDb25zdHJ1Y3Rvcih0aGlzLl90ZXh0TW9kZWwsIFdlYkluc3BlY3Rvci5wbGF0Zm9ybSwgdGhp
cy5fdXJsKTsKICAgICAgICAgdGhpcy5fZWRpdG9yLmxpbmVOdW1iZXJEZWNvcmF0b3IgPSBuZXcg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRMaW5lTnVtYmVyRGVjb3JhdG9yKHRoaXMsIHRoaXMuX2Vk
aXRvci50ZXh0TW9kZWwpOwogICAgICAgICB0aGlzLl9lZGl0b3IubGluZURlY29yYXRvciA9IG5l
dyBXZWJJbnNwZWN0b3IuRXhlY3V0aW9uTGluZURlY29yYXRvcih0aGlzKTsKICAgICAgICAgdGhp
cy5fZWRpdG9yLnJlYWRPbmx5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKaW5kZXggMzFmZDBiOC4uODg1NmZmNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIu
anMKQEAgLTEsNCArMSw0IEBACi0vKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gTW9uIEZl
YiAgMSAxOToxMzoxMiAyMDEwICovCisvKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gVHVl
IEZlYiAgMiAwMDo0NDozOCAyMDEwICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDksMTMgKzQ5LDE1IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX2xleENv
bmRpdGlvbnMgPSB7CiAgICAgICAgIElOSVRJQUw6IDAsCiAgICAgICAgIENPTU1FTlQ6IDEsCi0g
ICAgICAgIFRBRzogMiwKKyAgICAgICAgRE9DVFlQRTogMiwKKyAgICAgICAgVEFHOiAzLAogICAg
ICAgICBEU1RSSU5HOiA0LAogICAgICAgICBTU1RSSU5HOiA1CiAgICAgfTsKICAgICB0aGlzLmNh
c2VfSU5JVElBTCA9IDEwMDA7CiAgICAgdGhpcy5jYXNlX0NPTU1FTlQgPSAxMDAxOwotICAgIHRo
aXMuY2FzZV9UQUcgPSAxMDAyOworICAgIHRoaXMuY2FzZV9ET0NUWVBFID0gMTAwMjsKKyAgICB0
aGlzLmNhc2VfVEFHID0gMTAwMzsKICAgICB0aGlzLmNhc2VfRFNUUklORyA9IDEwMDQ7CiAgICAg
dGhpcy5jYXNlX1NTVFJJTkcgPSAxMDA1OwogCkBAIC02Myw1NSArNjUsNjEgQEAgV2ViSW5zcGVj
dG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgIElOSVRJQUw6IDAs
CiAgICAgICAgIEFUVFJJQlVURTogMSwKICAgICAgICAgQVRUUklCVVRFX1ZBTFVFOiAyLAotICAg
ICAgICBTQ1JJUFQ6IDMsCi0gICAgICAgIFNDUklQVF9BVFRSSUJVVEU6IDQsCi0gICAgICAgIFND
UklQVF9BVFRSSUJVVEVfVkFMVUU6IDUsCi0gICAgICAgIERPQ1RZUEU6IDYKKyAgICAgICAgTElO
S0lGWTogNCwKKyAgICAgICAgQV9OT0RFOiA4LAorICAgICAgICBTQ1JJUFQ6IDE2CiAgICAgfTsK
IAogICAgIHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhD
b25kaXRpb25zLklOSVRJQUwsIHBhcnNlQ29uZGl0aW9uOiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
SU5JVElBTCB9OwogfQogCiBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUgPSB7Ci0gICAgX2lzQXR0cmlidXRlOiBmdW5jdGlvbigpCisgICAgX2lzRXhwZWN0aW5nQXR0
cmlidXRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VDb25k
aXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEUgfHwgdGhpcy5fcGFyc2VD
b25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFRfQVRUUklCVVRFOworICAg
ICAgICByZXR1cm4gdGhpcy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
QVRUUklCVVRFOwogICAgIH0sCiAKLSAgICBfaXNBdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oKQor
ICAgIF9pc0V4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5B
VFRSSUJVVEVfVkFMVUUgfHwgdGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29u
ZGl0aW9ucy5TQ1JJUFRfQVRUUklCVVRFX1ZBTFVFOworICAgICAgICByZXR1cm4gdGhpcy5fcGFy
c2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFOwogICAg
IH0sCiAKLSAgICBfc2V0QXR0cmlidXRlVmFsdWU6IGZ1bmN0aW9uKCkKKyAgICBfc2V0RXhwZWN0
aW5nQXR0cmlidXRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fcGFyc2VD
b25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEUpCi0gICAgICAgICAg
ICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEVf
VkFMVUU7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9w
YXJzZUNvbmRpdGlvbnMuU0NSSVBUX0FUVFJJQlVURSkKLSAgICAgICAgICAgIHRoaXMuX3BhcnNl
Q29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVF9BVFRSSUJVVEVfVkFMVUU7
CisgICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlKCkpCisgICAgICAg
ICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklC
VVRFX1ZBTFVFOworICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuQVRUUklCVVRFOwogICAgIH0sCiAKLSAgICBfc2V0QXR0cmlidXRlOiBmdW5jdGlv
bigpCisgICAgX3NldEV4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5BVFRSSUJVVEVfVkFMVUUpCi0gICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRo
aXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuX3Bh
cnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUX0FUVFJJQlVURV9W
QUxVRSkKLSAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25k
aXRpb25zLlNDUklQVF9BVFRSSUJVVEU7CisgICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0
dHJpYnV0ZSgpKQorICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFy
c2VDb25kaXRpb25zLkFUVFJJQlVURTsKKyAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gfD0g
dGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKICAgICB9LAogCiAgICAgX3N0
cmluZ1Rva2VuOiBmdW5jdGlvbihjdXJzb3IsIHN0cmluZ0VuZHMpCiAgICAgewotICAgICAgICBp
ZiAodGhpcy5faXNBdHRyaWJ1dGVWYWx1ZSgpKSB7Ci0gICAgICAgICAgICB0aGlzLnRva2VuVHlw
ZSA9ICJodG1sLWF0dHItdmFsdWUiOwotICAgICAgICAgICAgaWYgKHN0cmluZ0VuZHMpCi0gICAg
ICAgICAgICAgICAgdGhpcy5fc2V0QXR0cmlidXRlKCk7Ci0gICAgICAgIH0gZWxzZSBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5ET0NUWVBFKQotICAg
ICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1kb2N0eXBlIjsKLSAgICAgICAgZWxzZQor
ICAgICAgICBpZiAoIXRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlVmFsdWUoKSkgewogICAgICAg
ICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOworICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsK
KyAgICAgICAgfQorICAgICAgICB0aGlzLnRva2VuVHlwZSA9IHRoaXMuX2F0dHJWYWx1ZVRva2Vu
VHlwZSgpOworICAgICAgICBpZiAoc3RyaW5nRW5kcykKKyAgICAgICAgICAgIHRoaXMuX3NldEV4
cGVjdGluZ0F0dHJpYnV0ZSgpOwogICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgIH0sCiAKKyAg
ICBfYXR0clZhbHVlVG9rZW5UeXBlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElOS0lGWSkgeworICAg
ICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25z
LkFfTk9ERSkKKyAgICAgICAgICAgICAgICByZXR1cm4gImh0bWwtZXh0ZXJuYWwtbGluayI7Cisg
ICAgICAgICAgICByZXR1cm4gImh0bWwtcmVzb3VyY2UtbGluayI7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuICJodG1sLWF0dHJpYnV0ZS12YWx1ZSI7CisgICAgfSwKKwogICAgIG5leHRUb2tl
bjogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKICAgICAgICAgdmFyIGN1cnNvck9uRW50ZXIgPSBj
dXJzb3I7CkBAIC0xMjMsMTcgKzEzMSwyMSBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhc2UgMTogdmFyIHl5
Y2g7CiAgICAgICAgICAgICB2YXIgeXlhY2NlcHQgPSAwOwotICAgICAgICAgICAgaWYgKHRoaXMu
Z2V0TGV4Q29uZGl0aW9uKCkgPCAyKSB7CisgICAgICAgICAgICBpZiAodGhpcy5nZXRMZXhDb25k
aXRpb24oKSA8IDMpIHsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRMZXhDb25kaXRpb24o
KSA8IDEpIHsKICAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IHRoaXMuY2FzZV9JTklU
SUFMOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICB7IGdvdG9DYXNlID0gdGhpcy5jYXNlX0NPTU1FTlQ7IGNvbnRpbnVlOyB9OworICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRMZXhDb25kaXRpb24oKSA8IDIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSB0aGlzLmNhc2VfQ09NTUVOVDsgY29udGlu
dWU7IH07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB7IGdvdG9DYXNlID0gdGhpcy5jYXNlX0RPQ1RZUEU7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRMZXhDb25kaXRpb24oKSA8IDMpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodGhpcy5nZXRMZXhDb25kaXRpb24oKSA8IDQpIHsKICAgICAgICAgICAg
ICAgICAgICAgeyBnb3RvQ2FzZSA9IHRoaXMuY2FzZV9UQUc7IGNvbnRpbnVlOyB9OwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmdldExleENv
bmRpdGlvbigpIDwgNCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRMZXhDb25k
aXRpb24oKSA8IDUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSB0aGlz
LmNhc2VfRFNUUklORzsgY29udGludWU7IH07CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gdGhpcy5jYXNlX1NTVFJJTkc7
IGNvbnRpbnVlOyB9OwpAQCAtMTk4LDIwMiArMjEwLDIzNSBAQCBjYXNlIDEyOgogICAgICAgICAg
ICAgICAgIHsgZ290b0Nhc2UgPSA1OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0KIC8qICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCi1jYXNlIHRoaXMuY2FzZV9EU1RS
SU5HOgorY2FzZSB0aGlzLmNhc2VfRE9DVFlQRToKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9j
aGFyQXQoY3Vyc29yKTsKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsKICAgICAgICAg
ICAgICAgICBpZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gMTg7IGNvbnRpbnVlOyB9Owog
ICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAxNzsgY29udGludWU7IH07CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2Ug
PSAxODsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJyInKSB7IGdv
dG9DYXNlID0gMjA7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICc+
JykgeyBnb3RvQ2FzZSA9IDIwOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgICAgICB7IGdvdG9D
YXNlID0gMTc7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgfQogY2FzZSAxNjoKLSAgICAgICAg
ICAgIHsgcmV0dXJuIHRoaXMuX3N0cmluZ1Rva2VuKGN1cnNvcik7IH0KKyAgICAgICAgICAgIHsg
dGhpcy50b2tlblR5cGUgPSAiaHRtbC1kb2N0eXBlIjsgcmV0dXJuIGN1cnNvcjsgfQogY2FzZSAx
NzoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAg
ICAgeyBnb3RvQ2FzZSA9IDI0OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIHsgZ290b0Nhc2Ug
PSAyMzsgY29udGludWU7IH07CiBjYXNlIDE4OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAg
ICAgICAgICB7IHRoaXMudG9rZW5UeXBlID0gbnVsbDsgcmV0dXJuIGN1cnNvcjsgfQogY2FzZSAy
MDoKICAgICAgICAgICAgICsrY3Vyc29yOwotY2FzZSAyMToKLSAgICAgICAgICAgIHRoaXMuc2V0
TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKLSAgICAgICAgICAgIHsgcmV0
dXJuIHRoaXMuX3N0cmluZ1Rva2VuKGN1cnNvciwgdHJ1ZSk7IH0KKyAgICAgICAgICAgIHRoaXMu
c2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCk7CisgICAgICAgICAg
ICB7IHRoaXMudG9rZW5UeXBlID0gImh0bWwtZG9jdHlwZSI7IHJldHVybiBjdXJzb3I7IH0KIGNh
c2UgMjI6Ci0gICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAg
ICAgICAgIHsgZ290b0Nhc2UgPSAyMTsgY29udGludWU7IH07Ci1jYXNlIDIzOgogICAgICAgICAg
ICAgKytjdXJzb3I7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7Ci1j
YXNlIDI0OgorY2FzZSAyMzoKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsKICAgICAg
ICAgICAgICAgICBpZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gMTY7IGNvbnRpbnVlOyB9
OwotICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAyMzsgY29udGludWU7IH07CisgICAgICAg
ICAgICAgICAgeyBnb3RvQ2FzZSA9IDIyOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDE2OyBj
b250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnIicpIHsgZ290b0Nhc2Ug
PSAyMjsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDIzOyBjb250
aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnPicpIHsgZ290b0Nhc2UgPSAx
NjsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDIyOyBjb250aW51
ZTsgfTsKKyAgICAgICAgICAgIH0KKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqICovCitjYXNlIHRoaXMuY2FzZV9EU1RSSU5HOgorICAgICAgICAgICAgeXljaCA9IHRoaXMu
X2NoYXJBdChjdXJzb3IpOworICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xmJykgeworICAgICAg
ICAgICAgICAgIGlmICh5eWNoID09ICdcbicpIHsgZ290b0Nhc2UgPSAyODsgY29udGludWU7IH07
CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDI3OyBjb250aW51ZTsgfTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xyJykgeyBnb3RvQ2Fz
ZSA9IDI4OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnIicpIHsg
Z290b0Nhc2UgPSAzMDsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9
IDI3OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIH0KK2Nhc2UgMjY6CisgICAgICAgICAgICB7
IHJldHVybiB0aGlzLl9zdHJpbmdUb2tlbihjdXJzb3IpOyB9CitjYXNlIDI3OgorICAgICAgICAg
ICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7CisgICAgICAgICAgICB7IGdvdG9DYXNl
ID0gMzQ7IGNvbnRpbnVlOyB9OworY2FzZSAyODoKKyAgICAgICAgICAgICsrY3Vyc29yOworICAg
ICAgICAgICAgeyB0aGlzLnRva2VuVHlwZSA9IG51bGw7IHJldHVybiBjdXJzb3I7IH0KK2Nhc2Ug
MzA6CisgICAgICAgICAgICArK2N1cnNvcjsKK2Nhc2UgMzE6CisgICAgICAgICAgICB0aGlzLnNl
dExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLlRBRyk7CisgICAgICAgICAgICB7IHJl
dHVybiB0aGlzLl9zdHJpbmdUb2tlbihjdXJzb3IsIHRydWUpOyB9CitjYXNlIDMyOgorICAgICAg
ICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7CisgICAgICAgICAgICB7IGdvdG9D
YXNlID0gMzE7IGNvbnRpbnVlOyB9OworY2FzZSAzMzoKKyAgICAgICAgICAgICsrY3Vyc29yOwor
ICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOworY2FzZSAzNDoKKyAgICAg
ICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAn
XG4nKSB7IGdvdG9DYXNlID0gMjY7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIHsgZ290
b0Nhc2UgPSAzMzsgY29udGludWU7IH07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2UgPSAyNjsgY29udGludWU7IH07Cisg
ICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJyInKSB7IGdvdG9DYXNlID0gMzI7IGNvbnRpbnVl
OyB9OworICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAzMzsgY29udGludWU7IH07CiAgICAg
ICAgICAgICB9CiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogY2Fz
ZSB0aGlzLmNhc2VfSU5JVElBTDoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoY3Vy
c29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICc8JykgeyBnb3RvQ2FzZSA9IDI5OyBjb250
aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICc8JykgeyBnb3RvQ2FzZSA9IDM5OyBj
b250aW51ZTsgfTsKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgeyB0aGlzLnRv
a2VuVHlwZSA9IG51bGw7IHJldHVybiBjdXJzb3I7IH0KLWNhc2UgMjk6CitjYXNlIDM5OgogICAg
ICAgICAgICAgeXlhY2NlcHQgPSAwOwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChZ
WU1BUktFUiA9ICsrY3Vyc29yKTsKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICcvJykgewotICAg
ICAgICAgICAgICAgIGlmICh5eWNoID09ICchJykgeyBnb3RvQ2FzZSA9IDM0OyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCA+PSAnLycpIHsgZ290b0Nhc2UgPSAzMTsgY29u
dGludWU7IH07CisgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJyEnKSB7IGdvdG9DYXNlID0g
NDQ7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID49ICcvJykgeyBnb3Rv
Q2FzZSA9IDQxOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPD0gJ1MnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID49
ICdTJykgeyBnb3RvQ2FzZSA9IDMyOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHl5Y2ggPj0gJ1MnKSB7IGdvdG9DYXNlID0gNDI7IGNvbnRpbnVlOyB9OwogICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdzJykgeyBn
b3RvQ2FzZSA9IDMyOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PT0gJ3MnKSB7IGdvdG9DYXNlID0gNDI7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KLWNhc2UgMzA6CitjYXNlIDQwOgorICAgICAgICAgICAgdGhpcy5zZXRM
ZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNl
Q29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMsIGtlZXAg
bGV4ZXIgc3RhdGUgYWx0aG91Z2ggcHJvY2Vzc2luZyAiPCIuCisgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwogICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlv
bnMuVEFHKTsKLQotICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRh
ZyI7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFy
c2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBl
ID0gImh0bWwtdGFnIjsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAg
ICAgICAgICAgICB9Ci1jYXNlIDMxOgorY2FzZSA0MToKICAgICAgICAgICAgIHl5YWNjZXB0ID0g
MDsKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoWVlNQVJLRVIgPSArK2N1cnNvcik7
Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnUycpIHsgZ290b0Nhc2UgPSA1ODsgY29udGludWU7
IH07Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAncycpIHsgZ290b0Nhc2UgPSA1ODsgY29udGlu
dWU7IH07Ci0gICAgICAgICAgICB7IGdvdG9DYXNlID0gMzA7IGNvbnRpbnVlOyB9OwotY2FzZSAz
MjoKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdTJykgeyBnb3RvQ2FzZSA9IDY4OyBjb250aW51
ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdzJykgeyBnb3RvQ2FzZSA9IDY4OyBjb250
aW51ZTsgfTsKKyAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA0MDsgY29udGludWU7IH07CitjYXNl
IDQyOgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAg
ICAgICBpZiAoeXljaCA9PSAnQycpIHsgZ290b0Nhc2UgPSA1MjsgY29udGludWU7IH07Ci0gICAg
ICAgICAgICBpZiAoeXljaCA9PSAnYycpIHsgZ290b0Nhc2UgPSA1MjsgY29udGludWU7IH07Ci1j
YXNlIDMzOgorICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0MnKSB7IGdvdG9DYXNlID0gNjI7IGNv
bnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ2MnKSB7IGdvdG9DYXNlID0gNjI7
IGNvbnRpbnVlOyB9OworY2FzZSA0MzoKICAgICAgICAgICAgIGN1cnNvciA9IFlZTUFSS0VSOwot
ICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDMwOyBjb250aW51ZTsgfTsKLWNhc2UgMzQ6CisgICAg
ICAgICAgICB7IGdvdG9DYXNlID0gNDA7IGNvbnRpbnVlOyB9OworY2FzZSA0NDoKICAgICAgICAg
ICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwogICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ0MnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJy0nKSB7IGdvdG9DYXNlID0g
MzM7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoICE9ICctJykgeyBnb3Rv
Q2FzZSA9IDQzOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPD0gJ0QnKSB7IGdvdG9DYXNlID0gMzY7IGNvbnRpbnVlOyB9OwotICAg
ICAgICAgICAgICAgIGlmICh5eWNoID09ICdkJykgeyBnb3RvQ2FzZSA9IDM2OyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gMzM7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgICAgIGlmICh5eWNoIDw9ICdEJykgeyBnb3RvQ2FzZSA9IDQ2OyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnZCcpIHsgZ290b0Nhc2UgPSA0NjsgY29udGlu
dWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwot
ICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJy0nKSB7IGdvdG9DYXNlID0gNDQ7IGNvbnRpbnVlOyB9
OwotICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDMzOyBjb250aW51ZTsgfTsKLWNhc2UgMzY6Cisg
ICAgICAgICAgICBpZiAoeXljaCA9PSAnLScpIHsgZ290b0Nhc2UgPSA1NDsgY29udGludWU7IH07
CisgICAgICAgICAgICB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworY2FzZSA0NjoKICAg
ICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYg
KHl5Y2ggPT0gJ08nKSB7IGdvdG9DYXNlID0gMzc7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAg
aWYgKHl5Y2ggIT0gJ28nKSB7IGdvdG9DYXNlID0gMzM7IGNvbnRpbnVlOyB9OwotY2FzZSAzNzoK
KyAgICAgICAgICAgIGlmICh5eWNoID09ICdPJykgeyBnb3RvQ2FzZSA9IDQ3OyBjb250aW51ZTsg
fTsKKyAgICAgICAgICAgIGlmICh5eWNoICE9ICdvJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51
ZTsgfTsKK2Nhc2UgNDc6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29y
KTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdDJykgeyBnb3RvQ2FzZSA9IDM4OyBjb250aW51
ZTsgfTsKLSAgICAgICAgICAgIGlmICh5eWNoICE9ICdjJykgeyBnb3RvQ2FzZSA9IDMzOyBjb250
aW51ZTsgfTsKLWNhc2UgMzg6CisgICAgICAgICAgICBpZiAoeXljaCA9PSAnQycpIHsgZ290b0Nh
c2UgPSA0ODsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCAhPSAnYycpIHsgZ290
b0Nhc2UgPSA0MzsgY29udGludWU7IH07CitjYXNlIDQ4OgogICAgICAgICAgICAgeXljaCA9IHRo
aXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnVCcpIHsgZ290
b0Nhc2UgPSAzOTsgY29udGludWU7IH07Ci0gICAgICAgICAgICBpZiAoeXljaCAhPSAndCcpIHsg
Z290b0Nhc2UgPSAzMzsgY29udGludWU7IH07Ci1jYXNlIDM5OgorICAgICAgICAgICAgaWYgKHl5
Y2ggPT0gJ1QnKSB7IGdvdG9DYXNlID0gNDk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYg
KHl5Y2ggIT0gJ3QnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworY2FzZSA0OToKICAg
ICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYg
KHl5Y2ggPT0gJ1knKSB7IGdvdG9DYXNlID0gNDA7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAg
aWYgKHl5Y2ggIT0gJ3knKSB7IGdvdG9DYXNlID0gMzM7IGNvbnRpbnVlOyB9OwotY2FzZSA0MDoK
KyAgICAgICAgICAgIGlmICh5eWNoID09ICdZJykgeyBnb3RvQ2FzZSA9IDUwOyBjb250aW51ZTsg
fTsKKyAgICAgICAgICAgIGlmICh5eWNoICE9ICd5JykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51
ZTsgfTsKK2Nhc2UgNTA6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29y
KTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdQJykgeyBnb3RvQ2FzZSA9IDQxOyBjb250aW51
ZTsgfTsKLSAgICAgICAgICAgIGlmICh5eWNoICE9ICdwJykgeyBnb3RvQ2FzZSA9IDMzOyBjb250
aW51ZTsgfTsKLWNhc2UgNDE6CisgICAgICAgICAgICBpZiAoeXljaCA9PSAnUCcpIHsgZ290b0Nh
c2UgPSA1MTsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCAhPSAncCcpIHsgZ290
b0Nhc2UgPSA0MzsgY29udGludWU7IH07CitjYXNlIDUxOgogICAgICAgICAgICAgeXljaCA9IHRo
aXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnRScpIHsgZ290
b0Nhc2UgPSA0MjsgY29udGludWU7IH07Ci0gICAgICAgICAgICBpZiAoeXljaCAhPSAnZScpIHsg
Z290b0Nhc2UgPSAzMzsgY29udGludWU7IH07Ci1jYXNlIDQyOgorICAgICAgICAgICAgaWYgKHl5
Y2ggPT0gJ0UnKSB7IGdvdG9DYXNlID0gNTI7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYg
KHl5Y2ggIT0gJ2UnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworY2FzZSA1MjoKICAg
ICAgICAgICAgICsrY3Vyc29yOwotICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhp
cy5fbGV4Q29uZGl0aW9ucy5UQUcpOwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLWRvY3R5cGUiOwotICAgICAgICAgICAgICAgICAgICB0
aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5ET0NUWVBFOwotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwotICAgICAgICAgICAgICAgIH0KLWNhc2Ug
NDQ6CisgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25z
LkRPQ1RZUEUpOworICAgICAgICAgICAgeyB0aGlzLnRva2VuVHlwZSA9ICJodG1sLWRvY3R5cGUi
OyByZXR1cm4gY3Vyc29yOyB9CitjYXNlIDU0OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAg
ICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7CiAgICAgICAgICAgICBpZiAoeXlj
aCA8PSAnXGYnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykgeyBnb3RvQ2Fz
ZSA9IDQ3OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gNDQ7IGNv
bnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcbicpIHsgZ290b0Nhc2Ug
PSA1NzsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDU0OyBjb250
aW51ZTsgfTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDQ3OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICBp
ZiAoeXljaCAhPSAnLScpIHsgZ290b0Nhc2UgPSA0NDsgY29udGludWU7IH07CisgICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDU3OyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICBpZiAoeXljaCAhPSAnLScpIHsgZ290b0Nhc2UgPSA1NDsgY29udGludWU7
IH07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAgICAgICAgIHl5
Y2ggPSB0aGlzLl9jaGFyQXQoY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICctJykg
eyBnb3RvQ2FzZSA9IDQ5OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAz
MzsgY29udGludWU7IH07Ci1jYXNlIDQ3OgorICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJy0nKSB7
IGdvdG9DYXNlID0gNTk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDQz
OyBjb250aW51ZTsgfTsKK2Nhc2UgNTc6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAgICAg
ICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuQ09NTUVOVCk7CiAg
ICAgICAgICAgICB7IHRoaXMudG9rZW5UeXBlID0gImh0bWwtY29tbWVudCI7IHJldHVybiBjdXJz
b3I7IH0KLWNhc2UgNDk6CitjYXNlIDU5OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAg
ICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCAh
PSAnPicpIHsgZ290b0Nhc2UgPSA0NDsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXlj
aCAhPSAnPicpIHsgZ290b0Nhc2UgPSA1NDsgY29udGludWU7IH07CiAgICAgICAgICAgICArK2N1
cnNvcjsKICAgICAgICAgICAgIHsgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1jb21tZW50IjsgcmV0
dXJuIGN1cnNvcjsgfQotY2FzZSA1MjoKK2Nhc2UgNjI6CiAgICAgICAgICAgICB5eWNoID0gdGhp
cy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdSJykgeyBnb3Rv
Q2FzZSA9IDUzOyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIGlmICh5eWNoICE9ICdyJykgeyBn
b3RvQ2FzZSA9IDMzOyBjb250aW51ZTsgfTsKLWNhc2UgNTM6CisgICAgICAgICAgICBpZiAoeXlj
aCA9PSAnUicpIHsgZ290b0Nhc2UgPSA2MzsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAo
eXljaCAhPSAncicpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CitjYXNlIDYzOgogICAg
ICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAo
eXljaCA9PSAnSScpIHsgZ290b0Nhc2UgPSA1NDsgY29udGludWU7IH07Ci0gICAgICAgICAgICBp
ZiAoeXljaCAhPSAnaScpIHsgZ290b0Nhc2UgPSAzMzsgY29udGludWU7IH07Ci1jYXNlIDU0Ogor
ICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0knKSB7IGdvdG9DYXNlID0gNjQ7IGNvbnRpbnVlOyB9
OworICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ2knKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVl
OyB9OworY2FzZSA2NDoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3Ip
OwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1AnKSB7IGdvdG9DYXNlID0gNTU7IGNvbnRpbnVl
OyB9OwotICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ3AnKSB7IGdvdG9DYXNlID0gMzM7IGNvbnRp
bnVlOyB9OwotY2FzZSA1NToKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdQJykgeyBnb3RvQ2Fz
ZSA9IDY1OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoICE9ICdwJykgeyBnb3Rv
Q2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2UgNjU6CiAgICAgICAgICAgICB5eWNoID0gdGhp
cy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdUJykgeyBnb3Rv
Q2FzZSA9IDU2OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIGlmICh5eWNoICE9ICd0JykgeyBn
b3RvQ2FzZSA9IDMzOyBjb250aW51ZTsgfTsKLWNhc2UgNTY6CisgICAgICAgICAgICBpZiAoeXlj
aCA9PSAnVCcpIHsgZ290b0Nhc2UgPSA2NjsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAo
eXljaCAhPSAndCcpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CitjYXNlIDY2OgogICAg
ICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlz
Ll9sZXhDb25kaXRpb25zLlRBRyk7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
IHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5f
cGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUX0FUVFJJQlVURTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuU0NSSVBUOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRFeHBlY3RpbmdB
dHRyaWJ1dGUoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAg
ICAgICAgICB9Ci1jYXNlIDU4OgorY2FzZSA2ODoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9j
aGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0MnKSB7IGdvdG9DYXNl
ID0gNTk7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ2MnKSB7IGdvdG9D
YXNlID0gMzM7IGNvbnRpbnVlOyB9OwotY2FzZSA1OToKKyAgICAgICAgICAgIGlmICh5eWNoID09
ICdDJykgeyBnb3RvQ2FzZSA9IDY5OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNo
ICE9ICdjJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2UgNjk6CiAgICAgICAg
ICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNo
ID09ICdSJykgeyBnb3RvQ2FzZSA9IDYwOyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIGlmICh5
eWNoICE9ICdyJykgeyBnb3RvQ2FzZSA9IDMzOyBjb250aW51ZTsgfTsKLWNhc2UgNjA6CisgICAg
ICAgICAgICBpZiAoeXljaCA9PSAnUicpIHsgZ290b0Nhc2UgPSA3MDsgY29udGludWU7IH07Cisg
ICAgICAgICAgICBpZiAoeXljaCAhPSAncicpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07
CitjYXNlIDcwOgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0g
ICAgICAgICAgICBpZiAoeXljaCA9PSAnSScpIHsgZ290b0Nhc2UgPSA2MTsgY29udGludWU7IH07
Ci0gICAgICAgICAgICBpZiAoeXljaCAhPSAnaScpIHsgZ290b0Nhc2UgPSAzMzsgY29udGludWU7
IH07Ci1jYXNlIDYxOgorICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0knKSB7IGdvdG9DYXNlID0g
NzE7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ2knKSB7IGdvdG9DYXNl
ID0gNDM7IGNvbnRpbnVlOyB9OworY2FzZSA3MToKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9j
aGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1AnKSB7IGdvdG9DYXNl
ID0gNjI7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ3AnKSB7IGdvdG9D
YXNlID0gMzM7IGNvbnRpbnVlOyB9OwotY2FzZSA2MjoKKyAgICAgICAgICAgIGlmICh5eWNoID09
ICdQJykgeyBnb3RvQ2FzZSA9IDcyOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNo
ICE9ICdwJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2UgNzI6CiAgICAgICAg
ICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNo
ID09ICdUJykgeyBnb3RvQ2FzZSA9IDYzOyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIGlmICh5
eWNoICE9ICd0JykgeyBnb3RvQ2FzZSA9IDMzOyBjb250aW51ZTsgfTsKLWNhc2UgNjM6CisgICAg
ICAgICAgICBpZiAoeXljaCA9PSAnVCcpIHsgZ290b0Nhc2UgPSA3MzsgY29udGludWU7IH07Cisg
ICAgICAgICAgICBpZiAoeXljaCAhPSAndCcpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07
CitjYXNlIDczOgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExl
eENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLlRBRyk7CiAgICAgICAgICAgICB7CkBAIC00
MDUsMTkwICs0NTAsMTk5IEBAIGNhc2UgNjM6CiBjYXNlIHRoaXMuY2FzZV9TU1RSSU5HOgogICAg
ICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOwogICAgICAgICAgICAgaWYgKHl5
Y2ggPD0gJ1xmJykgewotICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcbicpIHsgZ290b0Nh
c2UgPSA2OTsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDY4OyBj
b250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNl
ID0gNzk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA3ODsgY29u
dGludWU7IH07CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICh5eWNo
IDw9ICdccicpIHsgZ290b0Nhc2UgPSA2OTsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAg
aWYgKHl5Y2ggPT0gJ1wnJykgeyBnb3RvQ2FzZSA9IDcxOyBjb250aW51ZTsgfTsKLSAgICAgICAg
ICAgICAgICB7IGdvdG9DYXNlID0gNjg7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlm
ICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2UgPSA3OTsgY29udGludWU7IH07CisgICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPT0gJ1wnJykgeyBnb3RvQ2FzZSA9IDgxOyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gNzg7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAg
fQotY2FzZSA2NzoKK2Nhc2UgNzc6CiAgICAgICAgICAgICB7IHJldHVybiB0aGlzLl9zdHJpbmdU
b2tlbihjdXJzb3IpOyB9Ci1jYXNlIDY4OgorY2FzZSA3ODoKICAgICAgICAgICAgIHl5Y2ggPSB0
aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDc1OyBjb250
aW51ZTsgfTsKLWNhc2UgNjk6CisgICAgICAgICAgICB7IGdvdG9DYXNlID0gODU7IGNvbnRpbnVl
OyB9OworY2FzZSA3OToKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgeyB0aGlz
LnRva2VuVHlwZSA9IG51bGw7IHJldHVybiBjdXJzb3I7IH0KLWNhc2UgNzE6CitjYXNlIDgxOgog
ICAgICAgICAgICAgKytjdXJzb3I7Ci1jYXNlIDcyOgorY2FzZSA4MjoKICAgICAgICAgICAgIHRo
aXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKICAgICAgICAgICAg
IHsgcmV0dXJuIHRoaXMuX3N0cmluZ1Rva2VuKGN1cnNvciwgdHJ1ZSk7IH0KLWNhc2UgNzM6Citj
YXNlIDgzOgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAg
ICAgICAgICB7IGdvdG9DYXNlID0gNzI7IGNvbnRpbnVlOyB9OwotY2FzZSA3NDoKKyAgICAgICAg
ICAgIHsgZ290b0Nhc2UgPSA4MjsgY29udGludWU7IH07CitjYXNlIDg0OgogICAgICAgICAgICAg
KytjdXJzb3I7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7Ci1jYXNl
IDc1OgorY2FzZSA4NToKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gNjc7IGNvbnRpbnVlOyB9Owot
ICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA3NDsgY29udGludWU7IH07CisgICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDc3OyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gODQ7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0g
Njc7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcJycpIHsgZ290
b0Nhc2UgPSA3MzsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDc0
OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9D
YXNlID0gNzc7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcJycp
IHsgZ290b0Nhc2UgPSA4MzsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2Fz
ZSA9IDg0OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0KIC8qICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqICovCiBjYXNlIHRoaXMuY2FzZV9UQUc6CiAgICAgICAgICAgICB5
eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCA8PSAnPScp
IHsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXCcnKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmICh5eWNoID09ICciJykgeyBnb3RvQ2FzZSA9IDgwOyBjb250aW51ZTsgfTsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHl5Y2ggPj0gJ1wnJykgeyBnb3RvQ2FzZSA9IDgxOyBjb250aW51
ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoIDw9ICcmJykgeworICAgICAgICAgICAgICAgIGlm
ICh5eWNoIDw9ICdccicpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykg
eyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5
Y2ggPj0gJ1xyJykgeyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnLycpIHsgZ290b0Nh
c2UgPSA3ODsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc5
JykgeyBnb3RvQ2FzZSA9IDgyOyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPj0gJz0nKSB7IGdvdG9DYXNlID0gODQ7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAg
ICAgICAgICBpZiAoeXljaCA8PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5
eWNoID49ICcgJykgeyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICciJykg
eyBnb3RvQ2FzZSA9IDkyOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPD0gJ14nKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc+JykgeyBn
b3RvQ2FzZSA9IDg2OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ0AnKSB7IGdvdG9DYXNlID0gNzg7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAg
ICBpZiAoeXljaCA8PSAnWicpIHsgZ290b0Nhc2UgPSA4MjsgY29udGludWU7IH07CisgICAgICAg
ICAgICAgICAgaWYgKHl5Y2ggPD0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh5eWNo
IDw9ICc7JykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1wnJykgeyBn
b3RvQ2FzZSA9IDkzOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc8JykgeyBnb3RvQ2FzZSA9IDkw
OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc9Jykg
eyBnb3RvQ2FzZSA9IDk0OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsg
Z290b0Nhc2UgPSA5NjsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnYCcp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdfJykgeyBnb3RvQ2FzZSA9
IDgyOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1snKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA+PSAnWycpIHsgZ290b0Nhc2UgPSA5
MDsgY29udGludWU7IH07CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoeXljaCA8PSAneicpIHsgZ290b0Nhc2UgPSA4MjsgY29udGludWU7
IH07Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA+PSAweDgwKSB7IGdvdG9DYXNl
ID0gODI7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0g
J10nKSB7IGdvdG9DYXNlID0gOTA7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotY2FzZSA3ODoKLSAgICAgICAgICAg
ICsrY3Vyc29yOwotICAgICAgICAgICAgeyB0aGlzLnRva2VuVHlwZSA9IG51bGw7IHJldHVybiBj
dXJzb3I7IH0KLWNhc2UgODA6Ci0gICAgICAgICAgICB5eWFjY2VwdCA9IDA7Ci0gICAgICAgICAg
ICB5eWNoID0gdGhpcy5fY2hhckF0KFlZTUFSS0VSID0gKytjdXJzb3IpOwotICAgICAgICAgICAg
eyBnb3RvQ2FzZSA9IDk3OyBjb250aW51ZTsgfTsKLWNhc2UgODE6Ci0gICAgICAgICAgICB5eWFj
Y2VwdCA9IDA7Ci0gICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KFlZTUFSS0VSID0gKytj
dXJzb3IpOwotICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDkxOyBjb250aW51ZTsgfTsKLWNhc2Ug
ODI6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFy
QXQoY3Vyc29yKTsKLSAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07Ci1j
YXNlIDgzOgorICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDEwOTsgY29udGludWU7IH07CitjYXNl
IDg5OgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VD
b25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBpZiBleHBlY3RpbmcgYXR0cmlidXRlcy4KICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5JTklUSUFMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2Vu
VHlwZSA9ICJodG1sLXRhZyI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNv
bmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJVVEU7Ci0gICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAodGhpcy5faXNBdHRyaWJ1dGUoKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtYXR0ci1uYW1lIjsKLSAgICAgICAgICAgICAg
ICAgICAgZWxzZSBpZiAodGhpcy5faXNBdHRyaWJ1dGVWYWx1ZSgpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1hdHRyLXZhbHVlIjsKLSAgICAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29u
ZGl0aW9ucy5ET0NUWVBFKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUg
PSAiaHRtbC1kb2N0eXBlIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEV4cGVj
dGluZ0F0dHJpYnV0ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRva2VuID0gdGhp
cy5fbGluZS5zdWJzdHJpbmcoY3Vyc29yT25FbnRlciwgY3Vyc29yKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0b2tlbiA9PT0gImEiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BX05PREU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiAmIHRo
aXMuX3BhcnNlQ29uZGl0aW9ucy5BX05PREUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0
cmluZyhjdXJzb3JPbkVudGVyLCBjdXJzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRva2VuID09PSAiaHJlZiIgfHwgdG9rZW4gPT09ICJzcmMiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5M
SU5LSUZZOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fcGFyc2VDb25k
aXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25z
LkxJTktJRlk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1s
LWF0dHJpYnV0ZS1uYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9p
c0V4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LnRva2VuVHlwZSA9IHRoaXMuX2F0dHJWYWx1ZVRva2VuVHlwZSgpOwogICAgICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQot
Y2FzZSA4NDoKK2Nhc2UgOTA6CisgICAgICAgICAgICArK2N1cnNvcjsKKyAgICAgICAgICAgIHsg
dGhpcy50b2tlblR5cGUgPSBudWxsOyByZXR1cm4gY3Vyc29yOyB9CitjYXNlIDkyOgorICAgICAg
ICAgICAgeXlhY2NlcHQgPSAwOworICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChZWU1B
UktFUiA9ICsrY3Vyc29yKTsKKyAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAxMDU7IGNvbnRpbnVl
OyB9OworY2FzZSA5MzoKKyAgICAgICAgICAgIHl5YWNjZXB0ID0gMDsKKyAgICAgICAgICAgIHl5
Y2ggPSB0aGlzLl9jaGFyQXQoWVlNQVJLRVIgPSArK2N1cnNvcik7CisgICAgICAgICAgICB7IGdv
dG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OworY2FzZSA5NDoKICAgICAgICAgICAgICsrY3Vyc29y
OwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNBdHRyaWJ1
dGUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0QXR0cmlidXRlVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5f
cGFyc2VDb25kaXRpb25zLkRPQ1RZUEUpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRv
a2VuVHlwZSA9ICJodG1sLWRvY3R5cGUiOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fc2V0RXhwZWN0aW5nQXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KLWNhc2UgODY6CitjYXNlIDk2OgogICAgICAg
ICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9s
ZXhDb25kaXRpb25zLklOSVRJQUwpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJ
UFQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhp
cy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMuCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuRE9DVFlQ
RSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtZG9jdHlw
ZSI7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKLQotICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFRfQVRUUklC
VVRFKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29u
ZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlv
biA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAgICAgICB0
aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
dXJzb3I7CiAgICAgICAgICAgICAgICAgfQotY2FzZSA4ODoKLSAgICAgICAgICAgICsrY3Vyc29y
OwotICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOwotY2FzZSA4OToKLSAg
ICAgICAgICAgIGlmICh5eWNoIDw9ICdeJykgewotICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9
ICc5JykgewotICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnLycpIHsgZ290b0Nhc2Ug
PSA4MzsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA4ODsg
Y29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggPD0gJ0AnKSB7IGdvdG9DYXNlID0gODM7IGNvbnRpbnVlOyB9OwotICAgICAg
ICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnWicpIHsgZ290b0Nhc2UgPSA4ODsgY29udGludWU7
IH07Ci0gICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA4MzsgY29udGludWU7IH07Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAoeXljaCA8PSAnYCcpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ18nKSB7
IGdvdG9DYXNlID0gODg7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAgICB7IGdvdG9D
YXNlID0gODM7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICh5eWNoIDw9ICd6JykgeyBnb3RvQ2FzZSA9IDg4OyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gMHg3RikgeyBnb3RvQ2FzZSA9IDgz
OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDg4OyBjb250
aW51ZTsgfTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci1jYXNlIDkwOgorY2Fz
ZSA5ODoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2No
YXJBdChjdXJzb3IpOwotY2FzZSA5MToKK2Nhc2UgOTk6CiAgICAgICAgICAgICBpZiAoeXljaCA8
PSAnXGYnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ1xuJykgeyBnb3RvQ2FzZSA9
IDkwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCAhPSAnXG4nKSB7IGdv
dG9DYXNlID0gOTg7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0gOTI7IGNvbnRpbnVlOyB9Owot
ICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcJycpIHsgZ290b0Nhc2UgPSA5NDsgY29udGlu
dWU7IH07Ci0gICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0gMTAwOyBjb250aW51
ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gMTAy
OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTg7IGNvbnRpbnVl
OyB9OwogICAgICAgICAgICAgfQotY2FzZSA5MjoKK2Nhc2UgMTAwOgogICAgICAgICAgICAgKytj
dXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRp
b25zLlNTVFJJTkcpOwogICAgICAgICAgICAgeyByZXR1cm4gdGhpcy5fc3RyaW5nVG9rZW4oY3Vy
c29yKTsgfQotY2FzZSA5NDoKK2Nhc2UgMTAyOgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAg
ICAgICAgICB7IHJldHVybiB0aGlzLl9zdHJpbmdUb2tlbihjdXJzb3IsIHRydWUpOyB9Ci1jYXNl
IDk2OgorY2FzZSAxMDQ6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAgICAgICAgIHl5Y2gg
PSB0aGlzLl9jaGFyQXQoY3Vyc29yKTsKLWNhc2UgOTc6CitjYXNlIDEwNToKICAgICAgICAgICAg
IGlmICh5eWNoIDw9ICdcZicpIHsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCAhPSAnXG4nKSB7
IGdvdG9DYXNlID0gOTY7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoICE9
ICdcbicpIHsgZ290b0Nhc2UgPSAxMDQ7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0gOTg7IGNv
bnRpbnVlOyB9OwotICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICciJykgeyBnb3RvQ2FzZSA9
IDk0OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTY7IGNvbnRp
bnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2UgPSAx
MDY7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICciJykgeyBnb3Rv
Q2FzZSA9IDEwMjsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDEw
NDsgY29udGludWU7IH07CiAgICAgICAgICAgICB9Ci1jYXNlIDk4OgorY2FzZSAxMDY6CiAgICAg
ICAgICAgICArK2N1cnNvcjsKICAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMu
X2xleENvbmRpdGlvbnMuRFNUUklORyk7CiAgICAgICAgICAgICB7IHJldHVybiB0aGlzLl9zdHJp
bmdUb2tlbihjdXJzb3IpOyB9CitjYXNlIDEwODoKKyAgICAgICAgICAgICsrY3Vyc29yOworICAg
ICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOworY2FzZSAxMDk6CisgICAgICAg
ICAgICBpZiAoeXljaCA8PSAnIicpIHsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHIn
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcbicpIHsgZ290b0Nhc2UgPSA4
OTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsg
Z290b0Nhc2UgPSAxMDg7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICB7IGdvdG9D
YXNlID0gODk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICh5eWNoID09ICcgJykgeyBnb3RvQ2FzZSA9IDg5OyBjb250aW51ZTsg
fTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJyEnKSB7IGdvdG9DYXNlID0gMTA4
OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDg5OyBjb250
aW51ZTsgfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGlmICh5eWNoIDw9ICc+JykgeworICAgICAgICAgICAgICAgICAgICBpZiAoeXlj
aCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gODk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAg
ICAgICBpZiAoeXljaCA8PSAnOycpIHsgZ290b0Nhc2UgPSAxMDg7IGNvbnRpbnVlOyB9OworICAg
ICAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gODk7IGNvbnRpbnVlOyB9OworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdbJykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1onKSB7IGdvdG9DYXNlID0gMTA4
OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA4OTsg
Y29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoeXljaCA9PSAnXScpIHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07
CisgICAgICAgICAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gMTA4OyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMKaW5kZXggMTdkMWUyYS4uODljNTM1YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6
ZXIucmUyanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tl
bml6ZXIucmUyanMKQEAgLTQ4LDEzICs0OCwxNSBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRv
a2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9sZXhDb25kaXRpb25zID0gewogICAgICAg
ICBJTklUSUFMOiAwLAogICAgICAgICBDT01NRU5UOiAxLAotICAgICAgICBUQUc6IDIsCisgICAg
ICAgIERPQ1RZUEU6IDIsCisgICAgICAgIFRBRzogMywKICAgICAgICAgRFNUUklORzogNCwKICAg
ICAgICAgU1NUUklORzogNQogICAgIH07CiAgICAgdGhpcy5jYXNlX0lOSVRJQUwgPSAxMDAwOwog
ICAgIHRoaXMuY2FzZV9DT01NRU5UID0gMTAwMTsKLSAgICB0aGlzLmNhc2VfVEFHID0gMTAwMjsK
KyAgICB0aGlzLmNhc2VfRE9DVFlQRSA9IDEwMDI7CisgICAgdGhpcy5jYXNlX1RBRyA9IDEwMDM7
CiAgICAgdGhpcy5jYXNlX0RTVFJJTkcgPSAxMDA0OwogICAgIHRoaXMuY2FzZV9TU1RSSU5HID0g
MTAwNTsKIApAQCAtNjIsNTUgKzY0LDYxIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5p
emVyID0gZnVuY3Rpb24oKQogICAgICAgICBJTklUSUFMOiAwLAogICAgICAgICBBVFRSSUJVVEU6
IDEsCiAgICAgICAgIEFUVFJJQlVURV9WQUxVRTogMiwKLSAgICAgICAgU0NSSVBUOiAzLAotICAg
ICAgICBTQ1JJUFRfQVRUUklCVVRFOiA0LAotICAgICAgICBTQ1JJUFRfQVRUUklCVVRFX1ZBTFVF
OiA1LAotICAgICAgICBET0NUWVBFOiA2CisgICAgICAgIExJTktJRlk6IDQsCisgICAgICAgIEFf
Tk9ERTogOCwKKyAgICAgICAgU0NSSVBUOiAxNgogICAgIH07CiAKICAgICB0aGlzLmluaXRpYWxD
b25kaXRpb24gPSB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMLCBw
YXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUwgfTsKIH0KIAogV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewotICAgIF9pc0F0dHJp
YnV0ZTogZnVuY3Rpb24oKQorICAgIF9pc0V4cGVjdGluZ0F0dHJpYnV0ZTogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJz
ZUNvbmRpdGlvbnMuQVRUUklCVVRFIHx8IHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9w
YXJzZUNvbmRpdGlvbnMuU0NSSVBUX0FUVFJJQlVURTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Bh
cnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURTsKICAgICB9LAog
Ci0gICAgX2lzQXR0cmlidXRlVmFsdWU6IGZ1bmN0aW9uKCkKKyAgICBfaXNFeHBlY3RpbmdBdHRy
aWJ1dGVWYWx1ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNl
Q29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFIHx8IHRo
aXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUX0FUVFJJ
QlVURV9WQUxVRTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5f
cGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKICAgICB9LAogCi0gICAgX3NldEF0dHJp
YnV0ZVZhbHVlOiBmdW5jdGlvbigpCisgICAgX3NldEV4cGVjdGluZ0F0dHJpYnV0ZTogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9w
YXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFKQotICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRp
b24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFOwotICAgICAgICBlbHNl
IGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLlNDUklQ
VF9BVFRSSUJVVEUpCi0gICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3Bh
cnNlQ29uZGl0aW9ucy5TQ1JJUFRfQVRUUklCVVRFX1ZBTFVFOworICAgICAgICBpZiAodGhpcy5f
aXNFeHBlY3RpbmdBdHRyaWJ1dGVWYWx1ZSgpKQorICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25k
aXRpb24gXj0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURV9WQUxVRTsKKyAgICAgICAg
dGhpcy5fcGFyc2VDb25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFUVFJJQlVURTsK
ICAgICB9LAogCi0gICAgX3NldEF0dHJpYnV0ZTogZnVuY3Rpb24oKQorICAgIF9zZXRFeHBlY3Rp
bmdBdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Bh
cnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQVRUUklCVVRFX1ZBTFVFKQot
ICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
QVRUUklCVVRFOwotICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLlNDUklQVF9BVFRSSUJVVEVfVkFMVUUpCi0gICAgICAgICAgICB0
aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFRfQVRUUklC
VVRFOworICAgICAgICBpZiAodGhpcy5faXNFeHBlY3RpbmdBdHRyaWJ1dGUoKSkKKyAgICAgICAg
ICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIF49IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BVFRSSUJV
VEU7CisgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uIHw9IHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5BVFRSSUJVVEVfVkFMVUU7CiAgICAgfSwKIAogICAgIF9zdHJpbmdUb2tlbjogZnVuY3Rpb24o
Y3Vyc29yLCBzdHJpbmdFbmRzKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lzQXR0cmlidXRl
VmFsdWUoKSkgewotICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1hdHRyLXZhbHVl
IjsKLSAgICAgICAgICAgIGlmIChzdHJpbmdFbmRzKQotICAgICAgICAgICAgICAgIHRoaXMuX3Nl
dEF0dHJpYnV0ZSgpOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuRE9DVFlQRSkKLSAgICAgICAgICAgIHRoaXMudG9rZW5U
eXBlID0gImh0bWwtZG9jdHlwZSI7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKCF0aGlzLl9p
c0V4cGVjdGluZ0F0dHJpYnV0ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBl
ID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CisgICAgICAgIH0KKyAgICAgICAg
dGhpcy50b2tlblR5cGUgPSB0aGlzLl9hdHRyVmFsdWVUb2tlblR5cGUoKTsKKyAgICAgICAgaWYg
KHN0cmluZ0VuZHMpCisgICAgICAgICAgICB0aGlzLl9zZXRFeHBlY3RpbmdBdHRyaWJ1dGUoKTsK
ICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICB9LAogCisgICAgX2F0dHJWYWx1ZVRva2VuVHlw
ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYg
dGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlkpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9w
YXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5BX05PREUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuICJodG1sLWV4dGVybmFsLWxpbmsiOworICAgICAgICAgICAgcmV0dXJuICJo
dG1sLXJlc291cmNlLWxpbmsiOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiaHRtbC1hdHRy
aWJ1dGUtdmFsdWUiOworICAgIH0sCisKICAgICBuZXh0VG9rZW46IGZ1bmN0aW9uKGN1cnNvcikK
ICAgICB7CiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVyID0gY3Vyc29yOwpAQCAtMTM1LDcgKzE0
Myw5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICBDb21tZW50U3RhcnQgPSAiPCEtLSIgQ29tbWVudENvbnRlbnQgW1xyXG5d
OwogICAgICAgICAgICAgICAgIENvbW1lbnRFbmQgPSBDb21tZW50Q29udGVudCAiLS0+IjsKIAot
ICAgICAgICAgICAgICAgIERvY1R5cGVMVCA9ICI8ISIgW0RkXSBbT29dIFtDY10gW1R0XSBbWXld
IFtQcF0gW0VlXTsKKyAgICAgICAgICAgICAgICBEb2NUeXBlU3RhcnQgPSAiPCEiIFtEZF0gW09v
XSBbQ2NdIFtUdF0gW1l5XSBbUHBdIFtFZV07CisgICAgICAgICAgICAgICAgRG9jVHlwZUNvbnRl
bnQgPSBbXlxyXG4+XSo7CisKICAgICAgICAgICAgICAgICBTY3JpcHRTdGFydCA9ICI8IiBbU3Nd
IFtDY10gW1JyXSBbSWldIFtQcF0gW1R0XTsKICAgICAgICAgICAgICAgICBTY3JpcHRFbmQgPSAi
PC8iIFtTc10gW0NjXSBbUnJdIFtJaV0gW1BwXSBbVHRdOwogCkBAIC0xNTEsMjQgKzE2MSwyMiBA
QCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgU2luZ2xlU3RyaW5nU3RhcnQgPSAiJyIgU2luZ2xlU3RyaW5nQ29udGVudCBbXHJc
bl07CiAgICAgICAgICAgICAgICAgU2luZ2xlU3RyaW5nRW5kID0gU2luZ2xlU3RyaW5nQ29udGVu
dCAiJyI7CiAKLSAgICAgICAgICAgICAgICBJZGVudGlmaWVyID0gW19hLXpBLVowLTlceDgwLVx4
RkZdKzsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyID0gW14gXHJcbiInPD5cW1xdPV0rOwog
CiAgICAgICAgICAgICAgICAgPElOSVRJQUw+IENvbW1lbnQgeyB0aGlzLnRva2VuVHlwZSA9ICJo
dG1sLWNvbW1lbnQiOyByZXR1cm4gY3Vyc29yOyB9CiAgICAgICAgICAgICAgICAgPElOSVRJQUw+
IENvbW1lbnRTdGFydCA9PiBDT01NRU5UIHsgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1jb21tZW50
IjsgcmV0dXJuIGN1cnNvcjsgfQogICAgICAgICAgICAgICAgIDxDT01NRU5UPiBDb21tZW50Q29u
dGVudCA9PiBDT01NRU5UIHsgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1jb21tZW50IjsgcmV0dXJu
IGN1cnNvcjsgfQogICAgICAgICAgICAgICAgIDxDT01NRU5UPiBDb21tZW50RW5kID0+IElOSVRJ
QUwgeyB0aGlzLnRva2VuVHlwZSA9ICJodG1sLWNvbW1lbnQiOyByZXR1cm4gY3Vyc29yOyB9CiAK
LSAgICAgICAgICAgICAgICA8SU5JVElBTD4gRG9jVHlwZUxUID0+IFRBRwotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1kb2N0eXBl
IjsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJz
ZUNvbmRpdGlvbnMuRE9DVFlQRTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsK
LSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgPElOSVRJQUw+IERvY1R5cGVTdGFy
dCA9PiBET0NUWVBFIHsgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1kb2N0eXBlIjsgcmV0dXJuIGN1
cnNvcjsgfQorICAgICAgICAgICAgICAgIDxET0NUWVBFPiBEb2NUeXBlQ29udGVudCA9PiBET0NU
WVBFIHsgdGhpcy50b2tlblR5cGUgPSAiaHRtbC1kb2N0eXBlIjsgcmV0dXJuIGN1cnNvcjsgfQor
ICAgICAgICAgICAgICAgIDxET0NUWVBFPiBHVCA9PiBJTklUSUFMIHsgdGhpcy50b2tlblR5cGUg
PSAiaHRtbC1kb2N0eXBlIjsgcmV0dXJuIGN1cnNvcjsgfQogCiAgICAgICAgICAgICAgICAgPElO
SVRJQUw+IFNjcmlwdFN0YXJ0ID0+IFRBRwogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOwotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFRfQVRU
UklCVVRFOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQ7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEV4
cGVjdGluZ0F0dHJpYnV0ZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwog
ICAgICAgICAgICAgICAgIH0KIApAQCAtMTc5LDM3ICsxODcsMzAgQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIDxJTklUSUFM
PiBMVAorICAgICAgICAgICAgICAgIDxJTklUSUFMPiBMVCA9PiBUQUcKICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgdG9rZW5pemUgc2NyaXB0IHRhZyBjb250ZW50
cywga2VlcCBsZXhlciBzdGF0ZSBhbHRob3VnaCBwcm9jZXNzaW5nICI8Ii4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5J
VElBTCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gT25seSBtYWtlIGxleGVyIHRyYW5zaXRpb24g
aWYgbm90IGluIHNjcmlwdCB0YWcuCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29u
ZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKLQotICAgICAgICAgICAgICAgICAgICB0
aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Bh
cnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICA8
VEFHPiBHVCA9PiBJTklUSUFMCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJ
UFQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhp
cy5fcGFyc2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMuCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuRE9DVFlQ
RSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtZG9jdHlw
ZSI7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKLQotICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fcGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFRfQVRUUklC
VVRFKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29u
ZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlv
biA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAgICAgICB0
aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
dXJzb3I7CiAgICAgICAgICAgICAgICAgfQogCkBAIC0yMjMsMzIgKzIyNCwzNyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgICAg
ICA8VEFHPiBFcXVhbFNpZ24gPT4gVEFHCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICBpZiAodGhpcy5faXNBdHRyaWJ1dGUoKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
c2V0QXR0cmlidXRlVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlz
Ll9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkRPQ1RZUEUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLWRvY3R5cGUiOwotICAg
ICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2Vu
VHlwZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0
dHJpYnV0ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0aW5nQXR0
cmlidXRlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxs
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgICAgIDxUQUc+IElkZW50aWZpZXIKICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFy
c2VDb25kaXRpb25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0
aHJvdWdoIGlmIGV4cGVjdGluZyBhdHRyaWJ1dGVzLgogICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy50b2tlblR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1
cnNvcjsKICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLl9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUwpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLkFUVFJJQlVURTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlz
Ll9pc0F0dHJpYnV0ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUg
PSAiaHRtbC1hdHRyLW5hbWUiOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9p
c0F0dHJpYnV0ZVZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlw
ZSA9ICJodG1sLWF0dHItdmFsdWUiOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlz
Ll9wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkRPQ1RZUEUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLWRvY3R5cGUiOworICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0aW5nQXR0cmlidXRlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9saW5lLnN1YnN0cmluZyhjdXJz
b3JPbkVudGVyLCBjdXJzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09
PSAiYSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VDb25kaXRpb24g
fD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkFfTk9ERTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2UgaWYgKHRoaXMuX3BhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLkFf
Tk9ERSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZUNvbmRpdGlvbiBe
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuQV9OT0RFOworICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciB0b2tlbiA9IHRoaXMuX2xpbmUuc3Vic3RyaW5nKGN1cnNvck9uRW50ZXIsIGN1
cnNvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4gPT09ICJocmVmIiB8fCB0
b2tlbiA9PT0gInNyYyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFyc2VD
b25kaXRpb24gfD0gdGhpcy5fcGFyc2VDb25kaXRpb25zLkxJTktJRlk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9wYXJzZUNvbmRpdGlvbiB8PSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuTElOS0lGWSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXJz
ZUNvbmRpdGlvbiBePSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuTElOS0lGWTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtYXR0cmlidXRlLW5hbWUiOworICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lzRXhwZWN0aW5nQXR0cmlidXRlVmFs
dWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gdGhpcy5fYXR0
clZhbHVlVG9rZW5UeXBlKCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGN1cnNvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMK
aW5kZXggMjkyYjhhZi4uMWQ1ZTRjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZVZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZVZpZXcuanMKQEAgLTgyLDcgKzgyLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJv
dG90eXBlID0gewogICAgIAogICAgIF9jb250ZW50TG9hZGVkOiBmdW5jdGlvbihjb250ZW50KQog
ICAgIHsKLSAgICAgICAgdGhpcy5zb3VyY2VGcmFtZS5zZXRDb250ZW50KHRoaXMucmVzb3VyY2Uu
bWltZVR5cGUsIGNvbnRlbnQpOworICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLnNldENvbnRlbnQo
dGhpcy5yZXNvdXJjZS5taW1lVHlwZSwgY29udGVudCwgdGhpcy5yZXNvdXJjZS51cmwpOwogICAg
ICAgICB0aGlzLl9zb3VyY2VGcmFtZVNldHVwRmluaXNoZWQoKTsKICAgICB9LAogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwpp
bmRleCA5YTdhMDUwLi5jNzNlMDM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKQEAgLTQ3LDEwICs0NywxMiBAQCBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyID0gZnVuY3Rpb24odGV4dE1vZGVsLCBkYW1h
Z2VDYWxsYmFjaykKIAogICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggaW5zcGVjdG9yLmNz
cyBhbmQgdmlldy1zb3VyY2UuY3NzICovCiAgICAgdGhpcy5fc3R5bGVzWyJodG1sLXRhZyJdID0g
InJnYigxMzYsIDE4LCAxMjgpIjsKLSAgICB0aGlzLl9zdHlsZXNbImh0bWwtYXR0ci1uYW1lIl0g
PSAicmdiKDE1MywgNjksIDApIjsKLSAgICB0aGlzLl9zdHlsZXNbImh0bWwtYXR0ci12YWx1ZSJd
ID0gInJnYigyNiwgMjYsIDE2NikiOworICAgIHRoaXMuX3N0eWxlc1siaHRtbC1hdHRyaWJ1dGUt
bmFtZSJdID0gInJnYigxNTMsIDY5LCAwKSI7CisgICAgdGhpcy5fc3R5bGVzWyJodG1sLWF0dHJp
YnV0ZS12YWx1ZSJdID0gInJnYigyNiwgMjYsIDE2NikiOwogICAgIHRoaXMuX3N0eWxlc1siaHRt
bC1jb21tZW50Il0gPSAicmdiKDM1LCAxMTAsIDM3KSI7CiAgICAgdGhpcy5fc3R5bGVzWyJodG1s
LWRvY3R5cGUiXSA9ICJyZ2IoMTkyLCAxOTIsIDE5MikiOworICAgIHRoaXMuX3N0eWxlc1siaHRt
bC1leHRlcm5hbC1saW5rIl0gPSAiIzAwZSI7CisgICAgdGhpcy5fc3R5bGVzWyJodG1sLXJlc291
cmNlLWxpbmsiXSA9ICIjMDBlIjsKIAogICAgIHRoaXMuX3N0eWxlc1siamF2YXNjcmlwdC1jb21t
ZW50Il0gPSAicmdiKDAsIDExNiwgMCkiOwogICAgIHRoaXMuX3N0eWxlc1siamF2YXNjcmlwdC1z
dHJpbmciXSA9ICJyZ2IoMTk2LCAyNiwgMjIpIjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5jc3MKaW5kZXggNTU4MDRmMy4uNDJlMjEzYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTExODcsNDYgKzExODcsNiBAQCBib2R5LnBs
YXRmb3JtLXdpbmRvd3MgLnNvdXJjZS1jb2RlLCBib2R5LnBsYXRmb3JtLXdpbmRvd3MtdmlzdGEt
b3ItbGF0ZXIgLnNvdXJjZQogICAgIGRpc3BsYXk6IGJsb2NrOwogfQogCi0ud2Via2l0LWh0bWwt
Y29tbWVudCB7Ci0gICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3Mg
KC53ZWJraXQtaHRtbC1jb21tZW50KSAqLwotICAgIGNvbG9yOiByZ2IoMzUsIDExMCwgMzcpOwot
fQotCi0ud2Via2l0LWh0bWwtdGFnIHsKLSAgICAvKiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHZp
ZXctc291cmNlLmNzcyAoLndlYmtpdC1odG1sLXRhZykgKi8KLSAgICBjb2xvcjogcmdiKDEzNiwg
MTgsIDEyOCk7Ci19Ci0KLS53ZWJraXQtaHRtbC1kb2N0eXBlIHsKLSAgICAvKiBLZWVwIHRoaXMg
aW4gc3luYyB3aXRoIHZpZXctc291cmNlLmNzcyAoLndlYmtpdC1odG1sLWRvY3R5cGUpICovCi0g
ICAgY29sb3I6IHJnYigxOTIsIDE5MiwgMTkyKTsKLX0KLQotLndlYmtpdC1odG1sLWF0dHJpYnV0
ZS1uYW1lIHsKLSAgICAvKiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHZpZXctc291cmNlLmNzcyAo
LndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lKSAqLwotICAgIGNvbG9yOiByZ2IoMTUzLCA2OSwg
MCk7Ci19Ci0KLS53ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUgewotICAgIC8qIEtlZXAgdGhp
cyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Via2l0LWh0bWwtYXR0cmlidXRlLXZh
bHVlKSAqLwotICAgIGNvbG9yOiByZ2IoMjYsIDI2LCAxNjYpOwotfQotCi0ud2Via2l0LWh0bWwt
ZXh0ZXJuYWwtbGluaywgLndlYmtpdC1odG1sLXJlc291cmNlLWxpbmsgewotICAgIC8qIEtlZXAg
dGhpcyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Via2l0LWh0bWwtZXh0ZXJuYWwt
bGluaywgLndlYmtpdC1odG1sLXJlc291cmNlLWxpbmspICovCi0gICAgY29sb3I6ICMwMGU7Ci19
Ci0KLS53ZWJraXQtaHRtbC1leHRlcm5hbC1saW5rIHsKLSAgICAvKiBLZWVwIHRoaXMgaW4gc3lu
YyB3aXRoIHZpZXctc291cmNlLmNzcyAoLndlYmtpdC1odG1sLWV4dGVybmFsLWxpbmspICovCi0g
ICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotfQotCi0ud2Via2l0LWh0bWwtZXh0ZXJuYWwtbGlu
azpob3ZlciB7Ci0gICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3Mg
KC53ZWJraXQtaHRtbC1leHRlcm5hbC1saW5rOmhvdmVyKSAqLwotICAgIHRleHQtZGVjb3JhdGlv
bjogdW5kZXJsaW5lOwotfQotCiAuYWRkLWF0dHJpYnV0ZSB7CiAgICAgbWFyZ2luLWxlZnQ6IDFw
eDsKICAgICBtYXJnaW4tcmlnaHQ6IDFweDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCmluZGV4IGM2MzdmMzcuLmYyOGQ5NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTUyOCw2ICsxNTI4LDIwIEBAIFdlYkluc3BlY3Rvci5s
aW5raWZ5VVJMID0gZnVuY3Rpb24odXJsLCBsaW5rVGV4dCwgY2xhc3NlcywgaXNFeHRlcm5hbCwg
dG9vbHRpcFRlCiAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHVybCwg
bGlua1RleHQsIGNsYXNzZXMsIGlzRXh0ZXJuYWwsIHRvb2x0aXBUZXh0KS5vdXRlckhUTUw7CiB9
CiAKK1dlYkluc3BlY3Rvci5jb21wbGV0ZVVSTCA9IGZ1bmN0aW9uKGJhc2VVUkwsIGhyZWYpCit7
CisgICAgdmFyIG1hdGNoID0gYmFzZVVSTC5tYXRjaChXZWJJbnNwZWN0b3IuVVJMUmVnRXhwKTsK
KyAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgdmFyIHBhdGggPSBocmVmOworICAgICAgICBpZiAo
cGF0aC5jaGFyQXQoMCkgIT09ICIvIikgeworICAgICAgICAgICAgdmFyIGJhc2VQYXRoID0gbWF0
Y2hbNF0gfHwgIi8iOworICAgICAgICAgICAgcGF0aCA9IGJhc2VQYXRoLnN1YnN0cmluZygwLCBi
YXNlUGF0aC5sYXN0SW5kZXhPZigiLyIpKSArICIvIiArIHBhdGg7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIG1hdGNoWzFdICsgIjovLyIgKyBtYXRjaFsyXSArIChtYXRjaFszXSA/ICgiOiIg
KyBtYXRjaFszXSkgOiAiIikgKyBwYXRoOworICAgIH0KKyAgICByZXR1cm4gbnVsbDsKK30KKwog
V2ViSW5zcGVjdG9yLmFkZE1haW5FdmVudExpc3RlbmVycyA9IGZ1bmN0aW9uKGRvYykKIHsKICAg
ICBkb2MuZGVmYXVsdFZpZXcuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLndpbmRvd0Zv
Y3VzZWQuYmluZCh0aGlzKSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwppbmRleCA1ODkwNGM5Li4x
MjkyZjAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
U3ludGF4SGlnaGxpZ2h0LmNzcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwpAQCAtNjYsMjMgKzY2LDQyIEBACiAgICAgY29sb3I6
IHJnYigxOTYsIDI2LCAyMik7CiB9CiAKLS8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdmlldy1z
b3VyY2UuY3NzICovCisud2Via2l0LWh0bWwtY29tbWVudCB7CisgICAgLyogS2VlcCB0aGlzIGlu
IHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3MgKC53ZWJraXQtaHRtbC1jb21tZW50KSAqLworICAg
IGNvbG9yOiByZ2IoMzUsIDExMCwgMzcpOworfQorCiAud2Via2l0LWh0bWwtdGFnIHsKKyAgICAv
KiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHZpZXctc291cmNlLmNzcyAoLndlYmtpdC1odG1sLXRh
ZykgKi8KICAgICBjb2xvcjogcmdiKDEzNiwgMTgsIDEyOCk7CiB9CiAKLS53ZWJraXQtaHRtbC1h
dHRyLW5hbWUgeworLndlYmtpdC1odG1sLWRvY3R5cGUgeworICAgIC8qIEtlZXAgdGhpcyBpbiBz
eW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Via2l0LWh0bWwtZG9jdHlwZSkgKi8KKyAgICBj
b2xvcjogcmdiKDE5MiwgMTkyLCAxOTIpOworfQorCisud2Via2l0LWh0bWwtYXR0cmlidXRlLW5h
bWUgeworICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdmlldy1zb3VyY2UuY3NzICgud2Vi
a2l0LWh0bWwtYXR0cmlidXRlLW5hbWUpICovCiAgICAgY29sb3I6IHJnYigxNTMsIDY5LCAwKTsK
IH0KIAotLndlYmtpdC1odG1sLWF0dHItdmFsdWUgeworLndlYmtpdC1odG1sLWF0dHJpYnV0ZS12
YWx1ZSB7CisgICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3MgKC53
ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUpICovCiAgICAgY29sb3I6IHJnYigyNiwgMjYsIDE2
Nik7CiB9CiAKLS53ZWJraXQtaHRtbC1jb21tZW50IHsKLSAgICBjb2xvcjogcmdiKDM1LCAxMTAs
IDM3KTsKKy53ZWJraXQtaHRtbC1leHRlcm5hbC1saW5rLCAud2Via2l0LWh0bWwtcmVzb3VyY2Ut
bGluayB7CisgICAgLyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3MgKC53
ZWJraXQtaHRtbC1leHRlcm5hbC1saW5rLCAud2Via2l0LWh0bWwtcmVzb3VyY2UtbGluaykgKi8K
KyAgICBjb2xvcjogIzAwZTsKIH0KIAotLndlYmtpdC1odG1sLWRvY3R5cGUgewotICAgIGNvbG9y
OiByZ2IoMTkyLCAxOTIsIDE5Mik7Cisud2Via2l0LWh0bWwtZXh0ZXJuYWwtbGluayB7CisgICAg
LyogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB2aWV3LXNvdXJjZS5jc3MgKC53ZWJraXQtaHRtbC1l
eHRlcm5hbC1saW5rKSAqLworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKworLndlYmtp
dC1odG1sLWV4dGVybmFsLWxpbms6aG92ZXIgeworICAgIC8qIEtlZXAgdGhpcyBpbiBzeW5jIHdp
dGggdmlldy1zb3VyY2UuY3NzICgud2Via2l0LWh0bWwtZXh0ZXJuYWwtbGluazpob3ZlcikgKi8K
KyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKIH0K
</data>
<flag name="review"
          id="30424"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>