<?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>150894</bug_id>
          
          <creation_ts>2015-11-04 10:12:25 -0800</creation_ts>
          <short_desc>Web Inspector: WebInspector.Color should support #rgba and #rrggbbaa syntax</short_desc>
          <delta_ts>2015-11-04 16:00:47 -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</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1139369</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-11-04 10:12:25 -0800</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=150853

We now support 4 and 8 digit hex colors. I think we&apos;ll need to update CodeMirror css.js and our CodeMirrorAdditions.js + CodeMirrorTextMarkers.js + Color.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139370</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-11-04 10:13:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/23395461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139429</commentid>
    <comment_count>2</comment_count>
      <attachid>264811</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-04 14:01:11 -0800</bug_when>
    <thetext>Created attachment 264811
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139432</commentid>
    <comment_count>3</comment_count>
      <attachid>264811</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-04 14:10:48 -0800</bug_when>
    <thetext>Comment on attachment 264811
[PATCH] Proposed Fix

Got another tweak I want to make.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139435</commentid>
    <comment_count>4</comment_count>
      <attachid>264813</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-04 14:16:02 -0800</bug_when>
    <thetext>Created attachment 264813
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139443</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-04 14:31:21 -0800</bug_when>
    <thetext>CodeMirror issue:
https://github.com/codemirror/CodeMirror/issues/3625</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139475</commentid>
    <comment_count>6</comment_count>
      <attachid>264813</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-04 16:00:42 -0800</bug_when>
    <thetext>Comment on attachment 264813
[PATCH] Proposed Fix

Clearing flags on attachment: 264813

Committed r192040: &lt;http://trac.webkit.org/changeset/192040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139476</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-04 16:00:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264811</attachid>
            <date>2015-11-04 14:01:11 -0800</date>
            <delta_ts>2015-11-04 14:16:02 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>color-support.patch</filename>
            <type>text/plain</type>
            <size>29511</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3M2IxZjc1Li40ODA4MTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMTEt
MDQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTdXBwb3J0ICNyZ2JhIGFuZCAjcnJnZ2JiYWEgc3ludGF4CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA4OTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9j
b2xvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9jb2xv
ci5odG1sOiBBZGRlZC4KKwogMjAxNS0xMS0wNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXhpbmcgdGVzdCBhZGRlZCB3aXRoIHIxOTIwMjIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4NzIzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIx
IEBACitUZXN0cyBmb3IgdGhlIFdlYkluc3BlY3Rvci5Db2xvciBtb2RlbCBvYmplY3QuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXZWJJbnNwZWN0b3IuQ29sb3IKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZworUEFTUzogJyMwMDAnIHNob3Vs
ZCBiZSBkZXRlY3RlZAorUEFTUzogJyMwMDAnIHdhcyB0aGUgZXhwZWN0ZWQgJ1Nob3J0IEhFWCcg
Zm9ybWF0CitQQVNTOiAnI2EwQScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAnI2EwQScgd2Fz
IHRoZSBleHBlY3RlZCAnU2hvcnQgSEVYJyBmb3JtYXQKK1BBU1M6ICcjMDAwMDAwJyBzaG91bGQg
YmUgZGV0ZWN0ZWQKK1BBU1M6ICcjMDAwMDAwJyB3YXMgdGhlIGV4cGVjdGVkICdIRVgnIGZvcm1h
dAorUEFTUzogJyNhMEFhMEEnIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJyNhMEFhMEEnIHdh
cyB0aGUgZXhwZWN0ZWQgJ0hFWCcgZm9ybWF0CitQQVNTOiAnIzAwMDAnIHNob3VsZCBiZSBkZXRl
Y3RlZAorUEFTUzogJyMwMDAwJyB3YXMgdGhlIGV4cGVjdGVkICdTaG9ydCBIRVggd2l0aCBBbHBo
YScgZm9ybWF0CitQQVNTOiAnI2EwQWYnIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJyNhMEFm
JyB3YXMgdGhlIGV4cGVjdGVkICdTaG9ydCBIRVggd2l0aCBBbHBoYScgZm9ybWF0CitQQVNTOiAn
IzAwMDAwMDAwJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICcjMDAwMDAwMDAnIHdhcyB0aGUg
ZXhwZWN0ZWQgJ0hFWCB3aXRoIEFscGhhJyBmb3JtYXQKK1BBU1M6ICcjYTBBYTBBZmYnIHNob3Vs
ZCBiZSBkZXRlY3RlZAorUEFTUzogJyNhMEFhMEFmZicgd2FzIHRoZSBleHBlY3RlZCAnSEVYIHdp
dGggQWxwaGEnIGZvcm1hdAorUEFTUzogJ3JnYigxLDIsMyknIHNob3VsZCBiZSBkZXRlY3RlZAor
UEFTUzogJ3JnYigxLDIsMyknIHdhcyB0aGUgZXhwZWN0ZWQgJ1JHQicgZm9ybWF0CitQQVNTOiAn
UkdCKDEsMiwzKScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAnUkdCKDEsMiwzKScgd2FzIHRo
ZSBleHBlY3RlZCAnUkdCJyBmb3JtYXQKK1BBU1M6ICdyZ2IoOTk5LCA5OTksIDk5OSknIHNob3Vs
ZCBiZSBkZXRlY3RlZAorUEFTUzogJ3JnYig5OTksIDk5OSwgOTk5KScgd2FzIHRoZSBleHBlY3Rl
ZCAnUkdCJyBmb3JtYXQKK1BBU1M6ICdyZ2IoIDEgLCAxICwgMSApJyBzaG91bGQgYmUgZGV0ZWN0
ZWQKK1BBU1M6ICdyZ2IoIDEgLCAxICwgMSApJyB3YXMgdGhlIGV4cGVjdGVkICdSR0InIGZvcm1h
dAorUEFTUzogJ3JnYmEoMSwyLDMsMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ3JnYmEo
MSwyLDMsMCknIHdhcyB0aGUgZXhwZWN0ZWQgJ1JHQkEnIGZvcm1hdAorUEFTUzogJ1JHQkEoMSwy
LDMsMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ1JHQkEoMSwyLDMsMCknIHdhcyB0aGUg
ZXhwZWN0ZWQgJ1JHQkEnIGZvcm1hdAorUEFTUzogJ3JnYmEoOTk5LCA5OTksIDk5OSwgOTk5KScg
c2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAncmdiYSg5OTksIDk5OSwgOTk5LCA5OTkpJyB3YXMg
dGhlIGV4cGVjdGVkICdSR0JBJyBmb3JtYXQKK1BBU1M6ICdyZ2JhKCAxICwgMSAsIDEgLCAwLjUg
KScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAncmdiYSggMSAsIDEgLCAxICwgMC41ICknIHdh
cyB0aGUgZXhwZWN0ZWQgJ1JHQkEnIGZvcm1hdAorUEFTUzogJ2hzbCgwLCAwJSwgNTAlKScgc2hv
dWxkIGJlIGRldGVjdGVkCitQQVNTOiAnaHNsKDAsIDAlLCA1MCUpJyB3YXMgdGhlIGV4cGVjdGVk
ICdIU0wnIGZvcm1hdAorUEFTUzogJ0hTTCgwLCAwJSwgNTAlKScgc2hvdWxkIGJlIGRldGVjdGVk
CitQQVNTOiAnSFNMKDAsIDAlLCA1MCUpJyB3YXMgdGhlIGV4cGVjdGVkICdIU0wnIGZvcm1hdAor
UEFTUzogJ2hzbCg5OTksIDk5OSUsIDk5OSUpJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdo
c2woOTk5LCA5OTklLCA5OTklKScgd2FzIHRoZSBleHBlY3RlZCAnSFNMJyBmb3JtYXQKK1BBU1M6
ICdoc2woIDAgLCAwJSAsIDUwJSApJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdoc2woIDAg
LCAwJSAsIDUwJSApJyB3YXMgdGhlIGV4cGVjdGVkICdIU0wnIGZvcm1hdAorUEFTUzogJ2hzbGEo
MCwgMCUsIDUwJSwgMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ2hzbGEoMCwgMCUsIDUw
JSwgMCknIHdhcyB0aGUgZXhwZWN0ZWQgJ0hTTEEnIGZvcm1hdAorUEFTUzogJ0hTTEEoMCwgMCUs
IDUwJSwgMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ0hTTEEoMCwgMCUsIDUwJSwgMCkn
IHdhcyB0aGUgZXhwZWN0ZWQgJ0hTTEEnIGZvcm1hdAorUEFTUzogJ2hzbGEoOTk5LCA5OTklLCA5
OTklLCA5OTkpJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdoc2xhKDk5OSwgOTk5JSwgOTk5
JSwgOTk5KScgd2FzIHRoZSBleHBlY3RlZCAnSFNMQScgZm9ybWF0CitQQVNTOiAnaHNsYSggMCAs
IDAlICwgNTAlICwgMC41ICknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ2hzbGEoIDAgLCAw
JSAsIDUwJSAsIDAuNSApJyB3YXMgdGhlIGV4cGVjdGVkICdIU0xBJyBmb3JtYXQKK1BBU1M6ICdi
bHVlJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdibHVlJyB3YXMgdGhlIGV4cGVjdGVkICdO
aWNrbmFtZScgZm9ybWF0CitQQVNTOiAnQkx1RScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAn
Qkx1RScgd2FzIHRoZSBleHBlY3RlZCAnTmlja25hbWUnIGZvcm1hdAorUEFTUzogJ21pZG5pZ2h0
Ymx1ZScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAnbWlkbmlnaHRibHVlJyB3YXMgdGhlIGV4
cGVjdGVkICdOaWNrbmFtZScgZm9ybWF0CitQQVNTOiAncm95YWxibHVlJyBzaG91bGQgYmUgZGV0
ZWN0ZWQKK1BBU1M6ICdyb3lhbGJsdWUnIHdhcyB0aGUgZXhwZWN0ZWQgJ05pY2tuYW1lJyBmb3Jt
YXQKK1BBU1M6ICdzdGVlbGJsdWUnIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ3N0ZWVsYmx1
ZScgd2FzIHRoZSBleHBlY3RlZCAnTmlja25hbWUnIGZvcm1hdAorUEFTUzogJ3RyYW5zcGFyZW50
JyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICd0cmFuc3BhcmVudCcgd2FzIHRoZSBleHBlY3Rl
ZCAnTmlja25hbWUnIGZvcm1hdAorCitQQVNTOiAnICMwMDAgJyBzaG91bGQgbm90IGJlIGRldGVj
dGVkCitQQVNTOiAnI3JnYicgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZAorUEFTUzogJyMxJyBzaG91
bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnIzEyJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQ
QVNTOiAnIzEyMzQ1JyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnIzEyMzQ1NjcnIHNo
b3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICcjMTIzNDU2Nzg5JyBzaG91bGQgbm90IGJlIGRl
dGVjdGVkCitQQVNTOiAncmdiKDI1NSwgMjU1LCAyNTUsIDAuNSknIHNob3VsZCBub3QgYmUgZGV0
ZWN0ZWQKK1BBU1M6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSwgMSknIHNob3VsZCBub3QgYmUg
ZGV0ZWN0ZWQKK1BBU1M6ICdoc2woMCwgMCUsIDUwJSwgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKK1BBU1M6ICdoc2xhKDAsIDAlLCA1MCUsIDEsIDIpJyBzaG91bGQgbm90IGJlIGRldGVjdGVk
CitQQVNTOiAnc3VwZXJibHVlJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXZWJJbnNwZWN0b3IuQ29sb3IgcHJvcGVydGllcworUEFTUzogJ3JlZCcgc2hv
dWxkIGhhdmUgYWxwaGEgb2YgMS4KK1BBU1M6ICdyZWQnIHNob3VsZCBiZSBzaW1wbGUuCitQQVNT
OiAncmVkJyBoYXMgcmdiIG9mIFsyNTUsIDAsIDBdLgorUEFTUzogJ3JlZCcgaGFzIHJnYmEgb2Yg
WzI1NSwgMCwgMCwgMV0uCitQQVNTOiAncmVkJyBoYXMgaHNsIG9mIFswLCAxMDAsIDUwXS4KK1BB
U1M6ICdyZWQnIGhhcyBoc2xhIG9mIFswLCAxMDAsIDUwLCAxXS4KK1BBU1M6ICd0cmFuc3BhcmVu
dCcgc2hvdWxkIGhhdmUgYWxwaGEgb2YgMC4KK1BBU1M6ICd0cmFuc3BhcmVudCcgc2hvdWxkIGJl
IG5vdCBiZSBzaW1wbGUuCitQQVNTOiAndHJhbnNwYXJlbnQnIGhhcyByZ2Igb2YgWzAsIDAsIDBd
LgorUEFTUzogJ3RyYW5zcGFyZW50JyBoYXMgcmdiYSBvZiBbMCwgMCwgMCwgMF0uCitQQVNTOiAn
dHJhbnNwYXJlbnQnIGhhcyBoc2wgb2YgWzAsIDAsIDBdLgorUEFTUzogJ3RyYW5zcGFyZW50JyBo
YXMgaHNsYSBvZiBbMCwgMCwgMCwgMF0uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXZWJJbnNw
ZWN0b3IuQ29sb3IucHJvdG90eXBlLm5leHRGb3JtYXQKK1BBU1M6IEFsbCBmb3JtYXQgcGhhc2Vz
IG9mICd0cmFuc3BhcmVudCcgc2hvdWxkIGJlIGFzIGV4cGVjdGVkLgorUEFTUzogQWxsIGZvcm1h
dCBwaGFzZXMgb2YgJ3JlZCcgc2hvdWxkIGJlIGFzIGV4cGVjdGVkLgorUEFTUzogQWxsIGZvcm1h
dCBwaGFzZXMgb2YgJ3JnYigxMDAsIDE1MCwgMjAwKScgc2hvdWxkIGJlIGFzIGV4cGVjdGVkLgor
UEFTUzogQWxsIGZvcm1hdCBwaGFzZXMgb2YgJ3JnYmEoMTAwLCAxNTAsIDIwMCwgMC41KScgc2hv
dWxkIGJlIGFzIGV4cGVjdGVkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV2ViSW5zcGVjdG9y
LkNvbG9yLnByb3RvdHlwZS50b1N0cmluZworUEFTUzogQ29sb3IgYXMgJ09yaWdpbmFsJyBzaG91
bGQgYmUgJ1JFRCcKK1BBU1M6IENvbG9yIGFzICdOaWNrbmFtZScgc2hvdWxkIGJlICdyZWQnCitQ
QVNTOiBDb2xvciBhcyAnU2hvcnQgSEVYJyBzaG91bGQgYmUgJyNmMDAnCitQQVNTOiBDb2xvciBh
cyAnSEVYJyBzaG91bGQgYmUgJyNmZjAwMDAnCitQQVNTOiBDb2xvciBhcyAnU2hvcnQgSEVYIHdp
dGggQWxwaGEnIHNob3VsZCBiZSAnI2YwMGYnCitQQVNTOiBDb2xvciBhcyAnSEVYIHdpdGggQWxw
aGEnIHNob3VsZCBiZSAnI2ZmMDAwMGZmJworUEFTUzogQ29sb3IgYXMgJ1JHQicgc2hvdWxkIGJl
ICdyZ2IoMjU1LCAwLCAwKScKK1BBU1M6IENvbG9yIGFzICdSR0JBJyBzaG91bGQgYmUgJ3JnYmEo
MjU1LCAwLCAwLCAxKScKK1BBU1M6IENvbG9yIGFzICdIU0wnIHNob3VsZCBiZSAnaHNsKDAsIDEw
MCUsIDUwJSknCitQQVNTOiBDb2xvciBhcyAnSFNMQScgc2hvdWxkIGJlICdoc2xhKDAsIDEwMCUs
IDUwJSwgMSknCitQQVNTOiBDb2xvciBhcyAnT3JpZ2luYWwnIHNob3VsZCBiZSAncmdiYSgxMDAs
IDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMgJ05pY2tuYW1lJyBzaG91bGQgYmUgJ3Jn
YmEoMTAwLCAyMDAsIDI1NSwgMC41KScKK1BBU1M6IENvbG9yIGFzICdTaG9ydCBIRVgnIHNob3Vs
ZCBiZSAncmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMgJ0hFWCcgc2hv
dWxkIGJlICdyZ2JhKDEwMCwgMjAwLCAyNTUsIDAuNSknCitQQVNTOiBDb2xvciBhcyAnU2hvcnQg
SEVYIHdpdGggQWxwaGEnIHNob3VsZCBiZSAnIzY0YzhmZjgwJworUEFTUzogQ29sb3IgYXMgJ0hF
WCB3aXRoIEFscGhhJyBzaG91bGQgYmUgJyM2NGM4ZmY4MCcKK1BBU1M6IENvbG9yIGFzICdSR0In
IHNob3VsZCBiZSAncmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMgJ1JH
QkEnIHNob3VsZCBiZSAncmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMg
J0hTTCcgc2hvdWxkIGJlICdoc2xhKDIwMSwgMTAwJSwgNzAlLCAwLjUpJworUEFTUzogQ29sb3Ig
YXMgJ0hTTEEnIHNob3VsZCBiZSAnaHNsYSgyMDEsIDEwMCUsIDcwJSwgMC41KScKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jMGIwNzk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL2NvbG9yLmh0bWwKQEAgLTAsMCArMSwyNjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGZ1bmN0aW9uIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgeworICAgICAgICBz
d2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
T3JpZ2luYWw6CisgICAgICAgICAgICByZXR1cm4gIk9yaWdpbmFsIjsKKyAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk5pY2tuYW1lOgorICAgICAgICAgICAgcmV0dXJuICJO
aWNrbmFtZSI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVg6Cisg
ICAgICAgICAgICByZXR1cm4gIkhFWCI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5TaG9ydEhFWDoKKyAgICAgICAgICAgIHJldHVybiAiU2hvcnQgSEVYIjsKKyAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhOgorICAgICAgICAgICAg
cmV0dXJuICJIRVggd2l0aCBBbHBoYSI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5TaG9ydEhFWEFscGhhOgorICAgICAgICAgICAgcmV0dXJuICJTaG9ydCBIRVggd2l0
aCBBbHBoYSI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0I6Cisg
ICAgICAgICAgICByZXR1cm4gIlJHQiI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5SR0JBOgorICAgICAgICAgICAgcmV0dXJuICJSR0JBIjsKKyAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTDoKKyAgICAgICAgICAgIHJldHVybiAiSFNMIjsK
KyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEE6CisgICAgICAgICAg
ICByZXR1cm4gIkhTTEEiOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICJV
bmV4cGVjdGVkIGZvcm1hdCI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgc3VpdGUgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIldlYkluc3BlY3Rvci5Db2xvciIpOworCisg
ICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiV2ViSW5zcGVjdG9yLkNvbG9y
LmZyb21TdHJpbmciLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3Qgd2UgY2FuIGRldGVjdCBj
b2xvcnMgZnJvbSBzdHJpbmdzLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RHb29kKHN0cmluZywgZXhwZWN0ZWRGb3JtYXQp
IHsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0
cmluZyhzdHJpbmcpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChj
b2xvciBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db2xvciwgYCcke3N0cmluZ30nIHNob3VsZCBi
ZSBkZXRlY3RlZGApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChj
b2xvciAmJiBjb2xvci5mb3JtYXQgPT09IGV4cGVjdGVkRm9ybWF0LCBgJyR7c3RyaW5nfScgd2Fz
IHRoZSBleHBlY3RlZCAnJHtmb3JtYXRUb1N0cmluZyhleHBlY3RlZEZvcm1hdCl9JyBmb3JtYXRg
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJhZChzdHJpbmcp
IHsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0
cmluZyhzdHJpbmcpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChj
b2xvciA9PT0gbnVsbCwgYCcke3N0cmluZ30nIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWRgKTsKKyAg
ICAgICAgICAgICAgICBpZiAoY29sb3IpIEluc3BlY3RvclRlc3QubG9nKGAnJHtzdHJpbmd9JyBk
ZXRlY3RlZCB3aXRoIGZvcm1hdCAnJHtmb3JtYXRUb1N0cmluZyhjb2xvci5mb3JtYXQpfSdgKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdEdvb2QoIiMwMDAiLCBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCIjYTBBIiwg
V2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWCk7CisgICAgICAgICAgICB0ZXN0R29v
ZCgiIzAwMDAwMCIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCIjYTBBYTBBIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVgpOworCisg
ICAgICAgICAgICB0ZXN0R29vZCgiIzAwMDAiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNo
b3J0SEVYQWxwaGEpOworICAgICAgICAgICAgdGVzdEdvb2QoIiNhMEFmIiwgV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCIjMDAw
MDAwMDAiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCIjYTBBYTBBZmYiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhh
KTsKKworICAgICAgICAgICAgdGVzdEdvb2QoInJnYigxLDIsMykiLCBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LlJHQik7CisgICAgICAgICAgICB0ZXN0R29vZCgiUkdCKDEsMiwzKSIsIFdlYklu
c3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJyZ2IoOTk5
LCA5OTksIDk5OSkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQik7CisgICAgICAgICAg
ICB0ZXN0R29vZCgicmdiKCAxICwgMSAsIDEgKSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
UkdCKTsKKworICAgICAgICAgICAgdGVzdEdvb2QoInJnYmEoMSwyLDMsMCkiLCBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdEdvb2QoIlJHQkEoMSwyLDMs
MCkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdEdv
b2QoInJnYmEoOTk5LCA5OTksIDk5OSwgOTk5KSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
UkdCQSk7CisgICAgICAgICAgICB0ZXN0R29vZCgicmdiYSggMSAsIDEgLCAxICwgMC41ICkiLCBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQkEpOworCisgICAgICAgICAgICB0ZXN0R29vZCgi
aHNsKDAsIDAlLCA1MCUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0wpOworICAgICAg
ICAgICAgdGVzdEdvb2QoIkhTTCgwLCAwJSwgNTAlKSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuSFNMKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJoc2woOTk5LCA5OTklLCA5OTklKSIsIFdl
Ykluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJoc2wo
IDAgLCAwJSAsIDUwJSApIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0wpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICB0ZXN0R29vZCgiaHNsYSgwLCAwJSwgNTAlLCAwKSIsIFdlYklu
c3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMQSk7CisgICAgICAgICAgICB0ZXN0R29vZCgiSFNMQSgw
LCAwJSwgNTAlLCAwKSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMQSk7CisgICAgICAg
ICAgICB0ZXN0R29vZCgiaHNsYSg5OTksIDk5OSUsIDk5OSUsIDk5OSkiLCBXZWJJbnNwZWN0b3Iu
Q29sb3IuRm9ybWF0LkhTTEEpOworICAgICAgICAgICAgdGVzdEdvb2QoImhzbGEoIDAgLCAwJSAs
IDUwJSAsIDAuNSApIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBKTsKKworICAgICAg
ICAgICAgdGVzdEdvb2QoImJsdWUiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk5pY2tuYW1l
KTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJCTHVFIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1h
dC5OaWNrbmFtZSk7CisgICAgICAgICAgICB0ZXN0R29vZCgibWlkbmlnaHRibHVlIiwgV2ViSW5z
cGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZSk7CisgICAgICAgICAgICB0ZXN0R29vZCgicm95
YWxibHVlIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZSk7CisgICAgICAgICAg
ICB0ZXN0R29vZCgic3RlZWxibHVlIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFt
ZSk7CisgICAgICAgICAgICB0ZXN0R29vZCgidHJhbnNwYXJlbnQiLCBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0Lk5pY2tuYW1lKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIp
OworCisgICAgICAgICAgICB0ZXN0QmFkKCIgIzAwMCAiKTsgLy8gd2hpdGVzcGFjZQorICAgICAg
ICAgICAgdGVzdEJhZCgiI3JnYiIpOyAvLyBiYWQgaGV4CisgICAgICAgICAgICB0ZXN0QmFkKCIj
MSIpOyAvLyAxCisgICAgICAgICAgICB0ZXN0QmFkKCIjMTIiKTsgLy8gMgorICAgICAgICAgICAg
dGVzdEJhZCgiIzEyMzQ1Iik7IC8vIDUKKyAgICAgICAgICAgIHRlc3RCYWQoIiMxMjM0NTY3Iik7
IC8vIDcKKyAgICAgICAgICAgIHRlc3RCYWQoIiMxMjM0NTY3ODkiKTsgLy8gOQorICAgICAgICAg
ICAgdGVzdEJhZCgicmdiKDI1NSwgMjU1LCAyNTUsIDAuNSkiKTsgLy8gZXh0cmEgdmFsdWVzCisg
ICAgICAgICAgICB0ZXN0QmFkKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSwgMSkiKTsgLy8gZXh0
cmEgdmFsdWVzCisgICAgICAgICAgICB0ZXN0QmFkKCJoc2woMCwgMCUsIDUwJSwgMSkiKTsgLy8g
ZXh0cmEgdmFsdWUKKyAgICAgICAgICAgIHRlc3RCYWQoImhzbGEoMCwgMCUsIDUwJSwgMSwgMiki
KTsgLy8gZXh0cmEgdmFsdWVzCisgICAgICAgICAgICB0ZXN0QmFkKCJzdXBlcmJsdWUiKTsgLy8g
bm90IGEgbmlja25hbWUKKworICAgICAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRDb2xvcj8KKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY29uc2lkZXIgbWlzc2luZyAlcyBhcyBiYWQ/
IEN1cnJlbnRseSB3ZSBqdXN0IHN0cmlwIHRoZW0uCisgICAgICAgICAgICAvLyB0ZXN0QmFkKCJo
c2woMCwgMCwgNTApIik7IC8vIG1pc3NpbmcgJXMKKyAgICAgICAgICAgIC8vIHRlc3RCYWQoImhz
bGEoMCwgMCwgNTAsIDEpIik7IC8vIG1pc3NpbmcgJXMKKworICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJXZWJJbnNwZWN0b3IuQ29sb3IgcHJvcGVydGllcyIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiVGVzdCBkaWZmZXJlbnQgY29sb3IgcHJvcGVydGllcy4iLAorICAgICAgICB0ZXN0OiAo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaGFsbG93RXF1YWwo
YXJyMSwgYXJyMikgeworICAgICAgICAgICAgICAgIGlmIChhcnIxLmxlbmd0aCAhPT0gYXJyMi5s
ZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJyMVtpXSAhPT0gYXJyMltpXSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IGNvbG9yOworCisgICAg
ICAgICAgICBjb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tU3RyaW5nKCJyZWQiKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5hbHBoYSA9PT0gMSwgIidy
ZWQnIHNob3VsZCBoYXZlIGFscGhhIG9mIDEuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoY29sb3Iuc2ltcGxlID09PSB0cnVlLCAiJ3JlZCcgc2hvdWxkIGJlIHNpbXBs
ZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IucmdiLCBbMjU1LCAwLCAwXSksICIncmVkJyBoYXMgcmdiIG9mIFsyNTUsIDAsIDBdLiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHNoYWxsb3dFcXVhbChjb2xv
ci5yZ2JhLCBbMjU1LCAwLCAwLCAxXSksICIncmVkJyBoYXMgcmdiYSBvZiBbMjU1LCAwLCAwLCAx
XS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IuaHNsLCBbMCwgMTAwLCA1MF0pLCAiJ3JlZCcgaGFzIGhzbCBvZiBbMCwgMTAwLCA1MF0u
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hhbGxvd0VxdWFsKGNv
bG9yLmhzbGEsIFswLCAxMDAsIDUwLCAxXSksICIncmVkJyBoYXMgaHNsYSBvZiBbMCwgMTAwLCA1
MCwgMV0uIik7CisKKyAgICAgICAgICAgIGNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21T
dHJpbmcoInRyYW5zcGFyZW50Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQoY29sb3IuYWxwaGEgPT09IDAsICIndHJhbnNwYXJlbnQnIHNob3VsZCBoYXZlIGFscGhhIG9m
IDAuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3Iuc2ltcGxl
ID09PSBmYWxzZSwgIid0cmFuc3BhcmVudCcgc2hvdWxkIGJlIG5vdCBiZSBzaW1wbGUuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hhbGxvd0VxdWFsKGNvbG9yLnJn
YiwgWzAsIDAsIDBdKSwgIid0cmFuc3BhcmVudCcgaGFzIHJnYiBvZiBbMCwgMCwgMF0uIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hhbGxvd0VxdWFsKGNvbG9yLnJn
YmEsIFswLCAwLCAwLCAwXSksICIndHJhbnNwYXJlbnQnIGhhcyByZ2JhIG9mIFswLCAwLCAwLCAw
XS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IuaHNsLCBbMCwgMCwgMF0pLCAiJ3RyYW5zcGFyZW50JyBoYXMgaHNsIG9mIFswLCAwLCAw
XS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IuaHNsYSwgWzAsIDAsIDAsIDBdKSwgIid0cmFuc3BhcmVudCcgaGFzIGhzbGEgb2YgWzAs
IDAsIDAsIDBdLiIpOworCisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICB9
KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIldlYkluc3BlY3Rv
ci5Db2xvci5wcm90b3R5cGUubmV4dEZvcm1hdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVz
dCB3ZSBjYW4gY3ljbGUgdGhyb3VnaCBjb2xvciBmb3JtYXRzIGZvciBkaWZmZXJlbnQgY29sb3Jz
LiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGZ1
bmN0aW9uIHRlc3Qoc3RyaW5nLCBwaGFzZXMpIHsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3Ig
PSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZyhzdHJpbmcpOworICAgICAgICAgICAgICAg
IGNvbG9yLmZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuT3JpZ2luYWw7CisKKyAg
ICAgICAgICAgICAgICBsZXQgcGFzcyA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yIChsZXQg
ZXhwZWN0ZWROZXh0Rm9ybWF0IG9mIHBoYXNlcykgeworICAgICAgICAgICAgICAgICAgICBsZXQg
bmV4dEZvcm1hdCA9IGNvbG9yLm5leHRGb3JtYXQoKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQobmV4dEZvcm1hdCA9PT0gZXhwZWN0ZWROZXh0Rm9ybWF0LCBgTmV4
dCBmb3JtYXQgJyR7Zm9ybWF0VG9TdHJpbmcobmV4dEZvcm1hdCl9JyB3YXMgbm90IHRoZSBleHBl
Y3RlZCAnJHtmb3JtYXRUb1N0cmluZyhleHBlY3RlZE5leHRGb3JtYXQpfSdgKTsKKyAgICAgICAg
ICAgICAgICAgICAgcGFzcyA9IHBhc3MgJiYgbmV4dEZvcm1hdCA9PT0gZXhwZWN0ZWROZXh0Rm9y
bWF0OworICAgICAgICAgICAgICAgICAgICBjb2xvci5mb3JtYXQgPSBuZXh0Rm9ybWF0OworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChwYXNzLCBgQWxsIGZvcm1hdCBwaGFzZXMgb2YgJyR7c3RyaW5nfScgc2hvdWxkIGJlIGFzIGV4
cGVjdGVkLmApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBbGwgd2l0aCBhbHBo
YS4KKyAgICAgICAgICAgIHRlc3QoInRyYW5zcGFyZW50IiwgWworICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCQSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LkhTTEEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5OaWNrbmFtZSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9y
bWF0LlNob3J0SEVYQWxwaGEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5IRVhBbHBoYSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
Lk9yaWdpbmFsLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIC8vIEFsbCB3aXRob3V0
IGFscGhhLgorICAgICAgICAgICAgdGVzdCgicmVkIiwgWworICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5D
b2xvci5Gb3JtYXQuSFNMLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuTmlja25hbWUsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5T
aG9ydEhFWCwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWCwK
KyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk9yaWdpbmFsLAorICAg
ICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIC8vIE5vIHNob3J0IGhleCBvciBuaWNrbmFtZS4K
KyAgICAgICAgICAgIHRlc3QoInJnYigxMDAsIDE1MCwgMjAwKSIsIFsKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQiwKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LkhTTCwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LkhFWCwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
Lk9yaWdpbmFsLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIC8vIE5vIHNob3J0IGhl
eCBhbHBoYSBvciBuaWNrbmFtZS4KKyAgICAgICAgICAgIHRlc3QoInJnYmEoMTAwLCAxNTAsIDIw
MCwgMC41KSIsIFsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJH
QkEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBLAorICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGEsCisgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5PcmlnaW5hbCwKKyAgICAgICAgICAg
IF0pOworCisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIldlYkluc3BlY3Rvci5Db2xvci5w
cm90b3R5cGUudG9TdHJpbmciLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhlIGRpZmZl
cmVudCB0b1N0cmluZyBvdXRwdXRzLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgIGxldCBjb2xvcjsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
ZXhwZWN0ZWQsIGZvcm1hdCkgeworICAgICAgICAgICAgICAgIGxldCBwYXNzID0gY29sb3IudG9T
dHJpbmcoZm9ybWF0KSA9PT0gZXhwZWN0ZWQ7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHBhc3MsIGBDb2xvciBhcyAnJHtmb3JtYXRUb1N0cmluZyhmb3JtYXQpfScg
c2hvdWxkIGJlICcke2V4cGVjdGVkfSdgKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhc3MpIElu
c3BlY3RvclRlc3QubG9nKCJXQVM6ICIgKyBjb2xvci50b1N0cmluZyhmb3JtYXQpKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgLy8gQSBjb2xvciB3aXRoIGFsbCBmb3JtYXRzLgorICAg
ICAgICAgICAgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZygiUkVEIik7Cisg
ICAgICAgICAgICB0ZXN0KCJSRUQiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk9yaWdpbmFs
KTsKKyAgICAgICAgICAgIHRlc3QoInJlZCIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuTmlj
a25hbWUpOworICAgICAgICAgICAgdGVzdCgiI2YwMCIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuU2hvcnRIRVgpOworICAgICAgICAgICAgdGVzdCgiI2ZmMDAwMCIsIFdlYkluc3BlY3Rvci5D
b2xvci5Gb3JtYXQuSEVYKTsKKyAgICAgICAgICAgIHRlc3QoIiNmMDBmIiwgV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhKTsKKyAgICAgICAgICAgIHRlc3QoIiNmZjAwMDBm
ZiIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGEpOworICAgICAgICAgICAgdGVz
dCgicmdiKDI1NSwgMCwgMCkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQik7CisgICAg
ICAgICAgICB0ZXN0KCJyZ2JhKDI1NSwgMCwgMCwgMSkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9y
bWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdCgiaHNsKDAsIDEwMCUsIDUwJSkiLCBXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LkhTTCk7CisgICAgICAgICAgICB0ZXN0KCJoc2xhKDAsIDEwMCUs
IDUwJSwgMSkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEEpOworCisgICAgICAgICAg
ICAvLyBBIGNvbG9yIHdoaWNoIGNhbm5vdCBiZSBzb21lIGZvcm1hdHMsIHRob3NlIGZhbGxiYWNr
IHRvIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAgICAgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29s
b3IuZnJvbVN0cmluZygickdiQSggIDEwMCwgMjAwLCAyNTUsIDAuNSAgKSIpOworICAgICAgICAg
ICAgdGVzdCgicmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5PcmlnaW5hbCk7IC8vIE9yaWdpbmFsIHRleHQgaWdub3JlZCBmb3Igc29tZSBmb3JtYXRz
LgorICAgICAgICAgICAgdGVzdCgicmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVj
dG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZSk7IC8vIGZhbGxiYWNrIChyZ2JhKQorICAgICAgICAg
ICAgdGVzdCgicmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5TaG9ydEhFWCk7IC8vIGZhbGxiYWNrIChyZ2JhKQorICAgICAgICAgICAgdGVzdCgicmdi
YSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVgpOyAv
LyBmYWxsYmFjayAocmdiYSkKKyAgICAgICAgICAgIHRlc3QoIiM2NGM4ZmY4MCIsIFdlYkluc3Bl
Y3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhBbHBoYSk7IC8vIGZhbGxiYWNrIChoZXggYWxwaGEp
CisgICAgICAgICAgICB0ZXN0KCIjNjRjOGZmODAiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
LkhFWEFscGhhKTsKKyAgICAgICAgICAgIHRlc3QoInJnYmEoMTAwLCAyMDAsIDI1NSwgMC41KSIs
IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCKTsgLy8gZmFsbGJhY2sgKHJnYmEpCisgICAg
ICAgICAgICB0ZXN0KCJyZ2JhKDEwMCwgMjAwLCAyNTUsIDAuNSkiLCBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdCgiaHNsYSgyMDEsIDEwMCUsIDcwJSwg
MC41KSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMKTsgLy8gZmFsbGJhY2sgKGhzbGEp
CisgICAgICAgICAgICB0ZXN0KCJoc2xhKDIwMSwgMTAwJSwgNzAlLCAwLjUpIiwgV2ViSW5zcGVj
dG9yLkNvbG9yLkZvcm1hdC5IU0xBKTsKKworICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3
ZSBjbGFtcCByZ2IoMzAwLCAzMDAsIDMwMCkgPT4gcmdiKDI1NSwgMjU1LCAyNTUpIGluIHRvU3Ry
aW5ncz8KKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgYWx3YXlzIHN0YXNoIHRoZSBv
cmlnaW5hbCBzdHJpbmcsIG5vIG1hdHRlciBob3cgcG9vcj8KKworICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+VGVzdHMgZm9yIHRoZSBXZWJJbnNwZWN0b3IuQ29sb3IgbW9kZWwgb2JqZWN0LjwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDYxNDZhM2IuLmNlNmQ3
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTExLTA0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogV2ViSW5zcGVjdG9yLkNvbG9yIHNob3VsZCBzdXBwb3J0ICNyZ2JhIGFuZCAjcnJn
Z2JiYWEgc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTA4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IGZvciBoZXggd2l0aCBhbHBoYSBjb2xvciBzeW50YXguCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b2xvci5mcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUu
bmV4dEZvcm1hdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLmNvcHkp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl90b1Nob3J0SEVYQWxwaGFTdHJpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5fdG9IRVhBbHBoYVN0cmlu
Zyk6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgaGV4IHN5bnRheC4gQWRkcmVzcyBzb21l
IG1pbm9yIGlzc3VlcworICAgICAgICBsaWtlIGNhc2UgaW5zZW5zaXRpdml0eSBhbmQgZXh0cmEg
Y29tbWEgc2VwYXJhdGUgdmFsdWVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9D
b2RlTWlycm9yVGV4dE1hcmtlcnMuanM6CisgICAgICAgIFRoaXMgcHJldmVudCB0cmFpbGluZyBo
ZXggY2hhcmFjdGVycyBmcm9tIHNob3dpbmcgdXAKKyAgICAgICAgd2hlbiBjeWNsaW5nIHRocm91
Z2ggY29sb3IgdmFyaWFudHMuCisKIDIwMTUtMTEtMDMgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04gKHIxOTE2MTIp
OiBTdG9yYWdlIHNpZGViYXIgcGFuZWwgdHJlZSBvdXRsaW5lIGlzIGJyb2tlbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbG9yLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbG9yLmpzCmluZGV4
IDcwMTQyZTUuLjY4NjE5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9Db2xvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKQEAgLTU1LDI4ICs1NSw0NiBAQCBXZWJJbnNwZWN0
b3IuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICB9CiAKICAgICAgICAgLy8gU2ltcGxlIC0g
I2hleCwgcmdiKCksIG5pY2tuYW1lLCBoc2woKQotICAgICAgICB2YXIgc2ltcGxlID0gL14oPzoj
KFswLTlhLWZdezMsNn0pfHJnYlwoKFteKV0rKVwpfChcdyspfGhzbFwoKFteKV0rKVwpKSQvaTsK
KyAgICAgICAgdmFyIHNpbXBsZSA9IC9eKD86IyhbMC05YS1mXXszLDh9KXxyZ2JcKChbXildKylc
KXwoXHcrKXxoc2xcKChbXildKylcKSkkL2k7CiAgICAgICAgIHZhciBtYXRjaCA9IGNvbG9yU3Ry
aW5nLm1hdGNoKHNpbXBsZSk7CiAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICAgaWYg
KG1hdGNoWzFdKSB7IC8vIGhleAogICAgICAgICAgICAgICAgIHZhciBoZXggPSBtYXRjaFsxXS50
b1VwcGVyQ2FzZSgpOwotICAgICAgICAgICAgICAgIGlmIChoZXgubGVuZ3RoID09PSAzKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGxlbiA9IGhleC5sZW5ndGg7CisgICAgICAgICAgICAgICAgaWYg
KGxlbiA9PT0gMykgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5Db2xvcihXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYLCBbCiAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJzZUludChoZXguY2hhckF0KDApICsgaGV4LmNoYXJBdCgwKSwgMTYp
LAogICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoaGV4LmNoYXJBdCgxKSArIGhleC5j
aGFyQXQoMSksIDE2KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5jaGFy
QXQoMikgKyBoZXguY2hhckF0KDIpLCAxNiksCiAgICAgICAgICAgICAgICAgICAgICAgICAxCiAg
ICAgICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChsZW4gPT09IDYpIHsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IoV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVgs
IFsKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5zdWJzdHJpbmcoMCwgMiks
IDE2KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5zdWJzdHJpbmcoMiwg
NCksIDE2KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5zdWJzdHJpbmco
NCwgNiksIDE2KSwKICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAg
ICAgXSk7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGVu
ID09PSA0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNv
bG9yKFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhBbHBoYSwgWworICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VJbnQoaGV4LmNoYXJBdCgwKSArIGhleC5jaGFyQXQoMCksIDE2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5jaGFyQXQoMSkgKyBoZXgu
Y2hhckF0KDEpLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludChoZXguY2hh
ckF0KDIpICsgaGV4LmNoYXJBdCgyKSwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFy
c2VJbnQoaGV4LmNoYXJBdCgzKSArIGhleC5jaGFyQXQoMyksIDE2KSAvIDI1NQorICAgICAgICAg
ICAgICAgICAgICBdKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxlbiA9PT0gOCkgewor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2xvcihXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhLCBbCisgICAgICAgICAgICAgICAgICAgICAgICBw
YXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIpLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJzZUludChoZXguc3Vic3RyaW5nKDIsIDQpLCAxNiksCisgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJzZUludChoZXguc3Vic3RyaW5nKDQsIDYpLCAxNiksCisgICAgICAgICAgICAgICAg
ICAgICAgICBwYXJzZUludChoZXguc3Vic3RyaW5nKDYsIDgpLCAxNikgLyAyNTUKKyAgICAgICAg
ICAgICAgICAgICAgXSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaFsyXSkgeyAvLyBy
Z2IKICAgICAgICAgICAgICAgICB2YXIgcmdiID0gbWF0Y2hbMl0uc3BsaXQoL1xzKixccyovKTsK
KyAgICAgICAgICAgICAgICBpZiAocmdiLmxlbmd0aCAhPT0gMykKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
Q29sb3IoV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0IsIFsKICAgICAgICAgICAgICAgICAg
ICAgcGFyc2VJbnQocmdiWzBdKSwKICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQocmdiWzFd
KSwKQEAgLTk0LDYgKzExMiw4IEBAIFdlYkluc3BlY3Rvci5Db2xvciA9IGNsYXNzIENvbG9yCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgfSBlbHNlIGlmICht
YXRjaFs0XSkgeyAvLyBoc2wKICAgICAgICAgICAgICAgICB2YXIgaHNsID0gbWF0Y2hbNF0ucmVw
bGFjZSgvJS9nLCAiIikuc3BsaXQoL1xzKixccyovKTsKKyAgICAgICAgICAgICAgICBpZiAoaHNs
Lmxlbmd0aCAhPT0gMykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IoV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5IU0wsIFsKICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoaHNsWzBdKSwKICAg
ICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoaHNsWzFdKSwKQEAgLTEwNCwxMSArMTI0LDEzIEBA
IFdlYkluc3BlY3Rvci5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgIH0KIAogICAgICAgICAv
LyBBZHZhbmNlZCAtIHJnYmEoKSwgaHNsYSgpCi0gICAgICAgIHZhciBhZHZhbmNlZCA9IC9eKD86
cmdiYVwoKFteKV0rKVwpfGhzbGFcKChbXildKylcKSkkLzsKKyAgICAgICAgdmFyIGFkdmFuY2Vk
ID0gL14oPzpyZ2JhXCgoW14pXSspXCl8aHNsYVwoKFteKV0rKVwpKSQvaTsKICAgICAgICAgbWF0
Y2ggPSBjb2xvclN0cmluZy5tYXRjaChhZHZhbmNlZCk7CiAgICAgICAgIGlmIChtYXRjaCkgewog
ICAgICAgICAgICAgaWYgKG1hdGNoWzFdKSB7IC8vIHJnYmEKICAgICAgICAgICAgICAgICB2YXIg
cmdiYSA9IG1hdGNoWzFdLnNwbGl0KC9ccyosXHMqLyk7CisgICAgICAgICAgICAgICAgaWYgKHJn
YmEubGVuZ3RoICE9PSA0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2xvcihXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LlJHQkEsIFsKICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQocmdiYVswXSks
CiAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHJnYmFbMV0pLApAQCAtMTE3LDYgKzEzOSw4
IEBAIFdlYkluc3BlY3Rvci5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgICAgICAgICAgXSk7
CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoWzJdKSB7IC8vIGhzbGEKICAgICAgICAgICAg
ICAgICB2YXIgaHNsYSA9IG1hdGNoWzJdLnJlcGxhY2UoLyUvZywgIiIpLnNwbGl0KC9ccyosXHMq
Lyk7CisgICAgICAgICAgICAgICAgaWYgKGhzbGEubGVuZ3RoICE9PSA0KQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5Db2xvcihXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEEsIFsKICAgICAgICAgICAg
ICAgICAgICAgcGFyc2VJbnQoaHNsYVswXSksCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50
KGhzbGFbMV0pLApAQCAtMjIyLDIwICsyNDYsMjIgQEAgV2ViSW5zcGVjdG9yLkNvbG9yID0gY2xh
c3MgQ29sb3IKICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1h
dC5OaWNrbmFtZTsKICAgICAgICAgICAgIGlmICh0aGlzLnNpbXBsZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fY2FuQmVTZXJpYWxpemVkQXNTaG9ydEhFWCgpID8gV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5TaG9ydEhFWCA6IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0Lk9yaWdpbmFsOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhbkJlU2VyaWFs
aXplZEFzU2hvcnRIRVgoKSA/IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhBbHBo
YSA6IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGE7CiAKICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYOgogICAgICAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYOwogCisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhOgorICAgICAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGE7CisKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
Q29sb3IuRm9ybWF0LkhFWDoKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
LkhFWEFscGhhOgogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
T3JpZ2luYWw7CiAKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk5pY2tu
YW1lOgogICAgICAgICAgICAgaWYgKHRoaXMuc2ltcGxlKQogICAgICAgICAgICAgICAgIHJldHVy
biB0aGlzLl9jYW5CZVNlcmlhbGl6ZWRBc1Nob3J0SEVYKCkgPyBXZWJJbnNwZWN0b3IuQ29sb3Iu
Rm9ybWF0LlNob3J0SEVYIDogV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVg7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuT3JpZ2luYWw7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2FuQmVTZXJpYWxpemVkQXNT
aG9ydEhFWCgpID8gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhIDogV2Vi
SW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVhBbHBoYTsKIAogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBjb2xvciBmb3JtYXQuIik7CkBAIC0yODcs
NiArMzEzLDggQEAgV2ViSW5zcGVjdG9yLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQjoKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LkhFWDoKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9y
bWF0LlNob3J0SEVYOgorICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVY
QWxwaGE6CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFs
cGhhOgogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuTmlja25hbWU6CiAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0JBOgogICAgICAgICAgICAg
cmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IodGhpcy5mb3JtYXQsIHRoaXMucmdiYSk7CkBA
IC0zMTYsNiArMzQ0LDEwIEBAIFdlYkluc3BlY3Rvci5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fdG9IRVhTdHJpbmcoKTsKICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYOgogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rv
U2hvcnRIRVhTdHJpbmcoKTsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
LkhFWEFscGhhOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvSEVYQWxwaGFTdHJpbmcoKTsK
KyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYQWxwaGE6Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9TaG9ydEhFWEFscGhhU3RyaW5nKCk7CiAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZToKICAgICAgICAgICAgIHJl
dHVybiB0aGlzLl90b05pY2tuYW1lU3RyaW5nKCk7CiAgICAgICAgIH0KQEAgLTM4NCw2ICs0MTYs
MzEgQEAgV2ViSW5zcGVjdG9yLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgcmV0dXJuICIj
IiArIHIgKyBnICsgYjsKICAgICB9CiAKKyAgICBfdG9TaG9ydEhFWEFscGhhU3RyaW5nKCkKKyAg
ICB7CisgICAgICAgIGxldCByZ2JhID0gdGhpcy5yZ2JhOworICAgICAgICBsZXQgciA9IHRoaXMu
X2NvbXBvbmVudFRvSGV4VmFsdWUocmdiYVswXSk7CisgICAgICAgIGxldCBnID0gdGhpcy5fY29t
cG9uZW50VG9IZXhWYWx1ZShyZ2JhWzFdKTsKKyAgICAgICAgbGV0IGIgPSB0aGlzLl9jb21wb25l
bnRUb0hleFZhbHVlKHJnYmFbMl0pOworICAgICAgICBsZXQgYSA9IHRoaXMuX2NvbXBvbmVudFRv
SGV4VmFsdWUoTWF0aC5yb3VuZChyZ2JhWzNdICogMjU1KSk7CisKKyAgICAgICAgaWYgKHJbMF0g
PT09IHJbMV0gJiYgZ1swXSA9PT0gZ1sxXSAmJiBiWzBdID09PSBiWzFdICYmIGFbMF0gPT09IGFb
MV0pCisgICAgICAgICAgICByZXR1cm4gIiMiICsgclswXSArIGdbMF0gKyBiWzBdICsgYVswXTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuICIjIiArIHIgKyBnICsgYiArIGE7Cisg
ICAgfQorCisgICAgX3RvSEVYQWxwaGFTdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IHJnYmEg
PSB0aGlzLnJnYmE7CisgICAgICAgIGxldCByID0gdGhpcy5fY29tcG9uZW50VG9IZXhWYWx1ZShy
Z2JhWzBdKTsKKyAgICAgICAgbGV0IGcgPSB0aGlzLl9jb21wb25lbnRUb0hleFZhbHVlKHJnYmFb
MV0pOworICAgICAgICBsZXQgYiA9IHRoaXMuX2NvbXBvbmVudFRvSGV4VmFsdWUocmdiYVsyXSk7
CisgICAgICAgIGxldCBhID0gdGhpcy5fY29tcG9uZW50VG9IZXhWYWx1ZShNYXRoLnJvdW5kKHJn
YmFbM10gKiAyNTUpKTsKKworICAgICAgICByZXR1cm4gIiMiICsgciArIGcgKyBiICsgYTsKKyAg
ICB9CisKICAgICBfdG9SR0JTdHJpbmcoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnNpbXBs
ZSkKQEAgLTUyNCw2ICs1ODEsOCBAQCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0ID0gewogICAg
IE5pY2tuYW1lOiAiY29sb3ItZm9ybWF0LW5pY2tuYW1lIiwKICAgICBIRVg6ICJjb2xvci1mb3Jt
YXQtaGV4IiwKICAgICBTaG9ydEhFWDogImNvbG9yLWZvcm1hdC1zaG9ydC1oZXgiLAorICAgIEhF
WEFscGhhOiAiY29sb3ItZm9ybWF0LWhleC1hbHBoYSIsCisgICAgU2hvcnRIRVhBbHBoYTogImNv
bG9yLWZvcm1hdC1zaG9ydC1oZXgtYWxwaGEiLAogICAgIFJHQjogImNvbG9yLWZvcm1hdC1yZ2Ii
LAogICAgIFJHQkE6ICJjb2xvci1mb3JtYXQtcmdiYSIsCiAgICAgSFNMOiAiY29sb3ItZm9ybWF0
LWhzbCIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMKaW5kZXggMWQ1ZDc3OS4u
MDZiYzVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qcwpAQCAtODUsNyAr
ODUsNyBAQCBmdW5jdGlvbiBjcmVhdGVDb2RlTWlycm9yVGV4dE1hcmtlcnModHlwZSwgcGF0dGVy
biwgbWF0Y2hGdW5jdGlvbiwgY29kZU1pcnJvciwgcgogZnVuY3Rpb24gY3JlYXRlQ29kZU1pcnJv
ckNvbG9yVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIGNhbGxiYWNrKQogewogICAgIC8v
IE1hdGNoZXMgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2IoMCwgMCwgMCksIGhzbCgpLCBoc2xhKCks
ICNmZmYsICNmZmZmZmYsIHdoaXRlCi0gICAgdmFyIGNvbG9yUmVnZXggPSAvKCg/OnJnYnxoc2wp
YT9cKFteKV0rXCl8I1swLTlhLWZBLUZdezZ9fCNbMC05YS1mQS1GXXszfXxcYlx3K1xiKD8hWy0u
XSkpL2c7CisgICAgdmFyIGNvbG9yUmVnZXggPSAvKCg/OnJnYnxoc2wpYT9cKFteKV0rXCl8I1sw
LTlhLWZBLUZdezh9fCNbMC05YS1mQS1GXXs2fXwjWzAtOWEtZkEtRl17NH18I1swLTlhLWZBLUZd
ezN9fFxiXHcrXGIoPyFbLS5dKSkvZzsKICAgICBmdW5jdGlvbiBtYXRjaEZ1bmN0aW9uKGxpbmVD
b250ZW50LCBtYXRjaCkgewogICAgICAgICAvLyBBY3QgYXMgYSBuZWdhdGl2ZSBsb29rLWJlaGlu
ZCBhbmQgZGlzYWxsb3cgdGhlIGNvbG9yIGZyb20gYmVpbmcgcHJlZml4aW5nIHdpdGggY2VydGFp
biBjaGFyYWN0ZXJzLgogICAgICAgICByZXR1cm4gIShtYXRjaC5pbmRleCA+IDAgJiYgL1stLlwi
XCddLy50ZXN0KGxpbmVDb250ZW50W21hdGNoLmluZGV4IC0gMV0pKTsK
</data>
<flag name="commit-queue"
          id="289913"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264813</attachid>
            <date>2015-11-04 14:16:02 -0800</date>
            <delta_ts>2015-11-04 16:00:42 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>better.patch</filename>
            <type>text/plain</type>
            <size>30304</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3M2IxZjc1Li40ODA4MTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMTEt
MDQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTdXBwb3J0ICNyZ2JhIGFuZCAjcnJnZ2JiYWEgc3ludGF4CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA4OTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9j
b2xvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9jb2xv
ci5odG1sOiBBZGRlZC4KKwogMjAxNS0xMS0wNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXhpbmcgdGVzdCBhZGRlZCB3aXRoIHIxOTIwMjIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4NzIzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIx
IEBACitUZXN0cyBmb3IgdGhlIFdlYkluc3BlY3Rvci5Db2xvciBtb2RlbCBvYmplY3QuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXZWJJbnNwZWN0b3IuQ29sb3IKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZworUEFTUzogJyMwMDAnIHNob3Vs
ZCBiZSBkZXRlY3RlZAorUEFTUzogJyMwMDAnIHdhcyB0aGUgZXhwZWN0ZWQgJ1Nob3J0IEhFWCcg
Zm9ybWF0CitQQVNTOiAnI2EwQScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAnI2EwQScgd2Fz
IHRoZSBleHBlY3RlZCAnU2hvcnQgSEVYJyBmb3JtYXQKK1BBU1M6ICcjMDAwMDAwJyBzaG91bGQg
YmUgZGV0ZWN0ZWQKK1BBU1M6ICcjMDAwMDAwJyB3YXMgdGhlIGV4cGVjdGVkICdIRVgnIGZvcm1h
dAorUEFTUzogJyNhMEFhMEEnIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJyNhMEFhMEEnIHdh
cyB0aGUgZXhwZWN0ZWQgJ0hFWCcgZm9ybWF0CitQQVNTOiAnIzAwMDAnIHNob3VsZCBiZSBkZXRl
Y3RlZAorUEFTUzogJyMwMDAwJyB3YXMgdGhlIGV4cGVjdGVkICdTaG9ydCBIRVggd2l0aCBBbHBo
YScgZm9ybWF0CitQQVNTOiAnI2EwQWYnIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJyNhMEFm
JyB3YXMgdGhlIGV4cGVjdGVkICdTaG9ydCBIRVggd2l0aCBBbHBoYScgZm9ybWF0CitQQVNTOiAn
IzAwMDAwMDAwJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICcjMDAwMDAwMDAnIHdhcyB0aGUg
ZXhwZWN0ZWQgJ0hFWCB3aXRoIEFscGhhJyBmb3JtYXQKK1BBU1M6ICcjYTBBYTBBZmYnIHNob3Vs
ZCBiZSBkZXRlY3RlZAorUEFTUzogJyNhMEFhMEFmZicgd2FzIHRoZSBleHBlY3RlZCAnSEVYIHdp
dGggQWxwaGEnIGZvcm1hdAorUEFTUzogJ3JnYigxLDIsMyknIHNob3VsZCBiZSBkZXRlY3RlZAor
UEFTUzogJ3JnYigxLDIsMyknIHdhcyB0aGUgZXhwZWN0ZWQgJ1JHQicgZm9ybWF0CitQQVNTOiAn
UkdCKDEsMiwzKScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAnUkdCKDEsMiwzKScgd2FzIHRo
ZSBleHBlY3RlZCAnUkdCJyBmb3JtYXQKK1BBU1M6ICdyZ2IoOTk5LCA5OTksIDk5OSknIHNob3Vs
ZCBiZSBkZXRlY3RlZAorUEFTUzogJ3JnYig5OTksIDk5OSwgOTk5KScgd2FzIHRoZSBleHBlY3Rl
ZCAnUkdCJyBmb3JtYXQKK1BBU1M6ICdyZ2IoIDEgLCAxICwgMSApJyBzaG91bGQgYmUgZGV0ZWN0
ZWQKK1BBU1M6ICdyZ2IoIDEgLCAxICwgMSApJyB3YXMgdGhlIGV4cGVjdGVkICdSR0InIGZvcm1h
dAorUEFTUzogJ3JnYmEoMSwyLDMsMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ3JnYmEo
MSwyLDMsMCknIHdhcyB0aGUgZXhwZWN0ZWQgJ1JHQkEnIGZvcm1hdAorUEFTUzogJ1JHQkEoMSwy
LDMsMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ1JHQkEoMSwyLDMsMCknIHdhcyB0aGUg
ZXhwZWN0ZWQgJ1JHQkEnIGZvcm1hdAorUEFTUzogJ3JnYmEoOTk5LCA5OTksIDk5OSwgOTk5KScg
c2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAncmdiYSg5OTksIDk5OSwgOTk5LCA5OTkpJyB3YXMg
dGhlIGV4cGVjdGVkICdSR0JBJyBmb3JtYXQKK1BBU1M6ICdyZ2JhKCAxICwgMSAsIDEgLCAwLjUg
KScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAncmdiYSggMSAsIDEgLCAxICwgMC41ICknIHdh
cyB0aGUgZXhwZWN0ZWQgJ1JHQkEnIGZvcm1hdAorUEFTUzogJ2hzbCgwLCAwJSwgNTAlKScgc2hv
dWxkIGJlIGRldGVjdGVkCitQQVNTOiAnaHNsKDAsIDAlLCA1MCUpJyB3YXMgdGhlIGV4cGVjdGVk
ICdIU0wnIGZvcm1hdAorUEFTUzogJ0hTTCgwLCAwJSwgNTAlKScgc2hvdWxkIGJlIGRldGVjdGVk
CitQQVNTOiAnSFNMKDAsIDAlLCA1MCUpJyB3YXMgdGhlIGV4cGVjdGVkICdIU0wnIGZvcm1hdAor
UEFTUzogJ2hzbCg5OTksIDk5OSUsIDk5OSUpJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdo
c2woOTk5LCA5OTklLCA5OTklKScgd2FzIHRoZSBleHBlY3RlZCAnSFNMJyBmb3JtYXQKK1BBU1M6
ICdoc2woIDAgLCAwJSAsIDUwJSApJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdoc2woIDAg
LCAwJSAsIDUwJSApJyB3YXMgdGhlIGV4cGVjdGVkICdIU0wnIGZvcm1hdAorUEFTUzogJ2hzbGEo
MCwgMCUsIDUwJSwgMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ2hzbGEoMCwgMCUsIDUw
JSwgMCknIHdhcyB0aGUgZXhwZWN0ZWQgJ0hTTEEnIGZvcm1hdAorUEFTUzogJ0hTTEEoMCwgMCUs
IDUwJSwgMCknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ0hTTEEoMCwgMCUsIDUwJSwgMCkn
IHdhcyB0aGUgZXhwZWN0ZWQgJ0hTTEEnIGZvcm1hdAorUEFTUzogJ2hzbGEoOTk5LCA5OTklLCA5
OTklLCA5OTkpJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdoc2xhKDk5OSwgOTk5JSwgOTk5
JSwgOTk5KScgd2FzIHRoZSBleHBlY3RlZCAnSFNMQScgZm9ybWF0CitQQVNTOiAnaHNsYSggMCAs
IDAlICwgNTAlICwgMC41ICknIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ2hzbGEoIDAgLCAw
JSAsIDUwJSAsIDAuNSApJyB3YXMgdGhlIGV4cGVjdGVkICdIU0xBJyBmb3JtYXQKK1BBU1M6ICdi
bHVlJyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdibHVlJyB3YXMgdGhlIGV4cGVjdGVkICdO
aWNrbmFtZScgZm9ybWF0CitQQVNTOiAnQkx1RScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAn
Qkx1RScgd2FzIHRoZSBleHBlY3RlZCAnTmlja25hbWUnIGZvcm1hdAorUEFTUzogJ21pZG5pZ2h0
Ymx1ZScgc2hvdWxkIGJlIGRldGVjdGVkCitQQVNTOiAnbWlkbmlnaHRibHVlJyB3YXMgdGhlIGV4
cGVjdGVkICdOaWNrbmFtZScgZm9ybWF0CitQQVNTOiAncm95YWxibHVlJyBzaG91bGQgYmUgZGV0
ZWN0ZWQKK1BBU1M6ICdyb3lhbGJsdWUnIHdhcyB0aGUgZXhwZWN0ZWQgJ05pY2tuYW1lJyBmb3Jt
YXQKK1BBU1M6ICdzdGVlbGJsdWUnIHNob3VsZCBiZSBkZXRlY3RlZAorUEFTUzogJ3N0ZWVsYmx1
ZScgd2FzIHRoZSBleHBlY3RlZCAnTmlja25hbWUnIGZvcm1hdAorUEFTUzogJ3RyYW5zcGFyZW50
JyBzaG91bGQgYmUgZGV0ZWN0ZWQKK1BBU1M6ICd0cmFuc3BhcmVudCcgd2FzIHRoZSBleHBlY3Rl
ZCAnTmlja25hbWUnIGZvcm1hdAorCitQQVNTOiAnICMwMDAgJyBzaG91bGQgbm90IGJlIGRldGVj
dGVkCitQQVNTOiAnI3JnYicgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZAorUEFTUzogJyMxJyBzaG91
bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnIzEyJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQ
QVNTOiAnIzEyMzQ1JyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnIzEyMzQ1NjcnIHNo
b3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICcjMTIzNDU2Nzg5JyBzaG91bGQgbm90IGJlIGRl
dGVjdGVkCitQQVNTOiAncmdiKDI1NSwgMjU1LCAyNTUsIDAuNSknIHNob3VsZCBub3QgYmUgZGV0
ZWN0ZWQKK1BBU1M6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSwgMSknIHNob3VsZCBub3QgYmUg
ZGV0ZWN0ZWQKK1BBU1M6ICdoc2woMCwgMCUsIDUwJSwgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKK1BBU1M6ICdoc2xhKDAsIDAlLCA1MCUsIDEsIDIpJyBzaG91bGQgbm90IGJlIGRldGVjdGVk
CitQQVNTOiAnc3VwZXJibHVlJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXZWJJbnNwZWN0b3IuQ29sb3IgcHJvcGVydGllcworUEFTUzogJ3JlZCcgc2hv
dWxkIGhhdmUgYWxwaGEgb2YgMS4KK1BBU1M6ICdyZWQnIHNob3VsZCBiZSBzaW1wbGUuCitQQVNT
OiAncmVkJyBoYXMgcmdiIG9mIFsyNTUsIDAsIDBdLgorUEFTUzogJ3JlZCcgaGFzIHJnYmEgb2Yg
WzI1NSwgMCwgMCwgMV0uCitQQVNTOiAncmVkJyBoYXMgaHNsIG9mIFswLCAxMDAsIDUwXS4KK1BB
U1M6ICdyZWQnIGhhcyBoc2xhIG9mIFswLCAxMDAsIDUwLCAxXS4KK1BBU1M6ICd0cmFuc3BhcmVu
dCcgc2hvdWxkIGhhdmUgYWxwaGEgb2YgMC4KK1BBU1M6ICd0cmFuc3BhcmVudCcgc2hvdWxkIGJl
IG5vdCBiZSBzaW1wbGUuCitQQVNTOiAndHJhbnNwYXJlbnQnIGhhcyByZ2Igb2YgWzAsIDAsIDBd
LgorUEFTUzogJ3RyYW5zcGFyZW50JyBoYXMgcmdiYSBvZiBbMCwgMCwgMCwgMF0uCitQQVNTOiAn
dHJhbnNwYXJlbnQnIGhhcyBoc2wgb2YgWzAsIDAsIDBdLgorUEFTUzogJ3RyYW5zcGFyZW50JyBo
YXMgaHNsYSBvZiBbMCwgMCwgMCwgMF0uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXZWJJbnNw
ZWN0b3IuQ29sb3IucHJvdG90eXBlLm5leHRGb3JtYXQKK1BBU1M6IEFsbCBmb3JtYXQgcGhhc2Vz
IG9mICd0cmFuc3BhcmVudCcgc2hvdWxkIGJlIGFzIGV4cGVjdGVkLgorUEFTUzogQWxsIGZvcm1h
dCBwaGFzZXMgb2YgJ3JlZCcgc2hvdWxkIGJlIGFzIGV4cGVjdGVkLgorUEFTUzogQWxsIGZvcm1h
dCBwaGFzZXMgb2YgJ3JnYigxMDAsIDE1MCwgMjAwKScgc2hvdWxkIGJlIGFzIGV4cGVjdGVkLgor
UEFTUzogQWxsIGZvcm1hdCBwaGFzZXMgb2YgJ3JnYmEoMTAwLCAxNTAsIDIwMCwgMC41KScgc2hv
dWxkIGJlIGFzIGV4cGVjdGVkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV2ViSW5zcGVjdG9y
LkNvbG9yLnByb3RvdHlwZS50b1N0cmluZworUEFTUzogQ29sb3IgYXMgJ09yaWdpbmFsJyBzaG91
bGQgYmUgJ1JFRCcKK1BBU1M6IENvbG9yIGFzICdOaWNrbmFtZScgc2hvdWxkIGJlICdyZWQnCitQ
QVNTOiBDb2xvciBhcyAnU2hvcnQgSEVYJyBzaG91bGQgYmUgJyNmMDAnCitQQVNTOiBDb2xvciBh
cyAnSEVYJyBzaG91bGQgYmUgJyNmZjAwMDAnCitQQVNTOiBDb2xvciBhcyAnU2hvcnQgSEVYIHdp
dGggQWxwaGEnIHNob3VsZCBiZSAnI2YwMGYnCitQQVNTOiBDb2xvciBhcyAnSEVYIHdpdGggQWxw
aGEnIHNob3VsZCBiZSAnI2ZmMDAwMGZmJworUEFTUzogQ29sb3IgYXMgJ1JHQicgc2hvdWxkIGJl
ICdyZ2IoMjU1LCAwLCAwKScKK1BBU1M6IENvbG9yIGFzICdSR0JBJyBzaG91bGQgYmUgJ3JnYmEo
MjU1LCAwLCAwLCAxKScKK1BBU1M6IENvbG9yIGFzICdIU0wnIHNob3VsZCBiZSAnaHNsKDAsIDEw
MCUsIDUwJSknCitQQVNTOiBDb2xvciBhcyAnSFNMQScgc2hvdWxkIGJlICdoc2xhKDAsIDEwMCUs
IDUwJSwgMSknCitQQVNTOiBDb2xvciBhcyAnT3JpZ2luYWwnIHNob3VsZCBiZSAncmdiYSgxMDAs
IDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMgJ05pY2tuYW1lJyBzaG91bGQgYmUgJ3Jn
YmEoMTAwLCAyMDAsIDI1NSwgMC41KScKK1BBU1M6IENvbG9yIGFzICdTaG9ydCBIRVgnIHNob3Vs
ZCBiZSAncmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMgJ0hFWCcgc2hv
dWxkIGJlICdyZ2JhKDEwMCwgMjAwLCAyNTUsIDAuNSknCitQQVNTOiBDb2xvciBhcyAnU2hvcnQg
SEVYIHdpdGggQWxwaGEnIHNob3VsZCBiZSAnIzY0YzhmZjgwJworUEFTUzogQ29sb3IgYXMgJ0hF
WCB3aXRoIEFscGhhJyBzaG91bGQgYmUgJyM2NGM4ZmY4MCcKK1BBU1M6IENvbG9yIGFzICdSR0In
IHNob3VsZCBiZSAncmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMgJ1JH
QkEnIHNob3VsZCBiZSAncmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpJworUEFTUzogQ29sb3IgYXMg
J0hTTCcgc2hvdWxkIGJlICdoc2xhKDIwMSwgMTAwJSwgNzAlLCAwLjUpJworUEFTUzogQ29sb3Ig
YXMgJ0hTTEEnIHNob3VsZCBiZSAnaHNsYSgyMDEsIDEwMCUsIDcwJSwgMC41KScKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jMGIwNzk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL2NvbG9yLmh0bWwKQEAgLTAsMCArMSwyNjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGZ1bmN0aW9uIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgeworICAgICAgICBz
d2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
T3JpZ2luYWw6CisgICAgICAgICAgICByZXR1cm4gIk9yaWdpbmFsIjsKKyAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk5pY2tuYW1lOgorICAgICAgICAgICAgcmV0dXJuICJO
aWNrbmFtZSI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVg6Cisg
ICAgICAgICAgICByZXR1cm4gIkhFWCI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5TaG9ydEhFWDoKKyAgICAgICAgICAgIHJldHVybiAiU2hvcnQgSEVYIjsKKyAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhOgorICAgICAgICAgICAg
cmV0dXJuICJIRVggd2l0aCBBbHBoYSI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5TaG9ydEhFWEFscGhhOgorICAgICAgICAgICAgcmV0dXJuICJTaG9ydCBIRVggd2l0
aCBBbHBoYSI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0I6Cisg
ICAgICAgICAgICByZXR1cm4gIlJHQiI7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5SR0JBOgorICAgICAgICAgICAgcmV0dXJuICJSR0JBIjsKKyAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTDoKKyAgICAgICAgICAgIHJldHVybiAiSFNMIjsK
KyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEE6CisgICAgICAgICAg
ICByZXR1cm4gIkhTTEEiOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICJV
bmV4cGVjdGVkIGZvcm1hdCI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgc3VpdGUgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIldlYkluc3BlY3Rvci5Db2xvciIpOworCisg
ICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiV2ViSW5zcGVjdG9yLkNvbG9y
LmZyb21TdHJpbmciLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3Qgd2UgY2FuIGRldGVjdCBj
b2xvcnMgZnJvbSBzdHJpbmdzLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RHb29kKHN0cmluZywgZXhwZWN0ZWRGb3JtYXQp
IHsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0
cmluZyhzdHJpbmcpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChj
b2xvciBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db2xvciwgYCcke3N0cmluZ30nIHNob3VsZCBi
ZSBkZXRlY3RlZGApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChj
b2xvciAmJiBjb2xvci5mb3JtYXQgPT09IGV4cGVjdGVkRm9ybWF0LCBgJyR7c3RyaW5nfScgd2Fz
IHRoZSBleHBlY3RlZCAnJHtmb3JtYXRUb1N0cmluZyhleHBlY3RlZEZvcm1hdCl9JyBmb3JtYXRg
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJhZChzdHJpbmcp
IHsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0
cmluZyhzdHJpbmcpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChj
b2xvciA9PT0gbnVsbCwgYCcke3N0cmluZ30nIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWRgKTsKKyAg
ICAgICAgICAgICAgICBpZiAoY29sb3IpIEluc3BlY3RvclRlc3QubG9nKGAnJHtzdHJpbmd9JyBk
ZXRlY3RlZCB3aXRoIGZvcm1hdCAnJHtmb3JtYXRUb1N0cmluZyhjb2xvci5mb3JtYXQpfSdgKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdEdvb2QoIiMwMDAiLCBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCIjYTBBIiwg
V2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWCk7CisgICAgICAgICAgICB0ZXN0R29v
ZCgiIzAwMDAwMCIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCIjYTBBYTBBIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVgpOworCisg
ICAgICAgICAgICB0ZXN0R29vZCgiIzAwMDAiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNo
b3J0SEVYQWxwaGEpOworICAgICAgICAgICAgdGVzdEdvb2QoIiNhMEFmIiwgV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCIjMDAw
MDAwMDAiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCIjYTBBYTBBZmYiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhh
KTsKKworICAgICAgICAgICAgdGVzdEdvb2QoInJnYigxLDIsMykiLCBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LlJHQik7CisgICAgICAgICAgICB0ZXN0R29vZCgiUkdCKDEsMiwzKSIsIFdlYklu
c3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJyZ2IoOTk5
LCA5OTksIDk5OSkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQik7CisgICAgICAgICAg
ICB0ZXN0R29vZCgicmdiKCAxICwgMSAsIDEgKSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
UkdCKTsKKworICAgICAgICAgICAgdGVzdEdvb2QoInJnYmEoMSwyLDMsMCkiLCBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdEdvb2QoIlJHQkEoMSwyLDMs
MCkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdEdv
b2QoInJnYmEoOTk5LCA5OTksIDk5OSwgOTk5KSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQu
UkdCQSk7CisgICAgICAgICAgICB0ZXN0R29vZCgicmdiYSggMSAsIDEgLCAxICwgMC41ICkiLCBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQkEpOworCisgICAgICAgICAgICB0ZXN0R29vZCgi
aHNsKDAsIDAlLCA1MCUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0wpOworICAgICAg
ICAgICAgdGVzdEdvb2QoIkhTTCgwLCAwJSwgNTAlKSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuSFNMKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJoc2woOTk5LCA5OTklLCA5OTklKSIsIFdl
Ykluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJoc2wo
IDAgLCAwJSAsIDUwJSApIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0wpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICB0ZXN0R29vZCgiaHNsYSgwLCAwJSwgNTAlLCAwKSIsIFdlYklu
c3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMQSk7CisgICAgICAgICAgICB0ZXN0R29vZCgiSFNMQSgw
LCAwJSwgNTAlLCAwKSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMQSk7CisgICAgICAg
ICAgICB0ZXN0R29vZCgiaHNsYSg5OTksIDk5OSUsIDk5OSUsIDk5OSkiLCBXZWJJbnNwZWN0b3Iu
Q29sb3IuRm9ybWF0LkhTTEEpOworICAgICAgICAgICAgdGVzdEdvb2QoImhzbGEoIDAgLCAwJSAs
IDUwJSAsIDAuNSApIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBKTsKKworICAgICAg
ICAgICAgdGVzdEdvb2QoImJsdWUiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk5pY2tuYW1l
KTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJCTHVFIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1h
dC5OaWNrbmFtZSk7CisgICAgICAgICAgICB0ZXN0R29vZCgibWlkbmlnaHRibHVlIiwgV2ViSW5z
cGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZSk7CisgICAgICAgICAgICB0ZXN0R29vZCgicm95
YWxibHVlIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZSk7CisgICAgICAgICAg
ICB0ZXN0R29vZCgic3RlZWxibHVlIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFt
ZSk7CisgICAgICAgICAgICB0ZXN0R29vZCgidHJhbnNwYXJlbnQiLCBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0Lk5pY2tuYW1lKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIp
OworCisgICAgICAgICAgICB0ZXN0QmFkKCIgIzAwMCAiKTsgLy8gd2hpdGVzcGFjZQorICAgICAg
ICAgICAgdGVzdEJhZCgiI3JnYiIpOyAvLyBiYWQgaGV4CisgICAgICAgICAgICB0ZXN0QmFkKCIj
MSIpOyAvLyAxCisgICAgICAgICAgICB0ZXN0QmFkKCIjMTIiKTsgLy8gMgorICAgICAgICAgICAg
dGVzdEJhZCgiIzEyMzQ1Iik7IC8vIDUKKyAgICAgICAgICAgIHRlc3RCYWQoIiMxMjM0NTY3Iik7
IC8vIDcKKyAgICAgICAgICAgIHRlc3RCYWQoIiMxMjM0NTY3ODkiKTsgLy8gOQorICAgICAgICAg
ICAgdGVzdEJhZCgicmdiKDI1NSwgMjU1LCAyNTUsIDAuNSkiKTsgLy8gZXh0cmEgdmFsdWVzCisg
ICAgICAgICAgICB0ZXN0QmFkKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSwgMSkiKTsgLy8gZXh0
cmEgdmFsdWVzCisgICAgICAgICAgICB0ZXN0QmFkKCJoc2woMCwgMCUsIDUwJSwgMSkiKTsgLy8g
ZXh0cmEgdmFsdWUKKyAgICAgICAgICAgIHRlc3RCYWQoImhzbGEoMCwgMCUsIDUwJSwgMSwgMiki
KTsgLy8gZXh0cmEgdmFsdWVzCisgICAgICAgICAgICB0ZXN0QmFkKCJzdXBlcmJsdWUiKTsgLy8g
bm90IGEgbmlja25hbWUKKworICAgICAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRDb2xvcj8KKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY29uc2lkZXIgbWlzc2luZyAlcyBhcyBiYWQ/
IEN1cnJlbnRseSB3ZSBqdXN0IHN0cmlwIHRoZW0uCisgICAgICAgICAgICAvLyB0ZXN0QmFkKCJo
c2woMCwgMCwgNTApIik7IC8vIG1pc3NpbmcgJXMKKyAgICAgICAgICAgIC8vIHRlc3RCYWQoImhz
bGEoMCwgMCwgNTAsIDEpIik7IC8vIG1pc3NpbmcgJXMKKworICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJXZWJJbnNwZWN0b3IuQ29sb3IgcHJvcGVydGllcyIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiVGVzdCBkaWZmZXJlbnQgY29sb3IgcHJvcGVydGllcy4iLAorICAgICAgICB0ZXN0OiAo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaGFsbG93RXF1YWwo
YXJyMSwgYXJyMikgeworICAgICAgICAgICAgICAgIGlmIChhcnIxLmxlbmd0aCAhPT0gYXJyMi5s
ZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJyMVtpXSAhPT0gYXJyMltpXSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IGNvbG9yOworCisgICAg
ICAgICAgICBjb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tU3RyaW5nKCJyZWQiKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5hbHBoYSA9PT0gMSwgIidy
ZWQnIHNob3VsZCBoYXZlIGFscGhhIG9mIDEuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoY29sb3Iuc2ltcGxlID09PSB0cnVlLCAiJ3JlZCcgc2hvdWxkIGJlIHNpbXBs
ZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IucmdiLCBbMjU1LCAwLCAwXSksICIncmVkJyBoYXMgcmdiIG9mIFsyNTUsIDAsIDBdLiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHNoYWxsb3dFcXVhbChjb2xv
ci5yZ2JhLCBbMjU1LCAwLCAwLCAxXSksICIncmVkJyBoYXMgcmdiYSBvZiBbMjU1LCAwLCAwLCAx
XS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IuaHNsLCBbMCwgMTAwLCA1MF0pLCAiJ3JlZCcgaGFzIGhzbCBvZiBbMCwgMTAwLCA1MF0u
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hhbGxvd0VxdWFsKGNv
bG9yLmhzbGEsIFswLCAxMDAsIDUwLCAxXSksICIncmVkJyBoYXMgaHNsYSBvZiBbMCwgMTAwLCA1
MCwgMV0uIik7CisKKyAgICAgICAgICAgIGNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21T
dHJpbmcoInRyYW5zcGFyZW50Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQoY29sb3IuYWxwaGEgPT09IDAsICIndHJhbnNwYXJlbnQnIHNob3VsZCBoYXZlIGFscGhhIG9m
IDAuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3Iuc2ltcGxl
ID09PSBmYWxzZSwgIid0cmFuc3BhcmVudCcgc2hvdWxkIGJlIG5vdCBiZSBzaW1wbGUuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hhbGxvd0VxdWFsKGNvbG9yLnJn
YiwgWzAsIDAsIDBdKSwgIid0cmFuc3BhcmVudCcgaGFzIHJnYiBvZiBbMCwgMCwgMF0uIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hhbGxvd0VxdWFsKGNvbG9yLnJn
YmEsIFswLCAwLCAwLCAwXSksICIndHJhbnNwYXJlbnQnIGhhcyByZ2JhIG9mIFswLCAwLCAwLCAw
XS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IuaHNsLCBbMCwgMCwgMF0pLCAiJ3RyYW5zcGFyZW50JyBoYXMgaHNsIG9mIFswLCAwLCAw
XS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaGFsbG93RXF1YWwo
Y29sb3IuaHNsYSwgWzAsIDAsIDAsIDBdKSwgIid0cmFuc3BhcmVudCcgaGFzIGhzbGEgb2YgWzAs
IDAsIDAsIDBdLiIpOworCisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICB9
KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIldlYkluc3BlY3Rv
ci5Db2xvci5wcm90b3R5cGUubmV4dEZvcm1hdCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVz
dCB3ZSBjYW4gY3ljbGUgdGhyb3VnaCBjb2xvciBmb3JtYXRzIGZvciBkaWZmZXJlbnQgY29sb3Jz
LiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGZ1
bmN0aW9uIHRlc3Qoc3RyaW5nLCBwaGFzZXMpIHsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3Ig
PSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZyhzdHJpbmcpOworICAgICAgICAgICAgICAg
IGNvbG9yLmZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuT3JpZ2luYWw7CisKKyAg
ICAgICAgICAgICAgICBsZXQgcGFzcyA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yIChsZXQg
ZXhwZWN0ZWROZXh0Rm9ybWF0IG9mIHBoYXNlcykgeworICAgICAgICAgICAgICAgICAgICBsZXQg
bmV4dEZvcm1hdCA9IGNvbG9yLm5leHRGb3JtYXQoKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQobmV4dEZvcm1hdCA9PT0gZXhwZWN0ZWROZXh0Rm9ybWF0LCBgTmV4
dCBmb3JtYXQgJyR7Zm9ybWF0VG9TdHJpbmcobmV4dEZvcm1hdCl9JyB3YXMgbm90IHRoZSBleHBl
Y3RlZCAnJHtmb3JtYXRUb1N0cmluZyhleHBlY3RlZE5leHRGb3JtYXQpfSdgKTsKKyAgICAgICAg
ICAgICAgICAgICAgcGFzcyA9IHBhc3MgJiYgbmV4dEZvcm1hdCA9PT0gZXhwZWN0ZWROZXh0Rm9y
bWF0OworICAgICAgICAgICAgICAgICAgICBjb2xvci5mb3JtYXQgPSBuZXh0Rm9ybWF0OworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChwYXNzLCBgQWxsIGZvcm1hdCBwaGFzZXMgb2YgJyR7c3RyaW5nfScgc2hvdWxkIGJlIGFzIGV4
cGVjdGVkLmApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBbGwgd2l0aCBhbHBo
YS4KKyAgICAgICAgICAgIHRlc3QoInRyYW5zcGFyZW50IiwgWworICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCQSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuQ29sb3IuRm9ybWF0LkhTTEEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5OaWNrbmFtZSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9y
bWF0LlNob3J0SEVYQWxwaGEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5IRVhBbHBoYSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
Lk9yaWdpbmFsLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIC8vIEFsbCB3aXRob3V0
IGFscGhhLgorICAgICAgICAgICAgdGVzdCgicmVkIiwgWworICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5D
b2xvci5Gb3JtYXQuSFNMLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuTmlja25hbWUsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5T
aG9ydEhFWCwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWCwK
KyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk9yaWdpbmFsLAorICAg
ICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIC8vIE5vIHNob3J0IGhleCBvciBuaWNrbmFtZS4K
KyAgICAgICAgICAgIHRlc3QoInJnYigxMDAsIDE1MCwgMjAwKSIsIFsKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQiwKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LkhTTCwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LkhFWCwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
Lk9yaWdpbmFsLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIC8vIE5vIHNob3J0IGhl
eCBhbHBoYSBvciBuaWNrbmFtZS4KKyAgICAgICAgICAgIHRlc3QoInJnYmEoMTAwLCAxNTAsIDIw
MCwgMC41KSIsIFsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJH
QkEsCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBLAorICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGEsCisgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5PcmlnaW5hbCwKKyAgICAgICAgICAg
IF0pOworCisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIldlYkluc3BlY3Rvci5Db2xvci5w
cm90b3R5cGUudG9TdHJpbmciLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhlIGRpZmZl
cmVudCB0b1N0cmluZyBvdXRwdXRzLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgIGxldCBjb2xvcjsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
ZXhwZWN0ZWQsIGZvcm1hdCkgeworICAgICAgICAgICAgICAgIGxldCBwYXNzID0gY29sb3IudG9T
dHJpbmcoZm9ybWF0KSA9PT0gZXhwZWN0ZWQ7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHBhc3MsIGBDb2xvciBhcyAnJHtmb3JtYXRUb1N0cmluZyhmb3JtYXQpfScg
c2hvdWxkIGJlICcke2V4cGVjdGVkfSdgKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhc3MpIElu
c3BlY3RvclRlc3QubG9nKCJXQVM6ICIgKyBjb2xvci50b1N0cmluZyhmb3JtYXQpKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgLy8gQSBjb2xvciB3aXRoIGFsbCBmb3JtYXRzLgorICAg
ICAgICAgICAgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZygiUkVEIik7Cisg
ICAgICAgICAgICB0ZXN0KCJSRUQiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk9yaWdpbmFs
KTsKKyAgICAgICAgICAgIHRlc3QoInJlZCIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuTmlj
a25hbWUpOworICAgICAgICAgICAgdGVzdCgiI2YwMCIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuU2hvcnRIRVgpOworICAgICAgICAgICAgdGVzdCgiI2ZmMDAwMCIsIFdlYkluc3BlY3Rvci5D
b2xvci5Gb3JtYXQuSEVYKTsKKyAgICAgICAgICAgIHRlc3QoIiNmMDBmIiwgV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhKTsKKyAgICAgICAgICAgIHRlc3QoIiNmZjAwMDBm
ZiIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGEpOworICAgICAgICAgICAgdGVz
dCgicmdiKDI1NSwgMCwgMCkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQik7CisgICAg
ICAgICAgICB0ZXN0KCJyZ2JhKDI1NSwgMCwgMCwgMSkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9y
bWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdCgiaHNsKDAsIDEwMCUsIDUwJSkiLCBXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LkhTTCk7CisgICAgICAgICAgICB0ZXN0KCJoc2xhKDAsIDEwMCUs
IDUwJSwgMSkiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEEpOworCisgICAgICAgICAg
ICAvLyBBIGNvbG9yIHdoaWNoIGNhbm5vdCBiZSBzb21lIGZvcm1hdHMsIHRob3NlIGZhbGxiYWNr
IHRvIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAgICAgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29s
b3IuZnJvbVN0cmluZygickdiQSggIDEwMCwgMjAwLCAyNTUsIDAuNSAgKSIpOworICAgICAgICAg
ICAgdGVzdCgicmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5PcmlnaW5hbCk7IC8vIE9yaWdpbmFsIHRleHQgaWdub3JlZCBmb3Igc29tZSBmb3JtYXRz
LgorICAgICAgICAgICAgdGVzdCgicmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVj
dG9yLkNvbG9yLkZvcm1hdC5OaWNrbmFtZSk7IC8vIGZhbGxiYWNrIChyZ2JhKQorICAgICAgICAg
ICAgdGVzdCgicmdiYSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5TaG9ydEhFWCk7IC8vIGZhbGxiYWNrIChyZ2JhKQorICAgICAgICAgICAgdGVzdCgicmdi
YSgxMDAsIDIwMCwgMjU1LCAwLjUpIiwgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IRVgpOyAv
LyBmYWxsYmFjayAocmdiYSkKKyAgICAgICAgICAgIHRlc3QoIiM2NGM4ZmY4MCIsIFdlYkluc3Bl
Y3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhBbHBoYSk7IC8vIGZhbGxiYWNrIChoZXggYWxwaGEp
CisgICAgICAgICAgICB0ZXN0KCIjNjRjOGZmODAiLCBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
LkhFWEFscGhhKTsKKyAgICAgICAgICAgIHRlc3QoInJnYmEoMTAwLCAyMDAsIDI1NSwgMC41KSIs
IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCKTsgLy8gZmFsbGJhY2sgKHJnYmEpCisgICAg
ICAgICAgICB0ZXN0KCJyZ2JhKDEwMCwgMjAwLCAyNTUsIDAuNSkiLCBXZWJJbnNwZWN0b3IuQ29s
b3IuRm9ybWF0LlJHQkEpOworICAgICAgICAgICAgdGVzdCgiaHNsYSgyMDEsIDEwMCUsIDcwJSwg
MC41KSIsIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMKTsgLy8gZmFsbGJhY2sgKGhzbGEp
CisgICAgICAgICAgICB0ZXN0KCJoc2xhKDIwMSwgMTAwJSwgNzAlLCAwLjUpIiwgV2ViSW5zcGVj
dG9yLkNvbG9yLkZvcm1hdC5IU0xBKTsKKworICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3
ZSBjbGFtcCByZ2IoMzAwLCAzMDAsIDMwMCkgPT4gcmdiKDI1NSwgMjU1LCAyNTUpIGluIHRvU3Ry
aW5ncz8KKyAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgYWx3YXlzIHN0YXNoIHRoZSBv
cmlnaW5hbCBzdHJpbmcsIG5vIG1hdHRlciBob3cgcG9vcj8KKworICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+VGVzdHMgZm9yIHRoZSBXZWJJbnNwZWN0b3IuQ29sb3IgbW9kZWwgb2JqZWN0LjwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDYxNDZhM2IuLmFiODNl
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTExLTA0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogV2ViSW5zcGVjdG9yLkNvbG9yIHNob3VsZCBzdXBwb3J0ICNyZ2JhIGFuZCAjcnJn
Z2JiYWEgc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTA4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IGZvciBoZXggd2l0aCBhbHBoYSBjb2xvciBzeW50YXguCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b2xvci5mcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUu
bmV4dEZvcm1hdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLmNvcHkp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS50b1N0cmluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl90b1Nob3J0SEVYQWxwaGFTdHJpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5fdG9IRVhBbHBoYVN0cmlu
Zyk6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgaGV4IHN5bnRheC4gQWRkcmVzcyBzb21l
IG1pbm9yIGlzc3VlcworICAgICAgICBsaWtlIGNhc2UgaW5zZW5zaXRpdml0eSBhbmQgZXh0cmEg
Y29tbWEgc2VwYXJhdGUgdmFsdWVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9D
b2RlTWlycm9yVGV4dE1hcmtlcnMuanM6CisgICAgICAgIFRoaXMgcHJldmVudCB0cmFpbGluZyBo
ZXggY2hhcmFjdGVycyBmcm9tIHNob3dpbmcgdXAKKyAgICAgICAgd2hlbiBjeWNsaW5nIHRocm91
Z2ggY29sb3IgdmFyaWFudHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVN
aXJyb3JBZGRpdGlvbnMuanM6CisgICAgICAgIFdoZW4gQ29kZU1pcnJvciBzdG9wcyB0cmVhdGlu
ZyB0aGUgbmV3IHZhbHVlcyBhcyBlcnJvcgorICAgICAgICB0aGlzIHdpbGwgZ2l2ZSB0aGVtIG91
ciBoZXgtY29sb3Igc3R5bGVzLgorCiAyMDE1LTExLTAzICBNYXR0IEJha2VyICA8bWF0dGJha2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OIChyMTkxNjEy
KTogU3RvcmFnZSBzaWRlYmFyIHBhbmVsIHRyZWUgb3V0bGluZSBpcyBicm9rZW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcwppbmRl
eCA3MDE0MmU1Li42ODYxOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0NvbG9yLmpzCkBAIC01NSwyOCArNTUsNDYgQEAgV2ViSW5zcGVj
dG9yLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgfQogCiAgICAgICAgIC8vIFNpbXBsZSAt
ICNoZXgsIHJnYigpLCBuaWNrbmFtZSwgaHNsKCkKLSAgICAgICAgdmFyIHNpbXBsZSA9IC9eKD86
IyhbMC05YS1mXXszLDZ9KXxyZ2JcKChbXildKylcKXwoXHcrKXxoc2xcKChbXildKylcKSkkL2k7
CisgICAgICAgIHZhciBzaW1wbGUgPSAvXig/OiMoWzAtOWEtZl17Myw4fSl8cmdiXCgoW14pXSsp
XCl8KFx3Kyl8aHNsXCgoW14pXSspXCkpJC9pOwogICAgICAgICB2YXIgbWF0Y2ggPSBjb2xvclN0
cmluZy5tYXRjaChzaW1wbGUpOwogICAgICAgICBpZiAobWF0Y2gpIHsKICAgICAgICAgICAgIGlm
IChtYXRjaFsxXSkgeyAvLyBoZXgKICAgICAgICAgICAgICAgICB2YXIgaGV4ID0gbWF0Y2hbMV0u
dG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAgICBpZiAoaGV4Lmxlbmd0aCA9PT0gMykgewor
ICAgICAgICAgICAgICAgIHZhciBsZW4gPSBoZXgubGVuZ3RoOworICAgICAgICAgICAgICAgIGlm
IChsZW4gPT09IDMpIHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuQ29sb3IoV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWCwgWwogICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VJbnQoaGV4LmNoYXJBdCgwKSArIGhleC5jaGFyQXQoMCksIDE2
KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5jaGFyQXQoMSkgKyBoZXgu
Y2hhckF0KDEpLCAxNiksCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludChoZXguY2hh
ckF0KDIpICsgaGV4LmNoYXJBdCgyKSwgMTYpLAogICAgICAgICAgICAgICAgICAgICAgICAgMQog
ICAgICAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobGVuID09PSA2KSB7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVY
LCBbCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIp
LCAxNiksCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludChoZXguc3Vic3RyaW5nKDIs
IDQpLCAxNiksCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludChoZXguc3Vic3RyaW5n
KDQsIDYpLCAxNiksCiAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAg
ICAgIF0pOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxl
biA9PT0gNCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5D
b2xvcihXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYQWxwaGEsIFsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnNlSW50KGhleC5jaGFyQXQoMCkgKyBoZXguY2hhckF0KDApLCAx
NiksCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludChoZXguY2hhckF0KDEpICsgaGV4
LmNoYXJBdCgxKSwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoaGV4LmNo
YXJBdCgyKSArIGhleC5jaGFyQXQoMiksIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
cnNlSW50KGhleC5jaGFyQXQoMykgKyBoZXguY2hhckF0KDMpLCAxNikgLyAyNTUKKyAgICAgICAg
ICAgICAgICAgICAgXSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZW4gPT09IDgpIHsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IoV2ViSW5z
cGVjdG9yLkNvbG9yLkZvcm1hdC5IRVhBbHBoYSwgWworICAgICAgICAgICAgICAgICAgICAgICAg
cGFyc2VJbnQoaGV4LnN1YnN0cmluZygwLCAyKSwgMTYpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyc2VJbnQoaGV4LnN1YnN0cmluZyg0LCA2KSwgMTYpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyc2VJbnQoaGV4LnN1YnN0cmluZyg2LCA4KSwgMTYpIC8gMjU1CisgICAgICAg
ICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2hbMl0pIHsgLy8g
cmdiCiAgICAgICAgICAgICAgICAgdmFyIHJnYiA9IG1hdGNoWzJdLnNwbGl0KC9ccyosXHMqLyk7
CisgICAgICAgICAgICAgICAgaWYgKHJnYi5sZW5ndGggIT09IDMpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
LkNvbG9yKFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCLCBbCiAgICAgICAgICAgICAgICAg
ICAgIHBhcnNlSW50KHJnYlswXSksCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHJnYlsx
XSksCkBAIC05NCw2ICsxMTIsOCBAQCBXZWJJbnNwZWN0b3IuQ29sb3IgPSBjbGFzcyBDb2xvcgog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAo
bWF0Y2hbNF0pIHsgLy8gaHNsCiAgICAgICAgICAgICAgICAgdmFyIGhzbCA9IG1hdGNoWzRdLnJl
cGxhY2UoLyUvZywgIiIpLnNwbGl0KC9ccyosXHMqLyk7CisgICAgICAgICAgICAgICAgaWYgKGhz
bC5sZW5ndGggIT09IDMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKFdlYkluc3BlY3Rvci5Db2xv
ci5Gb3JtYXQuSFNMLCBbCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhzbFswXSksCiAg
ICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGhzbFsxXSksCkBAIC0xMDQsMTEgKzEyNCwxMyBA
QCBXZWJJbnNwZWN0b3IuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICB9CiAKICAgICAgICAg
Ly8gQWR2YW5jZWQgLSByZ2JhKCksIGhzbGEoKQotICAgICAgICB2YXIgYWR2YW5jZWQgPSAvXig/
OnJnYmFcKChbXildKylcKXxoc2xhXCgoW14pXSspXCkpJC87CisgICAgICAgIHZhciBhZHZhbmNl
ZCA9IC9eKD86cmdiYVwoKFteKV0rKVwpfGhzbGFcKChbXildKylcKSkkL2k7CiAgICAgICAgIG1h
dGNoID0gY29sb3JTdHJpbmcubWF0Y2goYWR2YW5jZWQpOwogICAgICAgICBpZiAobWF0Y2gpIHsK
ICAgICAgICAgICAgIGlmIChtYXRjaFsxXSkgeyAvLyByZ2JhCiAgICAgICAgICAgICAgICAgdmFy
IHJnYmEgPSBtYXRjaFsxXS5zcGxpdCgvXHMqLFxzKi8pOworICAgICAgICAgICAgICAgIGlmIChy
Z2JhLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IoV2ViSW5zcGVjdG9yLkNv
bG9yLkZvcm1hdC5SR0JBLCBbCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHJnYmFbMF0p
LAogICAgICAgICAgICAgICAgICAgICBwYXJzZUludChyZ2JhWzFdKSwKQEAgLTExNyw2ICsxMzks
OCBAQCBXZWJJbnNwZWN0b3IuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICAgICAgICAgIF0p
OwogICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaFsyXSkgeyAvLyBoc2xhCiAgICAgICAgICAg
ICAgICAgdmFyIGhzbGEgPSBtYXRjaFsyXS5yZXBsYWNlKC8lL2csICIiKS5zcGxpdCgvXHMqLFxz
Ki8pOworICAgICAgICAgICAgICAgIGlmIChoc2xhLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuQ29sb3IoV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBLCBbCiAgICAgICAgICAg
ICAgICAgICAgIHBhcnNlSW50KGhzbGFbMF0pLAogICAgICAgICAgICAgICAgICAgICBwYXJzZUlu
dChoc2xhWzFdKSwKQEAgLTIyMiwyMCArMjQ2LDIyIEBAIFdlYkluc3BlY3Rvci5Db2xvciA9IGNs
YXNzIENvbG9yCiAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuTmlja25hbWU7CiAgICAgICAgICAgICBpZiAodGhpcy5zaW1wbGUpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2NhbkJlU2VyaWFsaXplZEFzU2hvcnRIRVgoKSA/IFdlYkluc3BlY3Rv
ci5Db2xvci5Gb3JtYXQuU2hvcnRIRVggOiBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWDsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNv
bG9yLkZvcm1hdC5PcmlnaW5hbDsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYW5CZVNlcmlh
bGl6ZWRBc1Nob3J0SEVYKCkgPyBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVYQWxw
aGEgOiBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhOwogCiAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWDoKICAgICAgICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWDsKIAorICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhBbHBoYToKKyAgICAgICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuQ29sb3IuRm9ybWF0LkhFWEFscGhhOworCiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LkNvbG9yLkZvcm1hdC5IRVg6CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1h
dC5IRVhBbHBoYToKICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0
Lk9yaWdpbmFsOwogCiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5OaWNr
bmFtZToKICAgICAgICAgICAgIGlmICh0aGlzLnNpbXBsZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdGhpcy5fY2FuQmVTZXJpYWxpemVkQXNTaG9ydEhFWCgpID8gV2ViSW5zcGVjdG9yLkNvbG9y
LkZvcm1hdC5TaG9ydEhFWCA6IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29sb3IuRm9y
bWF0Lk9yaWdpbmFsOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhbkJlU2VyaWFsaXplZEFz
U2hvcnRIRVgoKSA/IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhBbHBoYSA6IFdl
Ykluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVYQWxwaGE7CiAKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gY29sb3IgZm9ybWF0LiIpOwpAQCAtMjg3
LDYgKzMxMyw4IEBAIFdlYkluc3BlY3Rvci5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0I6CiAgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLkNvbG9yLkZvcm1hdC5IRVg6CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5TaG9ydEhFWDoKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhF
WEFscGhhOgorICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVhB
bHBoYToKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0Lk5pY2tuYW1lOgog
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCQToKICAgICAgICAgICAg
IHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKHRoaXMuZm9ybWF0LCB0aGlzLnJnYmEpOwpA
QCAtMzE2LDYgKzM0NCwxMCBAQCBXZWJJbnNwZWN0b3IuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3RvSEVYU3RyaW5nKCk7CiAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWDoKICAgICAgICAgICAgIHJldHVybiB0aGlzLl90
b1Nob3J0SEVYU3RyaW5nKCk7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1h
dC5IRVhBbHBoYToKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl90b0hFWEFscGhhU3RyaW5nKCk7
CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWEFscGhhOgor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvU2hvcnRIRVhBbHBoYVN0cmluZygpOwogICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuTmlja25hbWU6CiAgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fdG9OaWNrbmFtZVN0cmluZygpOwogICAgICAgICB9CkBAIC0zODQsNiArNDE2
LDMxIEBAIFdlYkluc3BlY3Rvci5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgIHJldHVybiAi
IyIgKyByICsgZyArIGI7CiAgICAgfQogCisgICAgX3RvU2hvcnRIRVhBbHBoYVN0cmluZygpCisg
ICAgeworICAgICAgICBsZXQgcmdiYSA9IHRoaXMucmdiYTsKKyAgICAgICAgbGV0IHIgPSB0aGlz
Ll9jb21wb25lbnRUb0hleFZhbHVlKHJnYmFbMF0pOworICAgICAgICBsZXQgZyA9IHRoaXMuX2Nv
bXBvbmVudFRvSGV4VmFsdWUocmdiYVsxXSk7CisgICAgICAgIGxldCBiID0gdGhpcy5fY29tcG9u
ZW50VG9IZXhWYWx1ZShyZ2JhWzJdKTsKKyAgICAgICAgbGV0IGEgPSB0aGlzLl9jb21wb25lbnRU
b0hleFZhbHVlKE1hdGgucm91bmQocmdiYVszXSAqIDI1NSkpOworCisgICAgICAgIGlmIChyWzBd
ID09PSByWzFdICYmIGdbMF0gPT09IGdbMV0gJiYgYlswXSA9PT0gYlsxXSAmJiBhWzBdID09PSBh
WzFdKQorICAgICAgICAgICAgcmV0dXJuICIjIiArIHJbMF0gKyBnWzBdICsgYlswXSArIGFbMF07
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAiIyIgKyByICsgZyArIGIgKyBhOwor
ICAgIH0KKworICAgIF90b0hFWEFscGhhU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGxldCByZ2Jh
ID0gdGhpcy5yZ2JhOworICAgICAgICBsZXQgciA9IHRoaXMuX2NvbXBvbmVudFRvSGV4VmFsdWUo
cmdiYVswXSk7CisgICAgICAgIGxldCBnID0gdGhpcy5fY29tcG9uZW50VG9IZXhWYWx1ZShyZ2Jh
WzFdKTsKKyAgICAgICAgbGV0IGIgPSB0aGlzLl9jb21wb25lbnRUb0hleFZhbHVlKHJnYmFbMl0p
OworICAgICAgICBsZXQgYSA9IHRoaXMuX2NvbXBvbmVudFRvSGV4VmFsdWUoTWF0aC5yb3VuZChy
Z2JhWzNdICogMjU1KSk7CisKKyAgICAgICAgcmV0dXJuICIjIiArIHIgKyBnICsgYiArIGE7Cisg
ICAgfQorCiAgICAgX3RvUkdCU3RyaW5nKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zaW1w
bGUpCkBAIC01MjQsNiArNTgxLDggQEAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdCA9IHsKICAg
ICBOaWNrbmFtZTogImNvbG9yLWZvcm1hdC1uaWNrbmFtZSIsCiAgICAgSEVYOiAiY29sb3ItZm9y
bWF0LWhleCIsCiAgICAgU2hvcnRIRVg6ICJjb2xvci1mb3JtYXQtc2hvcnQtaGV4IiwKKyAgICBI
RVhBbHBoYTogImNvbG9yLWZvcm1hdC1oZXgtYWxwaGEiLAorICAgIFNob3J0SEVYQWxwaGE6ICJj
b2xvci1mb3JtYXQtc2hvcnQtaGV4LWFscGhhIiwKICAgICBSR0I6ICJjb2xvci1mb3JtYXQtcmdi
IiwKICAgICBSR0JBOiAiY29sb3ItZm9ybWF0LXJnYmEiLAogICAgIEhTTDogImNvbG9yLWZvcm1h
dC1oc2wiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKaW5kZXggNzY1MTY2MC4uYmVh
YWRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCkBAIC0yNTMsNyArMjUzLDcg
QEAKIAogICAgIGZ1bmN0aW9uIGV4dGVuZGVkQ1NTVG9rZW4oc3RyZWFtLCBzdGF0ZSkKICAgICB7
Ci0gICAgICAgIHZhciBoZXhDb2xvclJlZ2V4ID0gLyMoPzpbMC05YS1mQS1GXXs2fXxbMC05YS1m
QS1GXXszfSlcYi9nOworICAgICAgICB2YXIgaGV4Q29sb3JSZWdleCA9IC8jKD86WzAtOWEtZkEt
Rl17OH18WzAtOWEtZkEtRl17Nn18WzAtOWEtZkEtRl17Myw0fSlcYi9nOwogCiAgICAgICAgIGlm
IChzdGF0ZS5fdXJsVG9rZW5pemUpIHsKICAgICAgICAgICAgIC8vIENhbGwgdGhlIGxpbmsgdG9r
ZW5pemVyIGluc3RlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMKaW5kZXgg
MWQ1ZDc3OS4uODIyMmRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qcwpA
QCAtODUsNyArODUsNyBAQCBmdW5jdGlvbiBjcmVhdGVDb2RlTWlycm9yVGV4dE1hcmtlcnModHlw
ZSwgcGF0dGVybiwgbWF0Y2hGdW5jdGlvbiwgY29kZU1pcnJvciwgcgogZnVuY3Rpb24gY3JlYXRl
Q29kZU1pcnJvckNvbG9yVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIGNhbGxiYWNrKQog
ewogICAgIC8vIE1hdGNoZXMgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2IoMCwgMCwgMCksIGhzbCgp
LCBoc2xhKCksICNmZmYsICNmZmZmZmYsIHdoaXRlCi0gICAgdmFyIGNvbG9yUmVnZXggPSAvKCg/
OnJnYnxoc2wpYT9cKFteKV0rXCl8I1swLTlhLWZBLUZdezZ9fCNbMC05YS1mQS1GXXszfXxcYlx3
K1xiKD8hWy0uXSkpL2c7CisgICAgdmFyIGNvbG9yUmVnZXggPSAvKCg/OnJnYnxoc2wpYT9cKFte
KV0rXCl8I1swLTlhLWZBLUZdezh9fCNbMC05YS1mQS1GXXs2fXwjWzAtOWEtZkEtRl17Myw0fXxc
Ylx3K1xiKD8hWy0uXSkpL2c7CiAgICAgZnVuY3Rpb24gbWF0Y2hGdW5jdGlvbihsaW5lQ29udGVu
dCwgbWF0Y2gpIHsKICAgICAgICAgLy8gQWN0IGFzIGEgbmVnYXRpdmUgbG9vay1iZWhpbmQgYW5k
IGRpc2FsbG93IHRoZSBjb2xvciBmcm9tIGJlaW5nIHByZWZpeGluZyB3aXRoIGNlcnRhaW4gY2hh
cmFjdGVycy4KICAgICAgICAgcmV0dXJuICEobWF0Y2guaW5kZXggPiAwICYmIC9bLS5cIlwnXS8u
dGVzdChsaW5lQ29udGVudFttYXRjaC5pbmRleCAtIDFdKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>