<?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>114900</bug_id>
          
          <creation_ts>2013-04-20 03:41:39 -0700</creation_ts>
          <short_desc>checkLayout() should error out if no data-expected* attributes were found</short_desc>
          <delta_ts>2013-04-23 10:48:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ojan</cc>
    
    <cc>robert</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>878752</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-04-20 03:41:39 -0700</bug_when>
    <thetext>..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878755</commentid>
    <comment_count>1</comment_count>
      <attachid>198938</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-04-20 03:56:46 -0700</bug_when>
    <thetext>Created attachment 198938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878884</commentid>
    <comment_count>2</comment_count>
      <attachid>198938</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-04-21 10:46:04 -0700</bug_when>
    <thetext>Comment on attachment 198938
Patch

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

This is great.

Mostly a bunch of style nits. Only things I&apos;d definitely like to see changed to not output the error to the console as it&apos;s just redundant and to include FAIL in the error text. Would be nice if you addressed the nits as well.

&gt; LayoutTests/fast/check-layout-error-no-attributes.html:1
&gt; +&lt;!doctype html&gt;

Nit: standard doctype is &lt;!DOCTYPE html&gt;

&gt; LayoutTests/fast/check-layout-error-no-attributes.html:3
&gt; +  &lt;head&gt;

Nit: you can just leave the &lt;head&gt; element out.

&gt; LayoutTests/fast/check-layout-error-no-attributes.html:11
&gt; +    &lt;p&gt; webkit.org/b/114900: checkLayout() should error out if the layout wasn&apos;t checked. &lt;/p&gt;
&gt; +	&lt;span style=&quot;background-color: green;&quot;&gt;xxx &lt;span style=&quot;background-color:blue;&quot; data-total-invalid-attribute=0&gt;yyy&lt;/span&gt;&lt;/span&gt;
&gt; +    &lt;script&gt;
&gt; +        checkLayout(&apos;span &gt; span&apos;);
&gt; +    &lt;/script&gt;

This indentation is inconsistent.

&gt; LayoutTests/resources/check-layout.js:31
&gt; +    layout.checked = layout.checked || result;

Nit: layout.checked |= result;

&gt; LayoutTests/resources/check-layout.js:37
&gt; +    var layout = { checked: false };

Nit: Calling this &quot;layout&quot; seems a bit confusing to me. How about...&quot;output&quot;?

&gt; LayoutTests/resources/check-layout.js:195
&gt; +        checkedLayout = checkExpectedValues(node.parentNode, failures) || checkedLayout;
&gt; +        checkedLayout = checkSubtreeExpectedValues(node, failures) || checkedLayout;

I prefer |= in cases like this.

&gt; LayoutTests/resources/check-layout.js:207
&gt; +        document.body.innerHTML = &quot;No valid data-* attributes found in selector list : &quot; + selectorList;

Please prefix this with &quot;FAIL: &quot; to make it even more clear the test is failing.

&gt; LayoutTests/resources/check-layout.js:208
&gt; +        console.error(&quot;No valid data-* attributes found in :&quot; + selectorList);

I don&apos;t think the console error add value on top of the innerHTML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879298</commentid>
    <comment_count>3</comment_count>
      <attachid>199055</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-04-22 11:44:27 -0700</bug_when>
    <thetext>Created attachment 199055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879300</commentid>
    <comment_count>4</comment_count>
      <attachid>199056</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-04-22 11:46:44 -0700</bug_when>
    <thetext>Created attachment 199056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879399</commentid>
    <comment_count>5</comment_count>
      <attachid>199094</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-04-22 13:09:29 -0700</bug_when>
    <thetext>Created attachment 199094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879971</commentid>
    <comment_count>6</comment_count>
      <attachid>199094</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-23 10:48:56 -0700</bug_when>
    <thetext>Comment on attachment 199094
Patch

Clearing flags on attachment: 199094

Committed r148973: &lt;http://trac.webkit.org/changeset/148973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879972</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-23 10:48:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198938</attachid>
            <date>2013-04-20 03:56:46 -0700</date>
            <delta_ts>2013-04-22 11:44:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114900-20130420115548.patch</filename>
            <type>text/plain</type>
            <size>13580</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NDY2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzRmMDkzNmI3YmIyMjAyNWVhMTU4
ZDE4YzU3ZmIwMDVhMWFiYjliOS4uNjI0ODQzZjEwYzVhZTcxM2FmNzU1OTBiZmUzMmMxNWE5NDZk
MTFkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA0LTIwICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBjaGVja0xheW91dCgpIHNob3VsZCBlcnJvciBv
dXQgaWYgbm8gZGF0YS1leHBlY3RlZCogYXR0cmlidXRlcyB3ZXJlIGZvdW5kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ5MDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBjaGVja0xheW91dCgpIGRv
ZXNuJ3QgZmluZCBhbnkgYXR0cmlidXRlcyBjaGVja2luZyB0aGUgbm9kZSdzIGxheW91dCB0aGVu
IGVycm9yIG91dAorICAgICAgICBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZSB0ZXN0IGhhcyBwYXNz
ZWQuIFRoaXMgd2lsbCBlbnN1cmUgZGF0YS0qIGF0dHJpYnV0ZXMgY29udGFpbmluZworICAgICAg
ICB0eXBvcyBkb24ndCByZWdpc3RlciBhcyBhIHBhc3MuCisKKyAgICAgICAgKiBmYXN0L2NoZWNr
LWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiByZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzOgorICAgICAgICAoLik6CisKIDIwMTMt
MDQtMTcgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFdoZW4g
ZGVjaWRpbmcgd2hldGhlciB0byBsaW5lLWJyZWFrIGluc2lkZSBzaHJpbmstdG8tZml0IGNvbnRh
aW5lcnMgZG8gbm90IGluY2x1ZGUgdHJhaWxpbmcgc3BhY2Ugd2hlbiBkZXRlcm1pbmluZyB3aWR0
aCBvZiBjb250ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1l
cnJvci1uby1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2hlY2st
bGF5b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzN2Jh
MDI2NWViOTBkYzVhYjQ5ZTAwMjc5YjMxZGE5Nzk5ZmY5M2MKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDg6IE5vIHZhbGlk
IGRhdGEtKiBhdHRyaWJ1dGVzIGZvdW5kIGluIDpzcGFuID4gc3BhbgorTm8gdmFsaWQgZGF0YS0q
IGF0dHJpYnV0ZXMgZm91bmQgaW4gc2VsZWN0b3IgbGlzdCA6IHNwYW4gPiBzcGFuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODdjOGY3OTFlYzBkMDI0NTU4OTliNmMxMGU1OGQxN2NhMDA3NWYwZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9yLW5v
LWF0dHJpYnV0ZXMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKzxib2R5PgorICAgIDxwPiB3ZWJraXQub3JnL2IvMTE0
OTAwOiBjaGVja0xheW91dCgpIHNob3VsZCBlcnJvciBvdXQgaWYgdGhlIGxheW91dCB3YXNuJ3Qg
Y2hlY2tlZC4gPC9wPgorCTxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPnh4
eCA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpibHVlOyIgZGF0YS10b3RhbC1pbnZhbGlk
LWF0dHJpYnV0ZT0wPnl5eTwvc3Bhbj48L3NwYW4+CisgICAgPHNjcmlwdD4KKyAgICAgICAgY2hl
Y2tMYXlvdXQoJ3NwYW4gPiBzcGFuJyk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcwppbmRleCBmMjAyOWNiYTFkNzA3MGZi
NTEzN2RmNjBhZDZlMTg3YTY1MDQ4ZWU1Li5mOGYzMWI3Njk1NjQzZjlkMDFiYThkZTVlMzJhNDg2
ZTIxNWU3YTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0
LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMKQEAgLTE4LDg0
ICsxOCw5MyBAQCBmdW5jdGlvbiBpbnNlcnRBZnRlcihub2RlVG9BZGQsIHJlZmVyZW5jZU5vZGUp
CiAKIGZ1bmN0aW9uIGNoZWNrU3VidHJlZUV4cGVjdGVkVmFsdWVzKHBhcmVudCwgZmFpbHVyZXMp
CiB7Ci0gICAgY2hlY2tFeHBlY3RlZFZhbHVlcyhwYXJlbnQsIGZhaWx1cmVzKTsKKyAgICB2YXIg
Y2hlY2tlZExheW91dCA9IGNoZWNrRXhwZWN0ZWRWYWx1ZXMocGFyZW50LCBmYWlsdXJlcyk7CiAg
ICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChwYXJlbnQuY2hpbGROb2RlcywgZnVuY3Rp
b24obm9kZSkgewotICAgICAgICBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWls
dXJlcyk7CisgICAgICAgIGNoZWNrZWRMYXlvdXQgPSBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVl
cyhub2RlLCBmYWlsdXJlcykgfHwgY2hlY2tlZExheW91dDsKICAgICB9KTsKKyAgICByZXR1cm4g
Y2hlY2tlZExheW91dDsKK30KKworZnVuY3Rpb24gY2hlY2tBdHRyaWJ1dGUobGF5b3V0LCBub2Rl
LCBhdHRyaWJ1dGUpCit7CisgICAgdmFyIHJlc3VsdCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5v
ZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7CisgICAgbGF5b3V0LmNoZWNrZWQgPSBsYXlvdXQu
Y2hlY2tlZCB8fCByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogZnVuY3Rpb24gY2hl
Y2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKIHsKLSAgICB2YXIgZXhwZWN0ZWRXaWR0
aCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVk
LXdpZHRoIik7CisgICAgdmFyIGxheW91dCA9IHsgY2hlY2tlZDogZmFsc2UgfTsKKyAgICB2YXIg
ZXhwZWN0ZWRXaWR0aCA9IGNoZWNrQXR0cmlidXRlKGxheW91dCwgbm9kZSwgImRhdGEtZXhwZWN0
ZWQtd2lkdGgiKTsKICAgICBpZiAoZXhwZWN0ZWRXaWR0aCkgewogICAgICAgICBpZiAobm9kZS5v
ZmZzZXRXaWR0aCAhPSBwYXJzZUludChleHBlY3RlZFdpZHRoKSkKICAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFdpZHRoICsgIiBmb3Igd2lkdGgsIGJ1dCBn
b3QgIiArIG5vZGUub2Zmc2V0V2lkdGggKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0
ZWRIZWlnaHQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1l
eHBlY3RlZC1oZWlnaHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBjaGVja0F0dHJpYnV0
ZShsYXlvdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWhlaWdodCIpOwogICAgIGlmIChleHBlY3Rl
ZEhlaWdodCkgewogICAgICAgICBpZiAobm9kZS5vZmZzZXRIZWlnaHQgIT0gcGFyc2VJbnQoZXhw
ZWN0ZWRIZWlnaHQpKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4
cGVjdGVkSGVpZ2h0ICsgIiBmb3IgaGVpZ2h0LCBidXQgZ290ICIgKyBub2RlLm9mZnNldEhlaWdo
dCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZE9mZnNldCA9IG5vZGUuZ2V0QXR0
cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14Iik7CisgICAgdmFyIGV4
cGVjdGVkT2Zmc2V0ID0gY2hlY2tBdHRyaWJ1dGUobGF5b3V0LCBub2RlLCAiZGF0YS1vZmZzZXQt
eCIpOwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewogICAgICAgICBpZiAobm9kZS5vZmZzZXRM
ZWZ0ICE9IHBhcnNlSW50KGV4cGVjdGVkT2Zmc2V0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1
c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE9mZnNldCArICIgZm9yIG9mZnNldExlZnQsIGJ1dCBn
b3QgIiArIG5vZGUub2Zmc2V0TGVmdCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3Rl
ZE9mZnNldCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLW9m
ZnNldC15Iik7CisgICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gY2hlY2tBdHRyaWJ1dGUobGF5b3V0
LCBub2RlLCAiZGF0YS1vZmZzZXQteSIpOwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewogICAg
ICAgICBpZiAobm9kZS5vZmZzZXRUb3AgIT0gcGFyc2VJbnQoZXhwZWN0ZWRPZmZzZXQpKQogICAg
ICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkT2Zmc2V0ICsgIiBm
b3Igb2Zmc2V0VG9wLCBidXQgZ290ICIgKyBub2RlLm9mZnNldFRvcCArICIuICIpOwogICAgIH0K
IAotICAgIHZhciBleHBlY3RlZFdpZHRoID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRB
dHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtY2xpZW50LXdpZHRoIik7CisgICAgdmFyIGV4cGVjdGVk
V2lkdGggPSBjaGVja0F0dHJpYnV0ZShsYXlvdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWNsaWVu
dC13aWR0aCIpOwogICAgIGlmIChleHBlY3RlZFdpZHRoKSB7CiAgICAgICAgIGlmIChub2RlLmNs
aWVudFdpZHRoICE9IHBhcnNlSW50KGV4cGVjdGVkV2lkdGgpKQogICAgICAgICAgICAgZmFpbHVy
ZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkV2lkdGggKyAiIGZvciBjbGllbnRXaWR0aCwg
YnV0IGdvdCAiICsgbm9kZS5jbGllbnRXaWR0aCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBl
eHBlY3RlZEhlaWdodCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJk
YXRhLWV4cGVjdGVkLWNsaWVudC1oZWlnaHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBj
aGVja0F0dHJpYnV0ZShsYXlvdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWNsaWVudC1oZWlnaHQi
KTsKICAgICBpZiAoZXhwZWN0ZWRIZWlnaHQpIHsKICAgICAgICAgaWYgKG5vZGUuY2xpZW50SGVp
Z2h0ICE9IHBhcnNlSW50KGV4cGVjdGVkSGVpZ2h0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1
c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZEhlaWdodCArICIgZm9yIGNsaWVudEhlaWdodCwgYnV0
IGdvdCAiICsgbm9kZS5jbGllbnRIZWlnaHQgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhw
ZWN0ZWRXaWR0aCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRh
LWV4cGVjdGVkLXNjcm9sbC13aWR0aCIpOworICAgIHZhciBleHBlY3RlZFdpZHRoID0gY2hlY2tB
dHRyaWJ1dGUobGF5b3V0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1zY3JvbGwtd2lkdGgiKTsKICAg
ICBpZiAoZXhwZWN0ZWRXaWR0aCkgewogICAgICAgICBpZiAobm9kZS5zY3JvbGxXaWR0aCAhPSBw
YXJzZUludChleHBlY3RlZFdpZHRoKSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVj
dGVkICIgKyBleHBlY3RlZFdpZHRoICsgIiBmb3Igc2Nyb2xsV2lkdGgsIGJ1dCBnb3QgIiArIG5v
ZGUuc2Nyb2xsV2lkdGggKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRIZWlnaHQg
PSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1z
Y3JvbGwtaGVpZ2h0Iik7CisgICAgdmFyIGV4cGVjdGVkSGVpZ2h0ID0gY2hlY2tBdHRyaWJ1dGUo
bGF5b3V0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1zY3JvbGwtaGVpZ2h0Iik7CiAgICAgaWYgKGV4
cGVjdGVkSGVpZ2h0KSB7CiAgICAgICAgIGlmIChub2RlLnNjcm9sbEhlaWdodCAhPSBwYXJzZUlu
dChleHBlY3RlZEhlaWdodCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAi
ICsgZXhwZWN0ZWRIZWlnaHQgKyAiIGZvciBzY3JvbGxIZWlnaHQsIGJ1dCBnb3QgIiArIG5vZGUu
c2Nyb2xsSGVpZ2h0ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0g
bm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtdG90YWwteCIpOwor
ICAgIHZhciBleHBlY3RlZE9mZnNldCA9IGNoZWNrQXR0cmlidXRlKGxheW91dCwgbm9kZSwgImRh
dGEtdG90YWwteCIpOwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewogICAgICAgICB2YXIgdG90
YWxMZWZ0ID0gbm9kZS5jbGllbnRMZWZ0ICsgbm9kZS5vZmZzZXRMZWZ0OwogICAgICAgICBpZiAo
dG90YWxMZWZ0ICE9IHBhcnNlSW50KGV4cGVjdGVkT2Zmc2V0KSkKICAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE9mZnNldCArICIgZm9yIGNsaWVudExlZnQr
b2Zmc2V0TGVmdCwgYnV0IGdvdCAiICsgdG90YWxMZWZ0ICsgIiwgY2xpZW50TGVmdDogIiArIG5v
ZGUuY2xpZW50TGVmdCArICIsIG9mZnNldExlZnQ6ICIgKyBub2RlLm9mZnNldExlZnQgKyAiLiAi
KTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSBub2RlLmdldEF0dHJpYnV0ZSAm
JiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS10b3RhbC15Iik7CisgICAgdmFyIGV4cGVjdGVkT2Zm
c2V0ID0gY2hlY2tBdHRyaWJ1dGUobGF5b3V0LCBub2RlLCAiZGF0YS10b3RhbC15Iik7CiAgICAg
aWYgKGV4cGVjdGVkT2Zmc2V0KSB7CiAgICAgICAgIHZhciB0b3RhbFRvcCA9IG5vZGUuY2xpZW50
VG9wICsgbm9kZS5vZmZzZXRUb3A7CiAgICAgICAgIGlmICh0b3RhbFRvcCAhPSBwYXJzZUludChl
eHBlY3RlZE9mZnNldCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsg
ZXhwZWN0ZWRPZmZzZXQgKyAiIGZvciBjbGllbnRUb3Arb2Zmc2V0VG9wLCBidXQgZ290ICIgKyB0
b3RhbFRvcCArICIsIGNsaWVudFRvcDogIiArIG5vZGUuY2xpZW50VG9wICsgIiwgKyBvZmZzZXRU
b3A6ICIgKyBub2RlLm9mZnNldFRvcCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3Rl
ZERpc3BsYXkgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1l
eHBlY3RlZC1kaXNwbGF5Iik7CisgICAgdmFyIGV4cGVjdGVkRGlzcGxheSA9IGNoZWNrQXR0cmli
dXRlKGxheW91dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtZGlzcGxheSIpOwogICAgIGlmIChleHBl
Y3RlZERpc3BsYXkpIHsKICAgICAgICAgdmFyIGFjdHVhbERpc3BsYXkgPSBnZXRDb21wdXRlZFN0
eWxlKG5vZGUpLmRpc3BsYXk7CiAgICAgICAgIGlmIChhY3R1YWxEaXNwbGF5ICE9IGV4cGVjdGVk
RGlzcGxheSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3Rl
ZERpc3BsYXkgKyAiIGZvciBkaXNwbGF5LCBidXQgZ290ICIgKyBhY3R1YWxEaXNwbGF5ICsgIi4g
Iik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkUGFkZGluZ1RvcCA9IG5vZGUuZ2V0QXR0cmli
dXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBhZGRpbmctdG9wIik7Cisg
ICAgdmFyIGV4cGVjdGVkUGFkZGluZ1RvcCA9IGNoZWNrQXR0cmlidXRlKGxheW91dCwgbm9kZSwg
ImRhdGEtZXhwZWN0ZWQtcGFkZGluZy10b3AiKTsKICAgICBpZiAoZXhwZWN0ZWRQYWRkaW5nVG9w
KSB7CiAgICAgICAgIHZhciBhY3R1YWxQYWRkaW5nVG9wID0gZ2V0Q29tcHV0ZWRTdHlsZShub2Rl
KS5wYWRkaW5nVG9wOwogICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0
cHV0LgpAQCAtMTA0LDcgKzExMyw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9k
ZSwgZmFpbHVyZXMpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhw
ZWN0ZWRQYWRkaW5nVG9wICsgIiBmb3IgcGFkZGluZy10b3AsIGJ1dCBnb3QgIiArIGFjdHVhbFBh
ZGRpbmdUb3AgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nQm90dG9t
ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQt
cGFkZGluZy1ib3R0b20iKTsKKyAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nQm90dG9tID0gY2hlY2tB
dHRyaWJ1dGUobGF5b3V0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1wYWRkaW5nLWJvdHRvbSIpOwog
ICAgIGlmIChleHBlY3RlZFBhZGRpbmdCb3R0b20pIHsKICAgICAgICAgdmFyIGFjdHVhbFBhZGRp
bmdCb3R0b20gPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRpbmdCb3R0b207CiAgICAgICAg
IC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0xMTMsNyArMTIyLDcg
QEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAgICAg
ICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFBhZGRpbmdCb3R0b20gKyAi
IGZvciBwYWRkaW5nLWJvdHRvbSwgYnV0IGdvdCAiICsgYWN0dWFsUGFkZGluZ0JvdHRvbSArICIu
ICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZFBhZGRpbmdMZWZ0ID0gbm9kZS5nZXRBdHRy
aWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0Iik7
CisgICAgdmFyIGV4cGVjdGVkUGFkZGluZ0xlZnQgPSBjaGVja0F0dHJpYnV0ZShsYXlvdXQsIG5v
ZGUsICJkYXRhLWV4cGVjdGVkLXBhZGRpbmctbGVmdCIpOwogICAgIGlmIChleHBlY3RlZFBhZGRp
bmdMZWZ0KSB7CiAgICAgICAgIHZhciBhY3R1YWxQYWRkaW5nTGVmdCA9IGdldENvbXB1dGVkU3R5
bGUobm9kZSkucGFkZGluZ0xlZnQ7CiAgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9t
IHRoZSBvdXRwdXQuCkBAIC0xMjIsNyArMTMxLDcgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZh
bHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVk
ICIgKyBleHBlY3RlZFBhZGRpbmdMZWZ0ICsgIiBmb3IgcGFkZGluZy1sZWZ0LCBidXQgZ290ICIg
KyBhY3R1YWxQYWRkaW5nTGVmdCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZFBh
ZGRpbmdSaWdodCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRh
LWV4cGVjdGVkLXBhZGRpbmctcmlnaHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nUmlnaHQg
PSBjaGVja0F0dHJpYnV0ZShsYXlvdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLXBhZGRpbmctcmln
aHQiKTsKICAgICBpZiAoZXhwZWN0ZWRQYWRkaW5nUmlnaHQpIHsKICAgICAgICAgdmFyIGFjdHVh
bFBhZGRpbmdSaWdodCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ1JpZ2h0OwogICAg
ICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgpAQCAtMTMxLDcgKzE0
MCw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpCiAgICAg
ICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRQYWRkaW5nUmlnaHQg
KyAiIGZvciBwYWRkaW5nLXJpZ2h0LCBidXQgZ290ICIgKyBhY3R1YWxQYWRkaW5nUmlnaHQgKyAi
LiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRNYXJnaW5Ub3AgPSBub2RlLmdldEF0dHJp
YnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1tYXJnaW4tdG9wIik7Cisg
ICAgdmFyIGV4cGVjdGVkTWFyZ2luVG9wID0gY2hlY2tBdHRyaWJ1dGUobGF5b3V0LCBub2RlLCAi
ZGF0YS1leHBlY3RlZC1tYXJnaW4tdG9wIik7CiAgICAgaWYgKGV4cGVjdGVkTWFyZ2luVG9wKSB7
CiAgICAgICAgIHZhciBhY3R1YWxNYXJnaW5Ub3AgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLm1h
cmdpblRvcDsKICAgICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4K
QEAgLTE0MCw3ICsxNDksNyBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZh
aWx1cmVzKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVk
TWFyZ2luVG9wICsgIiBmb3IgbWFyZ2luLXRvcCwgYnV0IGdvdCAiICsgYWN0dWFsTWFyZ2luVG9w
ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkTWFyZ2luQm90dG9tID0gbm9kZS5n
ZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJv
dHRvbSIpOworICAgIHZhciBleHBlY3RlZE1hcmdpbkJvdHRvbSA9IGNoZWNrQXR0cmlidXRlKGxh
eW91dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbSIpOwogICAgIGlmIChleHBl
Y3RlZE1hcmdpbkJvdHRvbSkgewogICAgICAgICB2YXIgYWN0dWFsTWFyZ2luQm90dG9tID0gZ2V0
Q29tcHV0ZWRTdHlsZShub2RlKS5tYXJnaW5Cb3R0b207CiAgICAgICAgIC8vIFRyaW0gdGhlIHVu
aXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0xNDksNyArMTU4LDcgQEAgZnVuY3Rpb24gY2hl
Y2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1cmVzLnB1
c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE1hcmdpbkJvdHRvbSArICIgZm9yIG1hcmdpbi1ib3R0
b20sIGJ1dCBnb3QgIiArIGFjdHVhbE1hcmdpbkJvdHRvbSArICIuICIpOwogICAgIH0KIAotICAg
IHZhciBleHBlY3RlZE1hcmdpbkxlZnQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0
dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1tYXJnaW4tbGVmdCIpOworICAgIHZhciBleHBlY3RlZE1h
cmdpbkxlZnQgPSBjaGVja0F0dHJpYnV0ZShsYXlvdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLW1h
cmdpbi1sZWZ0Iik7CiAgICAgaWYgKGV4cGVjdGVkTWFyZ2luTGVmdCkgewogICAgICAgICB2YXIg
YWN0dWFsTWFyZ2luTGVmdCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkubWFyZ2luTGVmdDsKICAg
ICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTE1OCw3ICsx
NjcsNyBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAg
ICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkTWFyZ2luTGVmdCAr
ICIgZm9yIG1hcmdpbi1sZWZ0LCBidXQgZ290ICIgKyBhY3R1YWxNYXJnaW5MZWZ0ICsgIi4gIik7
CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkTWFyZ2luUmlnaHQgPSBub2RlLmdldEF0dHJpYnV0
ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQiKTsKKyAg
ICB2YXIgZXhwZWN0ZWRNYXJnaW5SaWdodCA9IGNoZWNrQXR0cmlidXRlKGxheW91dCwgbm9kZSwg
ImRhdGEtZXhwZWN0ZWQtbWFyZ2luLXJpZ2h0Iik7CiAgICAgaWYgKGV4cGVjdGVkTWFyZ2luUmln
aHQpIHsKICAgICAgICAgdmFyIGFjdHVhbE1hcmdpblJpZ2h0ID0gZ2V0Q29tcHV0ZWRTdHlsZShu
b2RlKS5tYXJnaW5SaWdodDsKICAgICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhl
IG91dHB1dC4KQEAgLTE2Niw2ICsxNzUsOCBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVz
KG5vZGUsIGZhaWx1cmVzKQogICAgICAgICBpZiAoYWN0dWFsTWFyZ2luUmlnaHQgIT0gZXhwZWN0
ZWRNYXJnaW5SaWdodCkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBl
eHBlY3RlZE1hcmdpblJpZ2h0ICsgIiBmb3IgbWFyZ2luLXJpZ2h0LCBidXQgZ290ICIgKyBhY3R1
YWxNYXJnaW5SaWdodCArICIuICIpOwogICAgIH0KKworICAgIHJldHVybiBsYXlvdXQuY2hlY2tl
ZDsKIH0KIAogd2luZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24oc2VsZWN0b3JMaXN0KQpAQCAt
MTc3LDEwICsxODgsMTEgQEAgd2luZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24oc2VsZWN0b3JM
aXN0KQogICAgIHZhciBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3JM
aXN0KTsKICAgICBub2RlcyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5vZGVzKTsKICAg
ICBub2Rlcy5yZXZlcnNlKCk7CisgICAgdmFyIGNoZWNrZWRMYXlvdXQgPSBmYWxzZTsKICAgICBB
cnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG5vZGVzLCBmdW5jdGlvbihub2RlKSB7CiAgICAg
ICAgIHZhciBmYWlsdXJlcyA9IFtdOwotICAgICAgICBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUu
cGFyZW50Tm9kZSwgZmFpbHVyZXMpOwotICAgICAgICBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVl
cyhub2RlLCBmYWlsdXJlcyk7CisgICAgICAgIGNoZWNrZWRMYXlvdXQgPSBjaGVja0V4cGVjdGVk
VmFsdWVzKG5vZGUucGFyZW50Tm9kZSwgZmFpbHVyZXMpIHx8IGNoZWNrZWRMYXlvdXQ7CisgICAg
ICAgIGNoZWNrZWRMYXlvdXQgPSBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWls
dXJlcykgfHwgY2hlY2tlZExheW91dDsKIAogICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZS5w
YXJlbnROb2RlLmNsYXNzTmFtZSA9PSAnY29udGFpbmVyJyA/IG5vZGUucGFyZW50Tm9kZSA6IG5v
ZGU7CiAKQEAgLTE5MCw2ICsyMDIsMTMgQEAgd2luZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24o
c2VsZWN0b3JMaXN0KQogICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoZmFpbHVyZXMubGVuZ3RoID8gIkZBSUw6XG4iICsgZmFpbHVyZXMuam9pbignXG4nKSAr
ICdcblxuJyArIGNvbnRhaW5lci5vdXRlckhUTUwgOiAiUEFTUyIpKTsKICAgICAgICAgaW5zZXJ0
QWZ0ZXIocHJlLCBjb250YWluZXIpOwogICAgIH0pOworCisgICAgaWYgKCFjaGVja2VkTGF5b3V0
KSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIk5vIHZhbGlkIGRhdGEtKiBh
dHRyaWJ1dGVzIGZvdW5kIGluIHNlbGVjdG9yIGxpc3QgOiAiICsgc2VsZWN0b3JMaXN0OworICAg
ICAgICBjb25zb2xlLmVycm9yKCJObyB2YWxpZCBkYXRhLSogYXR0cmlidXRlcyBmb3VuZCBpbiA6
IiArIHNlbGVjdG9yTGlzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB2YXIgcHJl
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLkZBSUwnKTsKICAgICBpZiAocHJlKQogICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBwcmUucHJldmlvdXNTaWJsaW5nLnNjcm9sbEludG9W
aWV3KCk7IH0sIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199055</attachid>
            <date>2013-04-22 11:44:27 -0700</date>
            <delta_ts>2013-04-22 11:46:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114900-20130422194322.patch</filename>
            <type>text/plain</type>
            <size>13362</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4ODI0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzBmYWQ3MDRmY2YxYzQ5Yzk2N2Q0
NTgzZmM2OTY2YTA5OGNlMmJjNi4uMzExZGM2Njk2NGUyYWNlODY5YmEyMDE5NDkyYjYwMmJlZTAy
MWU0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA0LTIwICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBjaGVja0xheW91dCgpIHNob3VsZCBlcnJvciBv
dXQgaWYgbm8gZGF0YS1leHBlY3RlZCogYXR0cmlidXRlcyB3ZXJlIGZvdW5kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ5MDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAgICAgIElmIGNoZWNrTGF5b3V0KCkgZG9lc24n
dCBmaW5kIGFueSBhdHRyaWJ1dGVzIGNoZWNraW5nIHRoZSBub2RlJ3MgbGF5b3V0IHRoZW4gZXJy
b3Igb3V0CisgICAgICAgIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIHRlc3QgaGFzIHBhc3NlZC4g
VGhpcyB3aWxsIGVuc3VyZSBkYXRhLSogYXR0cmlidXRlcyBjb250YWluaW5nCisgICAgICAgIHR5
cG9zIGRvbid0IHJlZ2lzdGVyIGFzIGEgcGFzcy4KKworICAgICAgICAqIGZhc3QvY2hlY2stbGF5
b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHJlc291cmNlcy9jaGVjay1sYXlvdXQuanM6CisgICAgICAgICguKToKKwogMjAxMy0wNC0x
NyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2hlbiBkZWNp
ZGluZyB3aGV0aGVyIHRvIGxpbmUtYnJlYWsgaW5zaWRlIHNocmluay10by1maXQgY29udGFpbmVy
cyBkbyBub3QgaW5jbHVkZSB0cmFpbGluZyBzcGFjZSB3aGVuIGRldGVybWluaW5nIHdpZHRoIG9m
IGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9y
LW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jaGVjay1sYXlv
dXQtZXJyb3Itbm8tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxNzhiMzU0
NzI1ZjJmYWYxODE2ZDVlZjAyYzI2ZDc2MDRhMzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEgQEAKK0ZBSUw6IE5vIHZhbGlkIGRhdGEtKiBhdHRyaWJ1dGVzIGZvdW5kIGlu
IHNlbGVjdG9yIGxpc3QgOiBzcGFuID4gc3BhbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMmIx
MzNhMzA1Y2Q0YzYyZGE1ODMxMjc0Njg3YzMzNTMxY2E5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0bWwKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKyAgICA8cD4g
d2Via2l0Lm9yZy9iLzExNDkwMDogY2hlY2tMYXlvdXQoKSBzaG91bGQgZXJyb3Igb3V0IGlmIHRo
ZSBsYXlvdXQgd2Fzbid0IGNoZWNrZWQuIDwvcD4KKyAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ij54eHggPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Ymx1ZTsi
IGRhdGEtdG90YWwtaW52YWxpZC1hdHRyaWJ1dGU9MD55eXk8L3NwYW4+PC9zcGFuPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGNoZWNrTGF5b3V0KCdzcGFuID4gc3BhbicpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2No
ZWNrLWxheW91dC5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMKaW5k
ZXggZjIwMjljYmExZDcwNzBmYjUxMzdkZjYwYWQ2ZTE4N2E2NTA0OGVlNS4uZTNjYjk3MzBkOTRm
MzAyZjcwODQ0NzQ1ZjE5YTM3ZTk2ZTk1MDI1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2NoZWNrLWxheW91dC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hlY2st
bGF5b3V0LmpzCkBAIC0xOCw4NCArMTgsOTMgQEAgZnVuY3Rpb24gaW5zZXJ0QWZ0ZXIobm9kZVRv
QWRkLCByZWZlcmVuY2VOb2RlKQogCiBmdW5jdGlvbiBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVl
cyhwYXJlbnQsIGZhaWx1cmVzKQogewotICAgIGNoZWNrRXhwZWN0ZWRWYWx1ZXMocGFyZW50LCBm
YWlsdXJlcyk7CisgICAgdmFyIGNoZWNrZWRMYXlvdXQgPSBjaGVja0V4cGVjdGVkVmFsdWVzKHBh
cmVudCwgZmFpbHVyZXMpOwogICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocGFyZW50
LmNoaWxkTm9kZXMsIGZ1bmN0aW9uKG5vZGUpIHsKLSAgICAgICAgY2hlY2tTdWJ0cmVlRXhwZWN0
ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpOworICAgICAgICBjaGVja2VkTGF5b3V0ID0gY2hlY2tT
dWJ0cmVlRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpIHx8IGNoZWNrZWRMYXlvdXQ7CiAg
ICAgfSk7CisgICAgcmV0dXJuIGNoZWNrZWRMYXlvdXQ7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQXR0
cmlidXRlKG91dHB1dCwgbm9kZSwgYXR0cmlidXRlKQoreworICAgIHZhciByZXN1bHQgPSBub2Rl
LmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpOworICAgIG91dHB1
dC5jaGVja2VkIHw9IHJlc3VsdDsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBmdW5jdGlvbiBj
aGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogewotICAgIHZhciBleHBlY3RlZFdp
ZHRoID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0
ZWQtd2lkdGgiKTsKKyAgICB2YXIgb3V0cHV0ID0geyBjaGVja2VkOiBmYWxzZSB9OworICAgIHZh
ciBleHBlY3RlZFdpZHRoID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBl
Y3RlZC13aWR0aCIpOwogICAgIGlmIChleHBlY3RlZFdpZHRoKSB7CiAgICAgICAgIGlmIChub2Rl
Lm9mZnNldFdpZHRoICE9IHBhcnNlSW50KGV4cGVjdGVkV2lkdGgpKQogICAgICAgICAgICAgZmFp
bHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkV2lkdGggKyAiIGZvciB3aWR0aCwgYnV0
IGdvdCAiICsgbm9kZS5vZmZzZXRXaWR0aCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBl
Y3RlZEhlaWdodCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRh
LWV4cGVjdGVkLWhlaWdodCIpOworICAgIHZhciBleHBlY3RlZEhlaWdodCA9IGNoZWNrQXR0cmli
dXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtaGVpZ2h0Iik7CiAgICAgaWYgKGV4cGVj
dGVkSGVpZ2h0KSB7CiAgICAgICAgIGlmIChub2RlLm9mZnNldEhlaWdodCAhPSBwYXJzZUludChl
eHBlY3RlZEhlaWdodCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsg
ZXhwZWN0ZWRIZWlnaHQgKyAiIGZvciBoZWlnaHQsIGJ1dCBnb3QgIiArIG5vZGUub2Zmc2V0SGVp
Z2h0ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gbm9kZS5nZXRB
dHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiKTsKKyAgICB2YXIg
ZXhwZWN0ZWRPZmZzZXQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLW9mZnNl
dC14Iik7CiAgICAgaWYgKGV4cGVjdGVkT2Zmc2V0KSB7CiAgICAgICAgIGlmIChub2RlLm9mZnNl
dExlZnQgIT0gcGFyc2VJbnQoZXhwZWN0ZWRPZmZzZXQpKQogICAgICAgICAgICAgZmFpbHVyZXMu
cHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkT2Zmc2V0ICsgIiBmb3Igb2Zmc2V0TGVmdCwgYnV0
IGdvdCAiICsgbm9kZS5vZmZzZXRMZWZ0ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVj
dGVkT2Zmc2V0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEt
b2Zmc2V0LXkiKTsKKyAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSBjaGVja0F0dHJpYnV0ZShvdXRw
dXQsIG5vZGUsICJkYXRhLW9mZnNldC15Iik7CiAgICAgaWYgKGV4cGVjdGVkT2Zmc2V0KSB7CiAg
ICAgICAgIGlmIChub2RlLm9mZnNldFRvcCAhPSBwYXJzZUludChleHBlY3RlZE9mZnNldCkpCiAg
ICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRPZmZzZXQgKyAi
IGZvciBvZmZzZXRUb3AsIGJ1dCBnb3QgIiArIG5vZGUub2Zmc2V0VG9wICsgIi4gIik7CiAgICAg
fQogCi0gICAgdmFyIGV4cGVjdGVkV2lkdGggPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdl
dEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1jbGllbnQtd2lkdGgiKTsKKyAgICB2YXIgZXhwZWN0
ZWRXaWR0aCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtY2xp
ZW50LXdpZHRoIik7CiAgICAgaWYgKGV4cGVjdGVkV2lkdGgpIHsKICAgICAgICAgaWYgKG5vZGUu
Y2xpZW50V2lkdGggIT0gcGFyc2VJbnQoZXhwZWN0ZWRXaWR0aCkpCiAgICAgICAgICAgICBmYWls
dXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRXaWR0aCArICIgZm9yIGNsaWVudFdpZHRo
LCBidXQgZ290ICIgKyBub2RlLmNsaWVudFdpZHRoICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFy
IGV4cGVjdGVkSGVpZ2h0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUo
ImRhdGEtZXhwZWN0ZWQtY2xpZW50LWhlaWdodCIpOworICAgIHZhciBleHBlY3RlZEhlaWdodCA9
IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtY2xpZW50LWhlaWdo
dCIpOwogICAgIGlmIChleHBlY3RlZEhlaWdodCkgewogICAgICAgICBpZiAobm9kZS5jbGllbnRI
ZWlnaHQgIT0gcGFyc2VJbnQoZXhwZWN0ZWRIZWlnaHQpKQogICAgICAgICAgICAgZmFpbHVyZXMu
cHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkSGVpZ2h0ICsgIiBmb3IgY2xpZW50SGVpZ2h0LCBi
dXQgZ290ICIgKyBub2RlLmNsaWVudEhlaWdodCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBl
eHBlY3RlZFdpZHRoID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRh
dGEtZXhwZWN0ZWQtc2Nyb2xsLXdpZHRoIik7CisgICAgdmFyIGV4cGVjdGVkV2lkdGggPSBjaGVj
a0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLXNjcm9sbC13aWR0aCIpOwog
ICAgIGlmIChleHBlY3RlZFdpZHRoKSB7CiAgICAgICAgIGlmIChub2RlLnNjcm9sbFdpZHRoICE9
IHBhcnNlSW50KGV4cGVjdGVkV2lkdGgpKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhw
ZWN0ZWQgIiArIGV4cGVjdGVkV2lkdGggKyAiIGZvciBzY3JvbGxXaWR0aCwgYnV0IGdvdCAiICsg
bm9kZS5zY3JvbGxXaWR0aCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZEhlaWdo
dCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVk
LXNjcm9sbC1oZWlnaHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBjaGVja0F0dHJpYnV0
ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLXNjcm9sbC1oZWlnaHQiKTsKICAgICBpZiAo
ZXhwZWN0ZWRIZWlnaHQpIHsKICAgICAgICAgaWYgKG5vZGUuc2Nyb2xsSGVpZ2h0ICE9IHBhcnNl
SW50KGV4cGVjdGVkSGVpZ2h0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVk
ICIgKyBleHBlY3RlZEhlaWdodCArICIgZm9yIHNjcm9sbEhlaWdodCwgYnV0IGdvdCAiICsgbm9k
ZS5zY3JvbGxIZWlnaHQgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRPZmZzZXQg
PSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS10b3RhbC14Iik7
CisgICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAi
ZGF0YS10b3RhbC14Iik7CiAgICAgaWYgKGV4cGVjdGVkT2Zmc2V0KSB7CiAgICAgICAgIHZhciB0
b3RhbExlZnQgPSBub2RlLmNsaWVudExlZnQgKyBub2RlLm9mZnNldExlZnQ7CiAgICAgICAgIGlm
ICh0b3RhbExlZnQgIT0gcGFyc2VJbnQoZXhwZWN0ZWRPZmZzZXQpKQogICAgICAgICAgICAgZmFp
bHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkT2Zmc2V0ICsgIiBmb3IgY2xpZW50TGVm
dCtvZmZzZXRMZWZ0LCBidXQgZ290ICIgKyB0b3RhbExlZnQgKyAiLCBjbGllbnRMZWZ0OiAiICsg
bm9kZS5jbGllbnRMZWZ0ICsgIiwgb2Zmc2V0TGVmdDogIiArIG5vZGUub2Zmc2V0TGVmdCArICIu
ICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZE9mZnNldCA9IG5vZGUuZ2V0QXR0cmlidXRl
ICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLXRvdGFsLXkiKTsKKyAgICB2YXIgZXhwZWN0ZWRP
ZmZzZXQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLXRvdGFsLXkiKTsKICAg
ICBpZiAoZXhwZWN0ZWRPZmZzZXQpIHsKICAgICAgICAgdmFyIHRvdGFsVG9wID0gbm9kZS5jbGll
bnRUb3AgKyBub2RlLm9mZnNldFRvcDsKICAgICAgICAgaWYgKHRvdGFsVG9wICE9IHBhcnNlSW50
KGV4cGVjdGVkT2Zmc2V0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIg
KyBleHBlY3RlZE9mZnNldCArICIgZm9yIGNsaWVudFRvcCtvZmZzZXRUb3AsIGJ1dCBnb3QgIiAr
IHRvdGFsVG9wICsgIiwgY2xpZW50VG9wOiAiICsgbm9kZS5jbGllbnRUb3AgKyAiLCArIG9mZnNl
dFRvcDogIiArIG5vZGUub2Zmc2V0VG9wICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVj
dGVkRGlzcGxheSA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRh
LWV4cGVjdGVkLWRpc3BsYXkiKTsKKyAgICB2YXIgZXhwZWN0ZWREaXNwbGF5ID0gY2hlY2tBdHRy
aWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1kaXNwbGF5Iik7CiAgICAgaWYgKGV4
cGVjdGVkRGlzcGxheSkgewogICAgICAgICB2YXIgYWN0dWFsRGlzcGxheSA9IGdldENvbXB1dGVk
U3R5bGUobm9kZSkuZGlzcGxheTsKICAgICAgICAgaWYgKGFjdHVhbERpc3BsYXkgIT0gZXhwZWN0
ZWREaXNwbGF5KQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVj
dGVkRGlzcGxheSArICIgZm9yIGRpc3BsYXksIGJ1dCBnb3QgIiArIGFjdHVhbERpc3BsYXkgKyAi
LiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nVG9wID0gbm9kZS5nZXRBdHRy
aWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtcGFkZGluZy10b3AiKTsK
KyAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nVG9wID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2Rl
LCAiZGF0YS1leHBlY3RlZC1wYWRkaW5nLXRvcCIpOwogICAgIGlmIChleHBlY3RlZFBhZGRpbmdU
b3ApIHsKICAgICAgICAgdmFyIGFjdHVhbFBhZGRpbmdUb3AgPSBnZXRDb21wdXRlZFN0eWxlKG5v
ZGUpLnBhZGRpbmdUb3A7CiAgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBv
dXRwdXQuCkBAIC0xMDQsNyArMTEzLDcgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlcyhu
b2RlLCBmYWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBl
eHBlY3RlZFBhZGRpbmdUb3AgKyAiIGZvciBwYWRkaW5nLXRvcCwgYnV0IGdvdCAiICsgYWN0dWFs
UGFkZGluZ1RvcCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZFBhZGRpbmdCb3R0
b20gPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3Rl
ZC1wYWRkaW5nLWJvdHRvbSIpOworICAgIHZhciBleHBlY3RlZFBhZGRpbmdCb3R0b20gPSBjaGVj
a0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLXBhZGRpbmctYm90dG9tIik7
CiAgICAgaWYgKGV4cGVjdGVkUGFkZGluZ0JvdHRvbSkgewogICAgICAgICB2YXIgYWN0dWFsUGFk
ZGluZ0JvdHRvbSA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ0JvdHRvbTsKICAgICAg
ICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTExMyw3ICsxMjIs
NyBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAgICAg
ICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGFkZGluZ0JvdHRvbSAr
ICIgZm9yIHBhZGRpbmctYm90dG9tLCBidXQgZ290ICIgKyBhY3R1YWxQYWRkaW5nQm90dG9tICsg
Ii4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkUGFkZGluZ0xlZnQgPSBub2RlLmdldEF0
dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1wYWRkaW5nLWxlZnQi
KTsKKyAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nTGVmdCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwg
bm9kZSwgImRhdGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0Iik7CiAgICAgaWYgKGV4cGVjdGVkUGFk
ZGluZ0xlZnQpIHsKICAgICAgICAgdmFyIGFjdHVhbFBhZGRpbmdMZWZ0ID0gZ2V0Q29tcHV0ZWRT
dHlsZShub2RlKS5wYWRkaW5nTGVmdDsKICAgICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZy
b20gdGhlIG91dHB1dC4KQEAgLTEyMiw3ICsxMzEsNyBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVk
VmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0
ZWQgIiArIGV4cGVjdGVkUGFkZGluZ0xlZnQgKyAiIGZvciBwYWRkaW5nLWxlZnQsIGJ1dCBnb3Qg
IiArIGFjdHVhbFBhZGRpbmdMZWZ0ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVk
UGFkZGluZ1JpZ2h0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRh
dGEtZXhwZWN0ZWQtcGFkZGluZy1yaWdodCIpOworICAgIHZhciBleHBlY3RlZFBhZGRpbmdSaWdo
dCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtcGFkZGluZy1y
aWdodCIpOwogICAgIGlmIChleHBlY3RlZFBhZGRpbmdSaWdodCkgewogICAgICAgICB2YXIgYWN0
dWFsUGFkZGluZ1JpZ2h0ID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5wYWRkaW5nUmlnaHQ7CiAg
ICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0xMzEsNyAr
MTQwLDcgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKICAg
ICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFBhZGRpbmdSaWdo
dCArICIgZm9yIHBhZGRpbmctcmlnaHQsIGJ1dCBnb3QgIiArIGFjdHVhbFBhZGRpbmdSaWdodCAr
ICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZE1hcmdpblRvcCA9IG5vZGUuZ2V0QXR0
cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLW1hcmdpbi10b3AiKTsK
KyAgICB2YXIgZXhwZWN0ZWRNYXJnaW5Ub3AgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUs
ICJkYXRhLWV4cGVjdGVkLW1hcmdpbi10b3AiKTsKICAgICBpZiAoZXhwZWN0ZWRNYXJnaW5Ub3Ap
IHsKICAgICAgICAgdmFyIGFjdHVhbE1hcmdpblRvcCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSku
bWFyZ2luVG9wOwogICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0
LgpAQCAtMTQwLDcgKzE0OSw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwg
ZmFpbHVyZXMpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0
ZWRNYXJnaW5Ub3AgKyAiIGZvciBtYXJnaW4tdG9wLCBidXQgZ290ICIgKyBhY3R1YWxNYXJnaW5U
b3AgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRNYXJnaW5Cb3R0b20gPSBub2Rl
LmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1tYXJnaW4t
Ym90dG9tIik7CisgICAgdmFyIGV4cGVjdGVkTWFyZ2luQm90dG9tID0gY2hlY2tBdHRyaWJ1dGUo
b3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1tYXJnaW4tYm90dG9tIik7CiAgICAgaWYgKGV4
cGVjdGVkTWFyZ2luQm90dG9tKSB7CiAgICAgICAgIHZhciBhY3R1YWxNYXJnaW5Cb3R0b20gPSBn
ZXRDb21wdXRlZFN0eWxlKG5vZGUpLm1hcmdpbkJvdHRvbTsKICAgICAgICAgLy8gVHJpbSB0aGUg
dW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTE0OSw3ICsxNTgsNyBAQCBmdW5jdGlvbiBj
aGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAgICAgICAgICAgZmFpbHVyZXMu
cHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkTWFyZ2luQm90dG9tICsgIiBmb3IgbWFyZ2luLWJv
dHRvbSwgYnV0IGdvdCAiICsgYWN0dWFsTWFyZ2luQm90dG9tICsgIi4gIik7CiAgICAgfQogCi0g
ICAgdmFyIGV4cGVjdGVkTWFyZ2luTGVmdCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0
QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLW1hcmdpbi1sZWZ0Iik7CisgICAgdmFyIGV4cGVjdGVk
TWFyZ2luTGVmdCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQt
bWFyZ2luLWxlZnQiKTsKICAgICBpZiAoZXhwZWN0ZWRNYXJnaW5MZWZ0KSB7CiAgICAgICAgIHZh
ciBhY3R1YWxNYXJnaW5MZWZ0ID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5tYXJnaW5MZWZ0Owog
ICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgpAQCAtMTU4LDcg
KzE2Nyw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpCiAg
ICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRNYXJnaW5MZWZ0
ICsgIiBmb3IgbWFyZ2luLWxlZnQsIGJ1dCBnb3QgIiArIGFjdHVhbE1hcmdpbkxlZnQgKyAiLiAi
KTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRNYXJnaW5SaWdodCA9IG5vZGUuZ2V0QXR0cmli
dXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLW1hcmdpbi1yaWdodCIpOwor
ICAgIHZhciBleHBlY3RlZE1hcmdpblJpZ2h0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2Rl
LCAiZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQiKTsKICAgICBpZiAoZXhwZWN0ZWRNYXJnaW5S
aWdodCkgewogICAgICAgICB2YXIgYWN0dWFsTWFyZ2luUmlnaHQgPSBnZXRDb21wdXRlZFN0eWxl
KG5vZGUpLm1hcmdpblJpZ2h0OwogICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0
aGUgb3V0cHV0LgpAQCAtMTY2LDYgKzE3NSw4IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1
ZXMobm9kZSwgZmFpbHVyZXMpCiAgICAgICAgIGlmIChhY3R1YWxNYXJnaW5SaWdodCAhPSBleHBl
Y3RlZE1hcmdpblJpZ2h0KQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiAr
IGV4cGVjdGVkTWFyZ2luUmlnaHQgKyAiIGZvciBtYXJnaW4tcmlnaHQsIGJ1dCBnb3QgIiArIGFj
dHVhbE1hcmdpblJpZ2h0ICsgIi4gIik7CiAgICAgfQorCisgICAgcmV0dXJuIG91dHB1dC5jaGVj
a2VkOwogfQogCiB3aW5kb3cuY2hlY2tMYXlvdXQgPSBmdW5jdGlvbihzZWxlY3Rvckxpc3QpCkBA
IC0xNzcsMTAgKzE4OCwxMSBAQCB3aW5kb3cuY2hlY2tMYXlvdXQgPSBmdW5jdGlvbihzZWxlY3Rv
ckxpc3QpCiAgICAgdmFyIG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rv
ckxpc3QpOwogICAgIG5vZGVzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobm9kZXMpOwog
ICAgIG5vZGVzLnJldmVyc2UoKTsKKyAgICB2YXIgY2hlY2tlZExheW91dCA9IGZhbHNlOwogICAg
IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobm9kZXMsIGZ1bmN0aW9uKG5vZGUpIHsKICAg
ICAgICAgdmFyIGZhaWx1cmVzID0gW107Ci0gICAgICAgIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9k
ZS5wYXJlbnROb2RlLCBmYWlsdXJlcyk7Ci0gICAgICAgIGNoZWNrU3VidHJlZUV4cGVjdGVkVmFs
dWVzKG5vZGUsIGZhaWx1cmVzKTsKKyAgICAgICAgY2hlY2tlZExheW91dCB8PSBjaGVja0V4cGVj
dGVkVmFsdWVzKG5vZGUucGFyZW50Tm9kZSwgZmFpbHVyZXMpOworICAgICAgICBjaGVja2VkTGF5
b3V0IHw9IGNoZWNrU3VidHJlZUV4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKTsKIAogICAg
ICAgICB2YXIgY29udGFpbmVyID0gbm9kZS5wYXJlbnROb2RlLmNsYXNzTmFtZSA9PSAnY29udGFp
bmVyJyA/IG5vZGUucGFyZW50Tm9kZSA6IG5vZGU7CiAKQEAgLTE5MCw2ICsyMDIsMTIgQEAgd2lu
ZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24oc2VsZWN0b3JMaXN0KQogICAgICAgICBwcmUuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZmFpbHVyZXMubGVuZ3RoID8gIkZBSUw6
XG4iICsgZmFpbHVyZXMuam9pbignXG4nKSArICdcblxuJyArIGNvbnRhaW5lci5vdXRlckhUTUwg
OiAiUEFTUyIpKTsKICAgICAgICAgaW5zZXJ0QWZ0ZXIocHJlLCBjb250YWluZXIpOwogICAgIH0p
OworCisgICAgaWYgKCFjaGVja2VkTGF5b3V0KSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJIVE1MID0gIkZBSUw6IE5vIHZhbGlkIGRhdGEtKiBhdHRyaWJ1dGVzIGZvdW5kIGluIHNlbGVj
dG9yIGxpc3QgOiAiICsgc2VsZWN0b3JMaXN0OworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgdmFyIHByZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5GQUlMJyk7CiAgICAgaWYgKHBy
ZSkKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgcHJlLnByZXZpb3VzU2libGluZy5z
Y3JvbGxJbnRvVmlldygpOyB9LCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199056</attachid>
            <date>2013-04-22 11:46:44 -0700</date>
            <delta_ts>2013-04-22 13:09:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114900-20130422194539.patch</filename>
            <type>text/plain</type>
            <size>13346</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4ODI0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzBmYWQ3MDRmY2YxYzQ5Yzk2N2Q0
NTgzZmM2OTY2YTA5OGNlMmJjNi4uMzExZGM2Njk2NGUyYWNlODY5YmEyMDE5NDkyYjYwMmJlZTAy
MWU0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA0LTIwICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBjaGVja0xheW91dCgpIHNob3VsZCBlcnJvciBv
dXQgaWYgbm8gZGF0YS1leHBlY3RlZCogYXR0cmlidXRlcyB3ZXJlIGZvdW5kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ5MDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAgICAgIElmIGNoZWNrTGF5b3V0KCkgZG9lc24n
dCBmaW5kIGFueSBhdHRyaWJ1dGVzIGNoZWNraW5nIHRoZSBub2RlJ3MgbGF5b3V0IHRoZW4gZXJy
b3Igb3V0CisgICAgICAgIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIHRlc3QgaGFzIHBhc3NlZC4g
VGhpcyB3aWxsIGVuc3VyZSBkYXRhLSogYXR0cmlidXRlcyBjb250YWluaW5nCisgICAgICAgIHR5
cG9zIGRvbid0IHJlZ2lzdGVyIGFzIGEgcGFzcy4KKworICAgICAgICAqIGZhc3QvY2hlY2stbGF5
b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHJlc291cmNlcy9jaGVjay1sYXlvdXQuanM6CisgICAgICAgICguKToKKwogMjAxMy0wNC0x
NyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2hlbiBkZWNp
ZGluZyB3aGV0aGVyIHRvIGxpbmUtYnJlYWsgaW5zaWRlIHNocmluay10by1maXQgY29udGFpbmVy
cyBkbyBub3QgaW5jbHVkZSB0cmFpbGluZyBzcGFjZSB3aGVuIGRldGVybWluaW5nIHdpZHRoIG9m
IGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9y
LW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jaGVjay1sYXlv
dXQtZXJyb3Itbm8tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxNzhiMzU0
NzI1ZjJmYWYxODE2ZDVlZjAyYzI2ZDc2MDRhMzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEgQEAKK0ZBSUw6IE5vIHZhbGlkIGRhdGEtKiBhdHRyaWJ1dGVzIGZvdW5kIGlu
IHNlbGVjdG9yIGxpc3QgOiBzcGFuID4gc3BhbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMmIx
MzNhMzA1Y2Q0YzYyZGE1ODMxMjc0Njg3YzMzNTMxY2E5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0bWwKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKyAgICA8cD4g
d2Via2l0Lm9yZy9iLzExNDkwMDogY2hlY2tMYXlvdXQoKSBzaG91bGQgZXJyb3Igb3V0IGlmIHRo
ZSBsYXlvdXQgd2Fzbid0IGNoZWNrZWQuIDwvcD4KKyAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ij54eHggPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Ymx1ZTsi
IGRhdGEtdG90YWwtaW52YWxpZC1hdHRyaWJ1dGU9MD55eXk8L3NwYW4+PC9zcGFuPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGNoZWNrTGF5b3V0KCdzcGFuID4gc3BhbicpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2No
ZWNrLWxheW91dC5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMKaW5k
ZXggZjIwMjljYmExZDcwNzBmYjUxMzdkZjYwYWQ2ZTE4N2E2NTA0OGVlNS4uZDk3YTllYjc2MGY4
ZDY2MmQzZjBhOWFlODk2NjY0Njk4YTMyYmViNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2NoZWNrLWxheW91dC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hlY2st
bGF5b3V0LmpzCkBAIC0xOCw4NCArMTgsOTMgQEAgZnVuY3Rpb24gaW5zZXJ0QWZ0ZXIobm9kZVRv
QWRkLCByZWZlcmVuY2VOb2RlKQogCiBmdW5jdGlvbiBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVl
cyhwYXJlbnQsIGZhaWx1cmVzKQogewotICAgIGNoZWNrRXhwZWN0ZWRWYWx1ZXMocGFyZW50LCBm
YWlsdXJlcyk7CisgICAgdmFyIGNoZWNrZWRMYXlvdXQgPSBjaGVja0V4cGVjdGVkVmFsdWVzKHBh
cmVudCwgZmFpbHVyZXMpOwogICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocGFyZW50
LmNoaWxkTm9kZXMsIGZ1bmN0aW9uKG5vZGUpIHsKLSAgICAgICAgY2hlY2tTdWJ0cmVlRXhwZWN0
ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpOworICAgICAgICBjaGVja2VkTGF5b3V0IHw9IGNoZWNr
U3VidHJlZUV4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKTsKICAgICB9KTsKKyAgICByZXR1
cm4gY2hlY2tlZExheW91dDsKK30KKworZnVuY3Rpb24gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBu
b2RlLCBhdHRyaWJ1dGUpCit7CisgICAgdmFyIHJlc3VsdCA9IG5vZGUuZ2V0QXR0cmlidXRlICYm
IG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7CisgICAgb3V0cHV0LmNoZWNrZWQgfD0gcmVz
dWx0OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1
ZXMobm9kZSwgZmFpbHVyZXMpCiB7Ci0gICAgdmFyIGV4cGVjdGVkV2lkdGggPSBub2RlLmdldEF0
dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIpOworICAg
IHZhciBvdXRwdXQgPSB7IGNoZWNrZWQ6IGZhbHNlIH07CisgICAgdmFyIGV4cGVjdGVkV2lkdGgg
PSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLXdpZHRoIik7CiAg
ICAgaWYgKGV4cGVjdGVkV2lkdGgpIHsKICAgICAgICAgaWYgKG5vZGUub2Zmc2V0V2lkdGggIT0g
cGFyc2VJbnQoZXhwZWN0ZWRXaWR0aCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBl
Y3RlZCAiICsgZXhwZWN0ZWRXaWR0aCArICIgZm9yIHdpZHRoLCBidXQgZ290ICIgKyBub2RlLm9m
ZnNldFdpZHRoICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkSGVpZ2h0ID0gbm9k
ZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0
Iik7CisgICAgdmFyIGV4cGVjdGVkSGVpZ2h0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2Rl
LCAiZGF0YS1leHBlY3RlZC1oZWlnaHQiKTsKICAgICBpZiAoZXhwZWN0ZWRIZWlnaHQpIHsKICAg
ICAgICAgaWYgKG5vZGUub2Zmc2V0SGVpZ2h0ICE9IHBhcnNlSW50KGV4cGVjdGVkSGVpZ2h0KSkK
ICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZEhlaWdodCAr
ICIgZm9yIGhlaWdodCwgYnV0IGdvdCAiICsgbm9kZS5vZmZzZXRIZWlnaHQgKyAiLiAiKTsKICAg
ICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2Rl
LmdldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIpOworICAgIHZhciBleHBlY3RlZE9mZnNldCA9
IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtb2Zmc2V0LXgiKTsKICAgICBpZiAo
ZXhwZWN0ZWRPZmZzZXQpIHsKICAgICAgICAgaWYgKG5vZGUub2Zmc2V0TGVmdCAhPSBwYXJzZUlu
dChleHBlY3RlZE9mZnNldCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAi
ICsgZXhwZWN0ZWRPZmZzZXQgKyAiIGZvciBvZmZzZXRMZWZ0LCBidXQgZ290ICIgKyBub2RlLm9m
ZnNldExlZnQgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSBub2Rl
LmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteSIpOworICAg
IHZhciBleHBlY3RlZE9mZnNldCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEt
b2Zmc2V0LXkiKTsKICAgICBpZiAoZXhwZWN0ZWRPZmZzZXQpIHsKICAgICAgICAgaWYgKG5vZGUu
b2Zmc2V0VG9wICE9IHBhcnNlSW50KGV4cGVjdGVkT2Zmc2V0KSkKICAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE9mZnNldCArICIgZm9yIG9mZnNldFRvcCwg
YnV0IGdvdCAiICsgbm9kZS5vZmZzZXRUb3AgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhw
ZWN0ZWRXaWR0aCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRh
LWV4cGVjdGVkLWNsaWVudC13aWR0aCIpOworICAgIHZhciBleHBlY3RlZFdpZHRoID0gY2hlY2tB
dHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1jbGllbnQtd2lkdGgiKTsKICAg
ICBpZiAoZXhwZWN0ZWRXaWR0aCkgewogICAgICAgICBpZiAobm9kZS5jbGllbnRXaWR0aCAhPSBw
YXJzZUludChleHBlY3RlZFdpZHRoKSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVj
dGVkICIgKyBleHBlY3RlZFdpZHRoICsgIiBmb3IgY2xpZW50V2lkdGgsIGJ1dCBnb3QgIiArIG5v
ZGUuY2xpZW50V2lkdGggKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRIZWlnaHQg
PSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1j
bGllbnQtaGVpZ2h0Iik7CisgICAgdmFyIGV4cGVjdGVkSGVpZ2h0ID0gY2hlY2tBdHRyaWJ1dGUo
b3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1jbGllbnQtaGVpZ2h0Iik7CiAgICAgaWYgKGV4
cGVjdGVkSGVpZ2h0KSB7CiAgICAgICAgIGlmIChub2RlLmNsaWVudEhlaWdodCAhPSBwYXJzZUlu
dChleHBlY3RlZEhlaWdodCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAi
ICsgZXhwZWN0ZWRIZWlnaHQgKyAiIGZvciBjbGllbnRIZWlnaHQsIGJ1dCBnb3QgIiArIG5vZGUu
Y2xpZW50SGVpZ2h0ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkV2lkdGggPSBu
b2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1zY3Jv
bGwtd2lkdGgiKTsKKyAgICB2YXIgZXhwZWN0ZWRXaWR0aCA9IGNoZWNrQXR0cmlidXRlKG91dHB1
dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtc2Nyb2xsLXdpZHRoIik7CiAgICAgaWYgKGV4cGVjdGVk
V2lkdGgpIHsKICAgICAgICAgaWYgKG5vZGUuc2Nyb2xsV2lkdGggIT0gcGFyc2VJbnQoZXhwZWN0
ZWRXaWR0aCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0
ZWRXaWR0aCArICIgZm9yIHNjcm9sbFdpZHRoLCBidXQgZ290ICIgKyBub2RlLnNjcm9sbFdpZHRo
ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkSGVpZ2h0ID0gbm9kZS5nZXRBdHRy
aWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtc2Nyb2xsLWhlaWdodCIp
OworICAgIHZhciBleHBlY3RlZEhlaWdodCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwg
ImRhdGEtZXhwZWN0ZWQtc2Nyb2xsLWhlaWdodCIpOwogICAgIGlmIChleHBlY3RlZEhlaWdodCkg
ewogICAgICAgICBpZiAobm9kZS5zY3JvbGxIZWlnaHQgIT0gcGFyc2VJbnQoZXhwZWN0ZWRIZWln
aHQpKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkSGVp
Z2h0ICsgIiBmb3Igc2Nyb2xsSGVpZ2h0LCBidXQgZ290ICIgKyBub2RlLnNjcm9sbEhlaWdodCAr
ICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZE9mZnNldCA9IG5vZGUuZ2V0QXR0cmli
dXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLXRvdGFsLXgiKTsKKyAgICB2YXIgZXhwZWN0
ZWRPZmZzZXQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLXRvdGFsLXgiKTsK
ICAgICBpZiAoZXhwZWN0ZWRPZmZzZXQpIHsKICAgICAgICAgdmFyIHRvdGFsTGVmdCA9IG5vZGUu
Y2xpZW50TGVmdCArIG5vZGUub2Zmc2V0TGVmdDsKICAgICAgICAgaWYgKHRvdGFsTGVmdCAhPSBw
YXJzZUludChleHBlY3RlZE9mZnNldCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBl
Y3RlZCAiICsgZXhwZWN0ZWRPZmZzZXQgKyAiIGZvciBjbGllbnRMZWZ0K29mZnNldExlZnQsIGJ1
dCBnb3QgIiArIHRvdGFsTGVmdCArICIsIGNsaWVudExlZnQ6ICIgKyBub2RlLmNsaWVudExlZnQg
KyAiLCBvZmZzZXRMZWZ0OiAiICsgbm9kZS5vZmZzZXRMZWZ0ICsgIi4gIik7CiAgICAgfQogCi0g
ICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRy
aWJ1dGUoImRhdGEtdG90YWwteSIpOworICAgIHZhciBleHBlY3RlZE9mZnNldCA9IGNoZWNrQXR0
cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtdG90YWwteSIpOwogICAgIGlmIChleHBlY3RlZE9m
ZnNldCkgewogICAgICAgICB2YXIgdG90YWxUb3AgPSBub2RlLmNsaWVudFRvcCArIG5vZGUub2Zm
c2V0VG9wOwogICAgICAgICBpZiAodG90YWxUb3AgIT0gcGFyc2VJbnQoZXhwZWN0ZWRPZmZzZXQp
KQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkT2Zmc2V0
ICsgIiBmb3IgY2xpZW50VG9wK29mZnNldFRvcCwgYnV0IGdvdCAiICsgdG90YWxUb3AgKyAiLCBj
bGllbnRUb3A6ICIgKyBub2RlLmNsaWVudFRvcCArICIsICsgb2Zmc2V0VG9wOiAiICsgbm9kZS5v
ZmZzZXRUb3AgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWREaXNwbGF5ID0gbm9k
ZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtZGlzcGxh
eSIpOworICAgIHZhciBleHBlY3RlZERpc3BsYXkgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5v
ZGUsICJkYXRhLWV4cGVjdGVkLWRpc3BsYXkiKTsKICAgICBpZiAoZXhwZWN0ZWREaXNwbGF5KSB7
CiAgICAgICAgIHZhciBhY3R1YWxEaXNwbGF5ID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5kaXNw
bGF5OwogICAgICAgICBpZiAoYWN0dWFsRGlzcGxheSAhPSBleHBlY3RlZERpc3BsYXkpCiAgICAg
ICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWREaXNwbGF5ICsgIiBm
b3IgZGlzcGxheSwgYnV0IGdvdCAiICsgYWN0dWFsRGlzcGxheSArICIuICIpOwogICAgIH0KIAot
ICAgIHZhciBleHBlY3RlZFBhZGRpbmdUb3AgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdl
dEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1wYWRkaW5nLXRvcCIpOworICAgIHZhciBleHBlY3Rl
ZFBhZGRpbmdUb3AgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVk
LXBhZGRpbmctdG9wIik7CiAgICAgaWYgKGV4cGVjdGVkUGFkZGluZ1RvcCkgewogICAgICAgICB2
YXIgYWN0dWFsUGFkZGluZ1RvcCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ1RvcDsK
ICAgICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTEwNCw3
ICsxMTMsNyBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQog
ICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGFkZGluZ1Rv
cCArICIgZm9yIHBhZGRpbmctdG9wLCBidXQgZ290ICIgKyBhY3R1YWxQYWRkaW5nVG9wICsgIi4g
Iik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkUGFkZGluZ0JvdHRvbSA9IG5vZGUuZ2V0QXR0
cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBhZGRpbmctYm90dG9t
Iik7CisgICAgdmFyIGV4cGVjdGVkUGFkZGluZ0JvdHRvbSA9IGNoZWNrQXR0cmlidXRlKG91dHB1
dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtcGFkZGluZy1ib3R0b20iKTsKICAgICBpZiAoZXhwZWN0
ZWRQYWRkaW5nQm90dG9tKSB7CiAgICAgICAgIHZhciBhY3R1YWxQYWRkaW5nQm90dG9tID0gZ2V0
Q29tcHV0ZWRTdHlsZShub2RlKS5wYWRkaW5nQm90dG9tOwogICAgICAgICAvLyBUcmltIHRoZSB1
bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgpAQCAtMTEzLDcgKzEyMiw3IEBAIGZ1bmN0aW9uIGNo
ZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpCiAgICAgICAgICAgICBmYWlsdXJlcy5w
dXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRQYWRkaW5nQm90dG9tICsgIiBmb3IgcGFkZGluZy1i
b3R0b20sIGJ1dCBnb3QgIiArIGFjdHVhbFBhZGRpbmdCb3R0b20gKyAiLiAiKTsKICAgICB9CiAK
LSAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nTGVmdCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUu
Z2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBhZGRpbmctbGVmdCIpOworICAgIHZhciBleHBl
Y3RlZFBhZGRpbmdMZWZ0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBl
Y3RlZC1wYWRkaW5nLWxlZnQiKTsKICAgICBpZiAoZXhwZWN0ZWRQYWRkaW5nTGVmdCkgewogICAg
ICAgICB2YXIgYWN0dWFsUGFkZGluZ0xlZnQgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRp
bmdMZWZ0OwogICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgpA
QCAtMTIyLDcgKzEzMSw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFp
bHVyZXMpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRQ
YWRkaW5nTGVmdCArICIgZm9yIHBhZGRpbmctbGVmdCwgYnV0IGdvdCAiICsgYWN0dWFsUGFkZGlu
Z0xlZnQgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nUmlnaHQgPSBu
b2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1wYWRk
aW5nLXJpZ2h0Iik7CisgICAgdmFyIGV4cGVjdGVkUGFkZGluZ1JpZ2h0ID0gY2hlY2tBdHRyaWJ1
dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1wYWRkaW5nLXJpZ2h0Iik7CiAgICAgaWYg
KGV4cGVjdGVkUGFkZGluZ1JpZ2h0KSB7CiAgICAgICAgIHZhciBhY3R1YWxQYWRkaW5nUmlnaHQg
PSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRpbmdSaWdodDsKICAgICAgICAgLy8gVHJpbSB0
aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTEzMSw3ICsxNDAsNyBAQCBmdW5jdGlv
biBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAgICAgICAgICAgZmFpbHVy
ZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGFkZGluZ1JpZ2h0ICsgIiBmb3IgcGFkZGlu
Zy1yaWdodCwgYnV0IGdvdCAiICsgYWN0dWFsUGFkZGluZ1JpZ2h0ICsgIi4gIik7CiAgICAgfQog
Ci0gICAgdmFyIGV4cGVjdGVkTWFyZ2luVG9wID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5n
ZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtbWFyZ2luLXRvcCIpOworICAgIHZhciBleHBlY3Rl
ZE1hcmdpblRvcCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQt
bWFyZ2luLXRvcCIpOwogICAgIGlmIChleHBlY3RlZE1hcmdpblRvcCkgewogICAgICAgICB2YXIg
YWN0dWFsTWFyZ2luVG9wID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5tYXJnaW5Ub3A7CiAgICAg
ICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0xNDAsNyArMTQ5
LDcgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAg
ICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE1hcmdpblRvcCArICIg
Zm9yIG1hcmdpbi10b3AsIGJ1dCBnb3QgIiArIGFjdHVhbE1hcmdpblRvcCArICIuICIpOwogICAg
IH0KIAotICAgIHZhciBleHBlY3RlZE1hcmdpbkJvdHRvbSA9IG5vZGUuZ2V0QXR0cmlidXRlICYm
IG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLW1hcmdpbi1ib3R0b20iKTsKKyAgICB2
YXIgZXhwZWN0ZWRNYXJnaW5Cb3R0b20gPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJk
YXRhLWV4cGVjdGVkLW1hcmdpbi1ib3R0b20iKTsKICAgICBpZiAoZXhwZWN0ZWRNYXJnaW5Cb3R0
b20pIHsKICAgICAgICAgdmFyIGFjdHVhbE1hcmdpbkJvdHRvbSA9IGdldENvbXB1dGVkU3R5bGUo
bm9kZSkubWFyZ2luQm90dG9tOwogICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0
aGUgb3V0cHV0LgpAQCAtMTQ5LDcgKzE1OCw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1
ZXMobm9kZSwgZmFpbHVyZXMpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAi
ICsgZXhwZWN0ZWRNYXJnaW5Cb3R0b20gKyAiIGZvciBtYXJnaW4tYm90dG9tLCBidXQgZ290ICIg
KyBhY3R1YWxNYXJnaW5Cb3R0b20gKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRN
YXJnaW5MZWZ0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEt
ZXhwZWN0ZWQtbWFyZ2luLWxlZnQiKTsKKyAgICB2YXIgZXhwZWN0ZWRNYXJnaW5MZWZ0ID0gY2hl
Y2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1tYXJnaW4tbGVmdCIpOwog
ICAgIGlmIChleHBlY3RlZE1hcmdpbkxlZnQpIHsKICAgICAgICAgdmFyIGFjdHVhbE1hcmdpbkxl
ZnQgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLm1hcmdpbkxlZnQ7CiAgICAgICAgIC8vIFRyaW0g
dGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0xNTgsNyArMTY3LDcgQEAgZnVuY3Rp
b24gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE1hcmdpbkxlZnQgKyAiIGZvciBtYXJnaW4t
bGVmdCwgYnV0IGdvdCAiICsgYWN0dWFsTWFyZ2luTGVmdCArICIuICIpOwogICAgIH0KIAotICAg
IHZhciBleHBlY3RlZE1hcmdpblJpZ2h0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRB
dHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtbWFyZ2luLXJpZ2h0Iik7CisgICAgdmFyIGV4cGVjdGVk
TWFyZ2luUmlnaHQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVk
LW1hcmdpbi1yaWdodCIpOwogICAgIGlmIChleHBlY3RlZE1hcmdpblJpZ2h0KSB7CiAgICAgICAg
IHZhciBhY3R1YWxNYXJnaW5SaWdodCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkubWFyZ2luUmln
aHQ7CiAgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0x
NjYsNiArMTc1LDggQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJl
cykKICAgICAgICAgaWYgKGFjdHVhbE1hcmdpblJpZ2h0ICE9IGV4cGVjdGVkTWFyZ2luUmlnaHQp
CiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRNYXJnaW5S
aWdodCArICIgZm9yIG1hcmdpbi1yaWdodCwgYnV0IGdvdCAiICsgYWN0dWFsTWFyZ2luUmlnaHQg
KyAiLiAiKTsKICAgICB9CisKKyAgICByZXR1cm4gb3V0cHV0LmNoZWNrZWQ7CiB9CiAKIHdpbmRv
dy5jaGVja0xheW91dCA9IGZ1bmN0aW9uKHNlbGVjdG9yTGlzdCkKQEAgLTE3NywxMCArMTg4LDEx
IEBAIHdpbmRvdy5jaGVja0xheW91dCA9IGZ1bmN0aW9uKHNlbGVjdG9yTGlzdCkKICAgICB2YXIg
bm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yTGlzdCk7CiAgICAgbm9k
ZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChub2Rlcyk7CiAgICAgbm9kZXMucmV2ZXJz
ZSgpOworICAgIHZhciBjaGVja2VkTGF5b3V0ID0gZmFsc2U7CiAgICAgQXJyYXkucHJvdG90eXBl
LmZvckVhY2guY2FsbChub2RlcywgZnVuY3Rpb24obm9kZSkgewogICAgICAgICB2YXIgZmFpbHVy
ZXMgPSBbXTsKLSAgICAgICAgY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLnBhcmVudE5vZGUsIGZh
aWx1cmVzKTsKLSAgICAgICAgY2hlY2tTdWJ0cmVlRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVy
ZXMpOworICAgICAgICBjaGVja2VkTGF5b3V0IHw9IGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZS5w
YXJlbnROb2RlLCBmYWlsdXJlcyk7CisgICAgICAgIGNoZWNrZWRMYXlvdXQgfD0gY2hlY2tTdWJ0
cmVlRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpOwogCiAgICAgICAgIHZhciBjb250YWlu
ZXIgPSBub2RlLnBhcmVudE5vZGUuY2xhc3NOYW1lID09ICdjb250YWluZXInID8gbm9kZS5wYXJl
bnROb2RlIDogbm9kZTsKIApAQCAtMTkwLDYgKzIwMiwxMiBAQCB3aW5kb3cuY2hlY2tMYXlvdXQg
PSBmdW5jdGlvbihzZWxlY3Rvckxpc3QpCiAgICAgICAgIHByZS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShmYWlsdXJlcy5sZW5ndGggPyAiRkFJTDpcbiIgKyBmYWlsdXJlcy5q
b2luKCdcbicpICsgJ1xuXG4nICsgY29udGFpbmVyLm91dGVySFRNTCA6ICJQQVNTIikpOwogICAg
ICAgICBpbnNlcnRBZnRlcihwcmUsIGNvbnRhaW5lcik7CiAgICAgfSk7CisKKyAgICBpZiAoIWNo
ZWNrZWRMYXlvdXQpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiRkFJTDog
Tm8gdmFsaWQgZGF0YS0qIGF0dHJpYnV0ZXMgZm91bmQgaW4gc2VsZWN0b3IgbGlzdCA6ICIgKyBz
ZWxlY3Rvckxpc3Q7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB2YXIgcHJlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignLkZBSUwnKTsKICAgICBpZiAocHJlKQogICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBwcmUucHJldmlvdXNTaWJsaW5nLnNjcm9sbEludG9WaWV3KCk7
IH0sIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199094</attachid>
            <date>2013-04-22 13:09:29 -0700</date>
            <delta_ts>2013-04-23 10:48:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114900-20130422210824.patch</filename>
            <type>text/plain</type>
            <size>13348</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4ODI0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzBmYWQ3MDRmY2YxYzQ5Yzk2N2Q0
NTgzZmM2OTY2YTA5OGNlMmJjNi4uMzExZGM2Njk2NGUyYWNlODY5YmEyMDE5NDkyYjYwMmJlZTAy
MWU0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA0LTIwICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBjaGVja0xheW91dCgpIHNob3VsZCBlcnJvciBv
dXQgaWYgbm8gZGF0YS1leHBlY3RlZCogYXR0cmlidXRlcyB3ZXJlIGZvdW5kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ5MDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAgICAgIElmIGNoZWNrTGF5b3V0KCkgZG9lc24n
dCBmaW5kIGFueSBhdHRyaWJ1dGVzIGNoZWNraW5nIHRoZSBub2RlJ3MgbGF5b3V0IHRoZW4gZXJy
b3Igb3V0CisgICAgICAgIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIHRlc3QgaGFzIHBhc3NlZC4g
VGhpcyB3aWxsIGVuc3VyZSBkYXRhLSogYXR0cmlidXRlcyBjb250YWluaW5nCisgICAgICAgIHR5
cG9zIGRvbid0IHJlZ2lzdGVyIGFzIGEgcGFzcy4KKworICAgICAgICAqIGZhc3QvY2hlY2stbGF5
b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHJlc291cmNlcy9jaGVjay1sYXlvdXQuanM6CisgICAgICAgICguKToKKwogMjAxMy0wNC0x
NyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2hlbiBkZWNp
ZGluZyB3aGV0aGVyIHRvIGxpbmUtYnJlYWsgaW5zaWRlIHNocmluay10by1maXQgY29udGFpbmVy
cyBkbyBub3QgaW5jbHVkZSB0cmFpbGluZyBzcGFjZSB3aGVuIGRldGVybWluaW5nIHdpZHRoIG9m
IGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9y
LW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jaGVjay1sYXlv
dXQtZXJyb3Itbm8tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxNzhiMzU0
NzI1ZjJmYWYxODE2ZDVlZjAyYzI2ZDc2MDRhMzE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2hlY2stbGF5b3V0LWVycm9yLW5vLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEgQEAKK0ZBSUw6IE5vIHZhbGlkIGRhdGEtKiBhdHRyaWJ1dGVzIGZvdW5kIGlu
IHNlbGVjdG9yIGxpc3QgOiBzcGFuID4gc3BhbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jaGVjay1sYXlvdXQtZXJyb3Itbm8tYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMmIx
MzNhMzA1Y2Q0YzYyZGE1ODMxMjc0Njg3YzMzNTMxY2E5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NoZWNrLWxheW91dC1lcnJvci1uby1hdHRyaWJ1dGVzLmh0bWwKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKyAgICA8cD4g
d2Via2l0Lm9yZy9iLzExNDkwMDogY2hlY2tMYXlvdXQoKSBzaG91bGQgZXJyb3Igb3V0IGlmIHRo
ZSBsYXlvdXQgd2Fzbid0IGNoZWNrZWQuIDwvcD4KKyAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ij54eHggPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Ymx1ZTsi
IGRhdGEtdG90YWwtaW52YWxpZC1hdHRyaWJ1dGU9MD55eXk8L3NwYW4+PC9zcGFuPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGNoZWNrTGF5b3V0KCdzcGFuID4gc3BhbicpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2No
ZWNrLWxheW91dC5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMKaW5k
ZXggZjIwMjljYmExZDcwNzBmYjUxMzdkZjYwYWQ2ZTE4N2E2NTA0OGVlNS4uMTY5YmUzMWMzYmRk
ZmVlMzgzZTQ4MDlmMGI0NzU2NTJlMzA4NTNjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2NoZWNrLWxheW91dC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hlY2st
bGF5b3V0LmpzCkBAIC0xOCw4NCArMTgsOTMgQEAgZnVuY3Rpb24gaW5zZXJ0QWZ0ZXIobm9kZVRv
QWRkLCByZWZlcmVuY2VOb2RlKQogCiBmdW5jdGlvbiBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVl
cyhwYXJlbnQsIGZhaWx1cmVzKQogewotICAgIGNoZWNrRXhwZWN0ZWRWYWx1ZXMocGFyZW50LCBm
YWlsdXJlcyk7CisgICAgdmFyIGNoZWNrZWRMYXlvdXQgPSBjaGVja0V4cGVjdGVkVmFsdWVzKHBh
cmVudCwgZmFpbHVyZXMpOwogICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocGFyZW50
LmNoaWxkTm9kZXMsIGZ1bmN0aW9uKG5vZGUpIHsKLSAgICAgICAgY2hlY2tTdWJ0cmVlRXhwZWN0
ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpOworICAgICAgICBjaGVja2VkTGF5b3V0IHw9IGNoZWNr
U3VidHJlZUV4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKTsKICAgICB9KTsKKyAgICByZXR1
cm4gY2hlY2tlZExheW91dDsKK30KKworZnVuY3Rpb24gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBu
b2RlLCBhdHRyaWJ1dGUpCit7CisgICAgdmFyIHJlc3VsdCA9IG5vZGUuZ2V0QXR0cmlidXRlICYm
IG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7CisgICAgb3V0cHV0LmNoZWNrZWQgfD0gISFy
ZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZh
bHVlcyhub2RlLCBmYWlsdXJlcykKIHsKLSAgICB2YXIgZXhwZWN0ZWRXaWR0aCA9IG5vZGUuZ2V0
QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIik7Cisg
ICAgdmFyIG91dHB1dCA9IHsgY2hlY2tlZDogZmFsc2UgfTsKKyAgICB2YXIgZXhwZWN0ZWRXaWR0
aCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0ZWQtd2lkdGgiKTsK
ICAgICBpZiAoZXhwZWN0ZWRXaWR0aCkgewogICAgICAgICBpZiAobm9kZS5vZmZzZXRXaWR0aCAh
PSBwYXJzZUludChleHBlY3RlZFdpZHRoKSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4
cGVjdGVkICIgKyBleHBlY3RlZFdpZHRoICsgIiBmb3Igd2lkdGgsIGJ1dCBnb3QgIiArIG5vZGUu
b2Zmc2V0V2lkdGggKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBu
b2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWln
aHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5v
ZGUsICJkYXRhLWV4cGVjdGVkLWhlaWdodCIpOwogICAgIGlmIChleHBlY3RlZEhlaWdodCkgewog
ICAgICAgICBpZiAobm9kZS5vZmZzZXRIZWlnaHQgIT0gcGFyc2VJbnQoZXhwZWN0ZWRIZWlnaHQp
KQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkSGVpZ2h0
ICsgIiBmb3IgaGVpZ2h0LCBidXQgZ290ICIgKyBub2RlLm9mZnNldEhlaWdodCArICIuICIpOwog
ICAgIH0KIAotICAgIHZhciBleHBlY3RlZE9mZnNldCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5v
ZGUuZ2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14Iik7CisgICAgdmFyIGV4cGVjdGVkT2Zmc2V0
ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1vZmZzZXQteCIpOwogICAgIGlm
IChleHBlY3RlZE9mZnNldCkgewogICAgICAgICBpZiAobm9kZS5vZmZzZXRMZWZ0ICE9IHBhcnNl
SW50KGV4cGVjdGVkT2Zmc2V0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVk
ICIgKyBleHBlY3RlZE9mZnNldCArICIgZm9yIG9mZnNldExlZnQsIGJ1dCBnb3QgIiArIG5vZGUu
b2Zmc2V0TGVmdCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZE9mZnNldCA9IG5v
ZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15Iik7Cisg
ICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0
YS1vZmZzZXQteSIpOwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewogICAgICAgICBpZiAobm9k
ZS5vZmZzZXRUb3AgIT0gcGFyc2VJbnQoZXhwZWN0ZWRPZmZzZXQpKQogICAgICAgICAgICAgZmFp
bHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkT2Zmc2V0ICsgIiBmb3Igb2Zmc2V0VG9w
LCBidXQgZ290ICIgKyBub2RlLm9mZnNldFRvcCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBl
eHBlY3RlZFdpZHRoID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRh
dGEtZXhwZWN0ZWQtY2xpZW50LXdpZHRoIik7CisgICAgdmFyIGV4cGVjdGVkV2lkdGggPSBjaGVj
a0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWNsaWVudC13aWR0aCIpOwog
ICAgIGlmIChleHBlY3RlZFdpZHRoKSB7CiAgICAgICAgIGlmIChub2RlLmNsaWVudFdpZHRoICE9
IHBhcnNlSW50KGV4cGVjdGVkV2lkdGgpKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhw
ZWN0ZWQgIiArIGV4cGVjdGVkV2lkdGggKyAiIGZvciBjbGllbnRXaWR0aCwgYnV0IGdvdCAiICsg
bm9kZS5jbGllbnRXaWR0aCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZEhlaWdo
dCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVk
LWNsaWVudC1oZWlnaHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBjaGVja0F0dHJpYnV0
ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWNsaWVudC1oZWlnaHQiKTsKICAgICBpZiAo
ZXhwZWN0ZWRIZWlnaHQpIHsKICAgICAgICAgaWYgKG5vZGUuY2xpZW50SGVpZ2h0ICE9IHBhcnNl
SW50KGV4cGVjdGVkSGVpZ2h0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVk
ICIgKyBleHBlY3RlZEhlaWdodCArICIgZm9yIGNsaWVudEhlaWdodCwgYnV0IGdvdCAiICsgbm9k
ZS5jbGllbnRIZWlnaHQgKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRXaWR0aCA9
IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXNj
cm9sbC13aWR0aCIpOworICAgIHZhciBleHBlY3RlZFdpZHRoID0gY2hlY2tBdHRyaWJ1dGUob3V0
cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1zY3JvbGwtd2lkdGgiKTsKICAgICBpZiAoZXhwZWN0
ZWRXaWR0aCkgewogICAgICAgICBpZiAobm9kZS5zY3JvbGxXaWR0aCAhPSBwYXJzZUludChleHBl
Y3RlZFdpZHRoKSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBl
Y3RlZFdpZHRoICsgIiBmb3Igc2Nyb2xsV2lkdGgsIGJ1dCBnb3QgIiArIG5vZGUuc2Nyb2xsV2lk
dGggKyAiLiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBub2RlLmdldEF0
dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1zY3JvbGwtaGVpZ2h0
Iik7CisgICAgdmFyIGV4cGVjdGVkSGVpZ2h0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2Rl
LCAiZGF0YS1leHBlY3RlZC1zY3JvbGwtaGVpZ2h0Iik7CiAgICAgaWYgKGV4cGVjdGVkSGVpZ2h0
KSB7CiAgICAgICAgIGlmIChub2RlLnNjcm9sbEhlaWdodCAhPSBwYXJzZUludChleHBlY3RlZEhl
aWdodCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRI
ZWlnaHQgKyAiIGZvciBzY3JvbGxIZWlnaHQsIGJ1dCBnb3QgIiArIG5vZGUuc2Nyb2xsSGVpZ2h0
ICsgIi4gIik7CiAgICAgfQogCi0gICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gbm9kZS5nZXRBdHRy
aWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtdG90YWwteCIpOworICAgIHZhciBleHBl
Y3RlZE9mZnNldCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtdG90YWwteCIp
OwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewogICAgICAgICB2YXIgdG90YWxMZWZ0ID0gbm9k
ZS5jbGllbnRMZWZ0ICsgbm9kZS5vZmZzZXRMZWZ0OwogICAgICAgICBpZiAodG90YWxMZWZ0ICE9
IHBhcnNlSW50KGV4cGVjdGVkT2Zmc2V0KSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4
cGVjdGVkICIgKyBleHBlY3RlZE9mZnNldCArICIgZm9yIGNsaWVudExlZnQrb2Zmc2V0TGVmdCwg
YnV0IGdvdCAiICsgdG90YWxMZWZ0ICsgIiwgY2xpZW50TGVmdDogIiArIG5vZGUuY2xpZW50TGVm
dCArICIsIG9mZnNldExlZnQ6ICIgKyBub2RlLm9mZnNldExlZnQgKyAiLiAiKTsKICAgICB9CiAK
LSAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0
dHJpYnV0ZSgiZGF0YS10b3RhbC15Iik7CisgICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gY2hlY2tB
dHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS10b3RhbC15Iik7CiAgICAgaWYgKGV4cGVjdGVk
T2Zmc2V0KSB7CiAgICAgICAgIHZhciB0b3RhbFRvcCA9IG5vZGUuY2xpZW50VG9wICsgbm9kZS5v
ZmZzZXRUb3A7CiAgICAgICAgIGlmICh0b3RhbFRvcCAhPSBwYXJzZUludChleHBlY3RlZE9mZnNl
dCkpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRPZmZz
ZXQgKyAiIGZvciBjbGllbnRUb3Arb2Zmc2V0VG9wLCBidXQgZ290ICIgKyB0b3RhbFRvcCArICIs
IGNsaWVudFRvcDogIiArIG5vZGUuY2xpZW50VG9wICsgIiwgKyBvZmZzZXRUb3A6ICIgKyBub2Rl
Lm9mZnNldFRvcCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZERpc3BsYXkgPSBu
b2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1kaXNw
bGF5Iik7CisgICAgdmFyIGV4cGVjdGVkRGlzcGxheSA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwg
bm9kZSwgImRhdGEtZXhwZWN0ZWQtZGlzcGxheSIpOwogICAgIGlmIChleHBlY3RlZERpc3BsYXkp
IHsKICAgICAgICAgdmFyIGFjdHVhbERpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmRp
c3BsYXk7CiAgICAgICAgIGlmIChhY3R1YWxEaXNwbGF5ICE9IGV4cGVjdGVkRGlzcGxheSkKICAg
ICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZERpc3BsYXkgKyAi
IGZvciBkaXNwbGF5LCBidXQgZ290ICIgKyBhY3R1YWxEaXNwbGF5ICsgIi4gIik7CiAgICAgfQog
Ci0gICAgdmFyIGV4cGVjdGVkUGFkZGluZ1RvcCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUu
Z2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBhZGRpbmctdG9wIik7CisgICAgdmFyIGV4cGVj
dGVkUGFkZGluZ1RvcCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0
ZWQtcGFkZGluZy10b3AiKTsKICAgICBpZiAoZXhwZWN0ZWRQYWRkaW5nVG9wKSB7CiAgICAgICAg
IHZhciBhY3R1YWxQYWRkaW5nVG9wID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5wYWRkaW5nVG9w
OwogICAgICAgICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgpAQCAtMTA0
LDcgKzExMyw3IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMp
CiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRQYWRkaW5n
VG9wICsgIiBmb3IgcGFkZGluZy10b3AsIGJ1dCBnb3QgIiArIGFjdHVhbFBhZGRpbmdUb3AgKyAi
LiAiKTsKICAgICB9CiAKLSAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nQm90dG9tID0gbm9kZS5nZXRB
dHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtcGFkZGluZy1ib3R0
b20iKTsKKyAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nQm90dG9tID0gY2hlY2tBdHRyaWJ1dGUob3V0
cHV0LCBub2RlLCAiZGF0YS1leHBlY3RlZC1wYWRkaW5nLWJvdHRvbSIpOwogICAgIGlmIChleHBl
Y3RlZFBhZGRpbmdCb3R0b20pIHsKICAgICAgICAgdmFyIGFjdHVhbFBhZGRpbmdCb3R0b20gPSBn
ZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRpbmdCb3R0b207CiAgICAgICAgIC8vIFRyaW0gdGhl
IHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCkBAIC0xMTMsNyArMTIyLDcgQEAgZnVuY3Rpb24g
Y2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1cmVz
LnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFBhZGRpbmdCb3R0b20gKyAiIGZvciBwYWRkaW5n
LWJvdHRvbSwgYnV0IGdvdCAiICsgYWN0dWFsUGFkZGluZ0JvdHRvbSArICIuICIpOwogICAgIH0K
IAotICAgIHZhciBleHBlY3RlZFBhZGRpbmdMZWZ0ID0gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9k
ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0Iik7CisgICAgdmFyIGV4
cGVjdGVkUGFkZGluZ0xlZnQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4
cGVjdGVkLXBhZGRpbmctbGVmdCIpOwogICAgIGlmIChleHBlY3RlZFBhZGRpbmdMZWZ0KSB7CiAg
ICAgICAgIHZhciBhY3R1YWxQYWRkaW5nTGVmdCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkucGFk
ZGluZ0xlZnQ7CiAgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQu
CkBAIC0xMjIsNyArMTMxLDcgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2RlLCBm
YWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3Rl
ZFBhZGRpbmdMZWZ0ICsgIiBmb3IgcGFkZGluZy1sZWZ0LCBidXQgZ290ICIgKyBhY3R1YWxQYWRk
aW5nTGVmdCArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3RlZFBhZGRpbmdSaWdodCA9
IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBh
ZGRpbmctcmlnaHQiKTsKKyAgICB2YXIgZXhwZWN0ZWRQYWRkaW5nUmlnaHQgPSBjaGVja0F0dHJp
YnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLXBhZGRpbmctcmlnaHQiKTsKICAgICBp
ZiAoZXhwZWN0ZWRQYWRkaW5nUmlnaHQpIHsKICAgICAgICAgdmFyIGFjdHVhbFBhZGRpbmdSaWdo
dCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ1JpZ2h0OwogICAgICAgICAvLyBUcmlt
IHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgpAQCAtMTMxLDcgKzE0MCw3IEBAIGZ1bmN0
aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFpbHVyZXMpCiAgICAgICAgICAgICBmYWls
dXJlcy5wdXNoKCJFeHBlY3RlZCAiICsgZXhwZWN0ZWRQYWRkaW5nUmlnaHQgKyAiIGZvciBwYWRk
aW5nLXJpZ2h0LCBidXQgZ290ICIgKyBhY3R1YWxQYWRkaW5nUmlnaHQgKyAiLiAiKTsKICAgICB9
CiAKLSAgICB2YXIgZXhwZWN0ZWRNYXJnaW5Ub3AgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2Rl
LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1tYXJnaW4tdG9wIik7CisgICAgdmFyIGV4cGVj
dGVkTWFyZ2luVG9wID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS1leHBlY3Rl
ZC1tYXJnaW4tdG9wIik7CiAgICAgaWYgKGV4cGVjdGVkTWFyZ2luVG9wKSB7CiAgICAgICAgIHZh
ciBhY3R1YWxNYXJnaW5Ub3AgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLm1hcmdpblRvcDsKICAg
ICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTE0MCw3ICsx
NDksNyBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAg
ICAgICAgICAgZmFpbHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkTWFyZ2luVG9wICsg
IiBmb3IgbWFyZ2luLXRvcCwgYnV0IGdvdCAiICsgYWN0dWFsTWFyZ2luVG9wICsgIi4gIik7CiAg
ICAgfQogCi0gICAgdmFyIGV4cGVjdGVkTWFyZ2luQm90dG9tID0gbm9kZS5nZXRBdHRyaWJ1dGUg
JiYgbm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbSIpOworICAg
IHZhciBleHBlY3RlZE1hcmdpbkJvdHRvbSA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwg
ImRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbSIpOwogICAgIGlmIChleHBlY3RlZE1hcmdpbkJv
dHRvbSkgewogICAgICAgICB2YXIgYWN0dWFsTWFyZ2luQm90dG9tID0gZ2V0Q29tcHV0ZWRTdHls
ZShub2RlKS5tYXJnaW5Cb3R0b207CiAgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9t
IHRoZSBvdXRwdXQuCkBAIC0xNDksNyArMTU4LDcgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZh
bHVlcyhub2RlLCBmYWlsdXJlcykKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVk
ICIgKyBleHBlY3RlZE1hcmdpbkJvdHRvbSArICIgZm9yIG1hcmdpbi1ib3R0b20sIGJ1dCBnb3Qg
IiArIGFjdHVhbE1hcmdpbkJvdHRvbSArICIuICIpOwogICAgIH0KIAotICAgIHZhciBleHBlY3Rl
ZE1hcmdpbkxlZnQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0
YS1leHBlY3RlZC1tYXJnaW4tbGVmdCIpOworICAgIHZhciBleHBlY3RlZE1hcmdpbkxlZnQgPSBj
aGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLW1hcmdpbi1sZWZ0Iik7
CiAgICAgaWYgKGV4cGVjdGVkTWFyZ2luTGVmdCkgewogICAgICAgICB2YXIgYWN0dWFsTWFyZ2lu
TGVmdCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkubWFyZ2luTGVmdDsKICAgICAgICAgLy8gVHJp
bSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAgLTE1OCw3ICsxNjcsNyBAQCBmdW5j
dGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1cmVzKQogICAgICAgICAgICAgZmFp
bHVyZXMucHVzaCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkTWFyZ2luTGVmdCArICIgZm9yIG1hcmdp
bi1sZWZ0LCBidXQgZ290ICIgKyBhY3R1YWxNYXJnaW5MZWZ0ICsgIi4gIik7CiAgICAgfQogCi0g
ICAgdmFyIGV4cGVjdGVkTWFyZ2luUmlnaHQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdl
dEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQiKTsKKyAgICB2YXIgZXhwZWN0
ZWRNYXJnaW5SaWdodCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtZXhwZWN0
ZWQtbWFyZ2luLXJpZ2h0Iik7CiAgICAgaWYgKGV4cGVjdGVkTWFyZ2luUmlnaHQpIHsKICAgICAg
ICAgdmFyIGFjdHVhbE1hcmdpblJpZ2h0ID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5tYXJnaW5S
aWdodDsKICAgICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgiIGZyb20gdGhlIG91dHB1dC4KQEAg
LTE2Niw2ICsxNzUsOCBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUsIGZhaWx1
cmVzKQogICAgICAgICBpZiAoYWN0dWFsTWFyZ2luUmlnaHQgIT0gZXhwZWN0ZWRNYXJnaW5SaWdo
dCkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE1hcmdp
blJpZ2h0ICsgIiBmb3IgbWFyZ2luLXJpZ2h0LCBidXQgZ290ICIgKyBhY3R1YWxNYXJnaW5SaWdo
dCArICIuICIpOwogICAgIH0KKworICAgIHJldHVybiBvdXRwdXQuY2hlY2tlZDsKIH0KIAogd2lu
ZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24oc2VsZWN0b3JMaXN0KQpAQCAtMTc3LDEwICsxODgs
MTEgQEAgd2luZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24oc2VsZWN0b3JMaXN0KQogICAgIHZh
ciBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3JMaXN0KTsKICAgICBu
b2RlcyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5vZGVzKTsKICAgICBub2Rlcy5yZXZl
cnNlKCk7CisgICAgdmFyIGNoZWNrZWRMYXlvdXQgPSBmYWxzZTsKICAgICBBcnJheS5wcm90b3R5
cGUuZm9yRWFjaC5jYWxsKG5vZGVzLCBmdW5jdGlvbihub2RlKSB7CiAgICAgICAgIHZhciBmYWls
dXJlcyA9IFtdOwotICAgICAgICBjaGVja0V4cGVjdGVkVmFsdWVzKG5vZGUucGFyZW50Tm9kZSwg
ZmFpbHVyZXMpOwotICAgICAgICBjaGVja1N1YnRyZWVFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWls
dXJlcyk7CisgICAgICAgIGNoZWNrZWRMYXlvdXQgfD0gY2hlY2tFeHBlY3RlZFZhbHVlcyhub2Rl
LnBhcmVudE5vZGUsIGZhaWx1cmVzKTsKKyAgICAgICAgY2hlY2tlZExheW91dCB8PSBjaGVja1N1
YnRyZWVFeHBlY3RlZFZhbHVlcyhub2RlLCBmYWlsdXJlcyk7CiAKICAgICAgICAgdmFyIGNvbnRh
aW5lciA9IG5vZGUucGFyZW50Tm9kZS5jbGFzc05hbWUgPT0gJ2NvbnRhaW5lcicgPyBub2RlLnBh
cmVudE5vZGUgOiBub2RlOwogCkBAIC0xOTAsNiArMjAyLDEyIEBAIHdpbmRvdy5jaGVja0xheW91
dCA9IGZ1bmN0aW9uKHNlbGVjdG9yTGlzdCkKICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKGZhaWx1cmVzLmxlbmd0aCA/ICJGQUlMOlxuIiArIGZhaWx1cmVz
LmpvaW4oJ1xuJykgKyAnXG5cbicgKyBjb250YWluZXIub3V0ZXJIVE1MIDogIlBBU1MiKSk7CiAg
ICAgICAgIGluc2VydEFmdGVyKHByZSwgY29udGFpbmVyKTsKICAgICB9KTsKKworICAgIGlmICgh
Y2hlY2tlZExheW91dCkgeworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJGQUlM
OiBObyB2YWxpZCBkYXRhLSogYXR0cmlidXRlcyBmb3VuZCBpbiBzZWxlY3RvciBsaXN0IDogIiAr
IHNlbGVjdG9yTGlzdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHZhciBwcmUgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuRkFJTCcpOwogICAgIGlmIChwcmUpCiAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IHByZS5wcmV2aW91c1NpYmxpbmcuc2Nyb2xsSW50b1ZpZXco
KTsgfSwgMCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>