<?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>106491</bug_id>
          
          <creation_ts>2013-01-09 14:44:09 -0800</creation_ts>
          <short_desc>Template element should parse in XHTML just as it does in HTML</short_desc>
          <delta_ts>2013-01-23 18:33:09 -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>DOM</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103547</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rafaelw</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>803724</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-09 14:44:09 -0800</bug_when>
    <thetext>See https://www.w3.org/Bugs/Public/show_bug.cgi?id=19889.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803727</commentid>
    <comment_count>1</comment_count>
      <attachid>181986</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-09 14:45:40 -0800</bug_when>
    <thetext>Created attachment 181986
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804705</commentid>
    <comment_count>2</comment_count>
      <attachid>182202</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-10 14:01:40 -0800</bug_when>
    <thetext>Created attachment 182202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804771</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-01-10 15:14:27 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=182202) [details]
&gt; Patch

Seems like you probably want to merge this with my patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805509</commentid>
    <comment_count>4</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-11 12:16:14 -0800</bug_when>
    <thetext>*** Bug 106599 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805721</commentid>
    <comment_count>5</comment_count>
      <attachid>182442</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-11 16:09:43 -0800</bug_when>
    <thetext>Created attachment 182442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805723</commentid>
    <comment_count>6</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-11 16:10:13 -0800</bug_when>
    <thetext>This is now ready for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805769</commentid>
    <comment_count>7</comment_count>
      <attachid>182442</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-11 17:21:06 -0800</bug_when>
    <thetext>Comment on attachment 182442
Patch

Attachment 182442 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15822111

New failing tests:
fast/xsl/xslt-xhtml-template.xml
fast/xpath/xpath-template-element.html
fast/xsl/xslt-processor-template.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806829</commentid>
    <comment_count>8</comment_count>
      <attachid>182669</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-14 17:42:03 -0800</bug_when>
    <thetext>Created attachment 182669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807545</commentid>
    <comment_count>9</comment_count>
      <attachid>182669</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-15 12:08:26 -0800</bug_when>
    <thetext>Comment on attachment 182669
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +

Can we have a spec URL?

&gt; Source/WebCore/ChangeLog:20
&gt; +        * xml/parser/XMLDocumentParserLibxml2.cpp:

No changes to Qt&apos;s XML parser?

&gt; LayoutTests/fast/xsl/xslt-processor-template-expected.txt:1
&gt; +Body divs: CD, Template content divs: AB

This output doesn&apos;t help us understand what this test is testing.
e.g. I can&apos;t tell whether this test is passing or failing without having to read the test code.
Please add a description.

&gt; LayoutTests/fast/xsl/xslt-xhtml-template-expected.txt:3
&gt; +C
&gt; +D
&gt; +Body divs: CD, Template content divs: AB

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808820</commentid>
    <comment_count>10</comment_count>
      <attachid>182669</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-16 16:14:44 -0800</bug_when>
    <thetext>Comment on attachment 182669
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +
&gt; 
&gt; Can we have a spec URL?

done

&gt;&gt; Source/WebCore/ChangeLog:20
&gt;&gt; +        * xml/parser/XMLDocumentParserLibxml2.cpp:
&gt; 
&gt; No changes to Qt&apos;s XML parser?

It&apos;d prefer not to mess with Qt&apos;s XML parser, especially since this feature is only enabled for the chromium port. I can open a bug against the template element meta bug to fix the Qt XML parser, if you think that&apos;s appropriate.

&gt;&gt; LayoutTests/fast/xsl/xslt-processor-template-expected.txt:1
&gt;&gt; +Body divs: CD, Template content divs: AB
&gt; 
&gt; This output doesn&apos;t help us understand what this test is testing.
&gt; e.g. I can&apos;t tell whether this test is passing or failing without having to read the test code.
&gt; Please add a description.

done

&gt;&gt; LayoutTests/fast/xsl/xslt-xhtml-template-expected.txt:3
&gt;&gt; +Body divs: CD, Template content divs: AB
&gt; 
&gt; Ditto.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808821</commentid>
    <comment_count>11</comment_count>
      <attachid>183056</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-16 16:15:22 -0800</bug_when>
    <thetext>Created attachment 183056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810883</commentid>
    <comment_count>12</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-18 11:32:37 -0800</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810911</commentid>
    <comment_count>13</comment_count>
      <attachid>183056</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-18 12:04:48 -0800</bug_when>
    <thetext>Comment on attachment 183056
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#parsing-xhtml-documents.

It&apos;ll be better to refer to a specific revision of the spec. you&apos;re implementing so that we know which revision of the spec you implemented in this patch should the spec change in the future.

&gt; Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:792
&gt; -    RefPtr&lt;Element&gt; newElement = document()-&gt;createElement(qName, true);
&gt; +    RefPtr&lt;Element&gt; newElement = m_currentNode-&gt;document()-&gt;createElement(qName, true);

There are a lot more places where document() is referenced like when we instantiate XMLDocumentParserScope in XMLDocumentParser::doWrite or when we call executeScript in XMLDocumentParser::endElementNs. It know we don&apos;t need to access document() through m_currentNode in those cases but it might be better that way for simplicity.

Also, I suppose you can&apos;t have DOCTYPE inside a template element?

&gt; Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:826
&gt; +        pushCurrentNode(newElement.get());

Why don&apos;t we just leave it here instead of repeating the same statement twice.

&gt; LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization.xml:15
&gt; +if (window.testRunner) {
&gt; +    testRunner.dumpAsText();
&gt; +}

Nit: No curly brackets around a single statement.

&gt; LayoutTests/fast/xpath/xpath-template-element-expected.txt:3
&gt; +A B

It might be better to hide these once the test had ran in DRT/WTR.

&gt; LayoutTests/fast/xsl/xslt-processor-template-expected.txt:1
&gt; +This tests that XSLT transforms can traverse into XHTML template element content when applying XSL template. If the test succeeds, the transform will have swapped the position of the body spans (A and B) with the template content spans (C and D) and replaced the spans with divs.

This is an interesting behavior. I didn&apos;t expect XSLT to work inside the template. It might be worth mentioning it in the change log
and/or refer to the part of the specification where this behavior is mandated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813546</commentid>
    <comment_count>14</comment_count>
      <attachid>183056</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-22 16:37:33 -0800</bug_when>
    <thetext>Comment on attachment 183056
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#parsing-xhtml-documents.
&gt; 
&gt; It&apos;ll be better to refer to a specific revision of the spec. you&apos;re implementing so that we know which revision of the spec you implemented in this patch should the spec change in the future.

done

&gt;&gt; Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:792
&gt;&gt; +    RefPtr&lt;Element&gt; newElement = m_currentNode-&gt;document()-&gt;createElement(qName, true);
&gt; 
&gt; There are a lot more places where document() is referenced like when we instantiate XMLDocumentParserScope in XMLDocumentParser::doWrite or when we call executeScript in XMLDocumentParser::endElementNs. It know we don&apos;t need to access document() through m_currentNode in those cases but it might be better that way for simplicity.
&gt; 
&gt; Also, I suppose you can&apos;t have DOCTYPE inside a template element?

Changing how we access document() everywhere seems wrong. And no, DOCTYPE is ignored inside template.

&gt;&gt; Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:826
&gt;&gt; +        pushCurrentNode(newElement.get());
&gt; 
&gt; Why don&apos;t we just leave it here instead of repeating the same statement twice.

Done

&gt;&gt; LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization.xml:15
&gt;&gt; +}
&gt; 
&gt; Nit: No curly brackets around a single statement.

done

&gt;&gt; LayoutTests/fast/xsl/xslt-processor-template-expected.txt:1
&gt;&gt; +This tests that XSLT transforms can traverse into XHTML template element content when applying XSL template. If the test succeeds, the transform will have swapped the position of the body spans (A and B) with the template content spans (C and D) and replaced the spans with divs.
&gt; 
&gt; This is an interesting behavior. I didn&apos;t expect XSLT to work inside the template. It might be worth mentioning it in the change log
&gt; and/or refer to the part of the specification where this behavior is mandated.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813548</commentid>
    <comment_count>15</comment_count>
      <attachid>184073</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-22 16:38:40 -0800</bug_when>
    <thetext>Created attachment 184073
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813569</commentid>
    <comment_count>16</comment_count>
      <attachid>184073</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 16:56:03 -0800</bug_when>
    <thetext>Comment on attachment 184073
Patch for landing

Rejecting attachment 184073 from commit-queue.

New failing tests:
css2.1/20110323/background-intrinsic-004.htm
css2.1/20110323/background-intrinsic-006.htm
css2.1/20110323/replaced-intrinsic-ratio-001.htm
css3/selectors3/xhtml/css3-modsel-5.xml
css2.1/20110323/background-intrinsic-005.htm
compositing/images/direct-svg-image.html
css3/images/cross-fade-overflow-position.html
css2.1/20110323/replaced-intrinsic-002.htm
css3/filters/effect-reference-external.html
css3/selectors3/xhtml/css3-modsel-7.xml
css3/selectors3/xhtml/css3-modsel-4.xml
css2.1/20110323/replaced-intrinsic-005.htm
css3/selectors3/xhtml/css3-modsel-1.xml
css2.1/20110323/replaced-intrinsic-004.htm
accessibility/svg-remote-element.html
css2.1/20110323/background-intrinsic-002.htm
css3/selectors3/xhtml/css3-modsel-2.xml
css2.1/20110323/background-intrinsic-007.htm
animations/suspend-resume-animation-events.html
css2.1/20110323/background-intrinsic-009.htm
css2.1/20110323/replaced-intrinsic-003.htm
css2.1/20110323/background-intrinsic-001.htm
css3/zoom-coords.xhtml
css2.1/20110323/replaced-intrinsic-001.htm
css2.1/20110323/background-intrinsic-008.htm
css3/selectors3/xhtml/css3-modsel-3a.xml
css3/selectors3/xhtml/css3-modsel-3.xml
css3/selectors3/xhtml/css3-modsel-6.xml
http/tests/inspector/resource-parameters.html
css2.1/20110323/background-intrinsic-003.htm
Full output: http://queues.webkit.org/results/16033918</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814784</commentid>
    <comment_count>17</comment_count>
      <attachid>184073</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 16:18:00 -0800</bug_when>
    <thetext>Comment on attachment 184073
Patch for landing

Attachment 184073 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16079389

New failing tests:
css2.1/20110323/background-intrinsic-004.htm
css3/selectors3/xhtml/css3-modsel-7.xml
css2.1/20110323/replaced-intrinsic-ratio-001.htm
css3/selectors3/xhtml/css3-modsel-5.xml
css2.1/20110323/background-intrinsic-005.htm
compositing/images/direct-svg-image.html
http/tests/eventsource/eventsource-cors-with-credentials.html
css3/images/cross-fade-overflow-position.html
css2.1/20110323/replaced-intrinsic-002.htm
css3/filters/effect-reference-external.html
css3/selectors3/xhtml/css3-modsel-4.xml
css2.1/20110323/replaced-intrinsic-005.htm
css3/selectors3/xhtml/css3-modsel-1.xml
css2.1/20110323/replaced-intrinsic-004.htm
accessibility/svg-remote-element.html
css2.1/20110323/background-intrinsic-002.htm
css3/selectors3/xhtml/css3-modsel-2.xml
css2.1/20110323/background-intrinsic-007.htm
css2.1/20110323/background-intrinsic-009.htm
css2.1/20110323/background-intrinsic-001.htm
css2.1/20110323/background-intrinsic-006.htm
css3/zoom-coords.xhtml
css2.1/20110323/replaced-intrinsic-001.htm
css2.1/20110323/replaced-intrinsic-003.htm
css2.1/20110323/background-intrinsic-008.htm
css3/selectors3/xhtml/css3-modsel-3a.xml
css3/selectors3/xhtml/css3-modsel-3.xml
css3/selectors3/xhtml/css3-modsel-6.xml
http/tests/inspector/resource-parameters.html
css2.1/20110323/background-intrinsic-003.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814832</commentid>
    <comment_count>18</comment_count>
      <attachid>184348</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2013-01-23 16:49:59 -0800</bug_when>
    <thetext>Created attachment 184348
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814936</commentid>
    <comment_count>19</comment_count>
      <attachid>184348</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 18:33:04 -0800</bug_when>
    <thetext>Comment on attachment 184348
Patch for landing

Clearing flags on attachment: 184348

Committed r140631: &lt;http://trac.webkit.org/changeset/140631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814937</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 18:33:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181986</attachid>
            <date>2013-01-09 14:45:40 -0800</date>
            <delta_ts>2013-01-10 14:01:39 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-106491-20130109144243.patch</filename>
            <type>text/plain</type>
            <size>4425</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI5ZjUyZDhiYWIxOThk
YzZkOTYwMjMxYWQxZGVhYmI5MDA5MWQ4OC4uMzQwNzAxOTljOTVjZWQ3NmJhYjMzZWEyODExMWRh
YjFhYjFkNWZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTA5ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRlbXBsYXRlIGVsZW1lbnQg
c2hvdWxkIHBhcnNlIGluIFhIVE1MIGp1c3QgYXMgaXQgZG9lcyBpbiBIVE1MCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY0OTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXT1JLIElOIFBST0dSRVNTCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2Vy
OjplbnRlclRleHQpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4
bWwyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1l
bnROcyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc2luZ0lu
c3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjZGF0YUJs
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjb21tZW50KToKKwog
MjAxMy0wMS0wOSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMTExNDM5KTogRm9jdXMgcmluZyBpcyByZW5kZXJlZCBpbmNvcnJlY3RseSBp
biBmYXN0L2lubGluZS9jb250aW51YXRpb24tb3V0bGluZXMtd2l0aC1sYXllcnMuaHRtbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA2
YjhhMGFiZmJiMGQxZjhjMDMwOWJjM2YwNTNlOWZmNjhiNDVkZjZiLi5jZmUzY2QzMDdiMTE3YWRl
ZmVmMjY4NDA3MGE0NDRlMDJjZTg5MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6OmVudGVyVGV4dCgpCiAgICAgQVNTRVJUKG1fYnVmZmVyZWRUZXh0LnNpemUo
KSA9PSAwKTsKICNlbmRpZgogICAgIEFTU0VSVCghbV9sZWFmVGV4dE5vZGUpOwotICAgIG1fbGVh
ZlRleHROb2RlID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksICIiKTsKKyAgICBtX2xlYWZUZXh0
Tm9kZSA9IFRleHQ6OmNyZWF0ZShtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLCAiIik7CiAgICAg
bV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobV9sZWFmVGV4dE5vZGUuZ2V0KCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAKaW5kZXggNzhiODA2ZDVhYTdhMTE2YjM3YjU3YWQ0MTdlOTcxNjVkYmM5
NzM2MC4uZWNjMDEwMjc2M2IyZDJlNDAyN2M5MDBhNzUyNGFiYzMwMDYzMmMwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlLmgiCkBAIC03ODgsNyArNzg5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRF
bGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKICAgICBt
X3Nhd0ZpcnN0RWxlbWVudCA9IHRydWU7CiAKICAgICBRdWFsaWZpZWROYW1lIHFOYW1lKHByZWZp
eCwgbG9jYWxOYW1lLCB1cmkpOwotICAgIFJlZlB0cjxFbGVtZW50PiBuZXdFbGVtZW50ID0gZG9j
dW1lbnQoKS0+Y3JlYXRlRWxlbWVudChxTmFtZSwgdHJ1ZSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+
IG5ld0VsZW1lbnQgPSBtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHFO
YW1lLCB0cnVlKTsKICAgICBpZiAoIW5ld0VsZW1lbnQpIHsKICAgICAgICAgc3RvcFBhcnNpbmco
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtODE4LDcgKzgxOSwxNSBAQCB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0
IHhtbENoYQogCiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3RWxlbWVu
dC5nZXQoKSk7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBpZiAobmV3RWxl
bWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRlbXBsYXRlVGFnKSkKKyAgICAgICAgcHVzaEN1
cnJlbnROb2RlKHRvSFRNTFRlbXBsYXRlRWxlbWVudChuZXdFbGVtZW50LmdldCgpKS0+Y29udGVu
dCgpKTsKKyAgICBlbHNlCisgICAgICAgIHB1c2hDdXJyZW50Tm9kZShuZXdFbGVtZW50LmdldCgp
KTsKKyNlbHNlCiAgICAgcHVzaEN1cnJlbnROb2RlKG5ld0VsZW1lbnQuZ2V0KCkpOworI2VuZGlm
CisKICAgICBpZiAobV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRhY2hlZCgpKQogICAgICAgICBu
ZXdFbGVtZW50LT5hdHRhY2goKTsKIApAQCAtOTYxLDcgKzk3MCw3IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbihjb25zdCB4bWxDaGFyKiB0YXJnZXQsIGNv
bnN0IHhtbENoCiAKICAgICAvLyAjIyMgaGFuZGxlIGV4Y2VwdGlvbnMKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBwaSA9IGRvY3Vt
ZW50KCktPmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigKKyAgICBSZWZQdHI8UHJvY2Vzc2lu
Z0luc3RydWN0aW9uPiBwaSA9IG1fY3VycmVudE5vZGUtPmRvY3VtZW50KCktPmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigKICAgICAgICAgdG9TdHJpbmcodGFyZ2V0KSwgdG9TdHJpbmcoZGF0
YSksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKQEAgLTk5NSw3ICsxMDA0LDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2RhdGFCbG9jayhjb25zdCB4bWxDaGFyKiBzLCBp
bnQgbGVuKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0cjxDREFUQVNlY3Rpb24+IG5l
d05vZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShkb2N1bWVudCgpLCB0b1N0cmluZyhzLCBsZW4p
KTsKKyAgICBSZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVh
dGUobV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwgdG9TdHJpbmcocywgbGVuKSk7CiAgICAgbV9j
dXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1f
dmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7
CkBAIC0xMDEzLDcgKzEwMjIsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjb21tZW50KGNv
bnN0IHhtbENoYXIqIHMpCiAKICAgICBleGl0VGV4dCgpOwogCi0gICAgUmVmUHRyPENvbW1lbnQ+
IG5ld05vZGUgPSBDb21tZW50OjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJpbmcocykpOworICAg
IFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRlKG1fY3VycmVudE5vZGUt
PmRvY3VtZW50KCksIHRvU3RyaW5nKHMpKTsKICAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBcHBl
bmRDaGlsZChuZXdOb2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRh
Y2hlZCgpKQogICAgICAgICBuZXdOb2RlLT5hdHRhY2goKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182202</attachid>
            <date>2013-01-10 14:01:40 -0800</date>
            <delta_ts>2013-01-10 14:02:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106491-20130110135843.patch</filename>
            <type>text/plain</type>
            <size>6593</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MjU3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZmRiNDJhMWMyOTQ5YTMyOGI3MDkyZWRiNDJjMjEzYWMwOTIxNTFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdHMgdGhhdCBYUGF0aCBleHByZXNzaW9u
cyBkbyBub3QgY29uc2lkZXIgKHRyYXZlcnNlIGludG8pIHRlbXBsYXRlIGNvbnRlbnQKKworQSBC
CitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL3NwYW4pJywgdGVzdCwgbnVsbCwgWFBh
dGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMz
YzlmZjVhMjBlOWVjYjllZGI3ZTI5ODQ2YTQ0MGU3NjI1Mzg0ZTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbApAQCAt
MCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IFhQYXRoIGV4cHJlc3Npb25zIGRvIG5vdCBjb25zaWRl
ciAodHJhdmVyc2UgaW50bykgdGVtcGxhdGUgY29udGVudDwvcD4KKworPGRpdiBpZD10ZXN0Pgor
ICAgIDxzcGFuPkE8L3NwYW4+CisgICAgPHNwYW4+Qjwvc3Bhbj4KKyAgICA8dGVtcGxhdGU+Cisg
ICAgICAgIDxzcGFuPkM8L3NwYW4+CisgICAgICAgIDxzcGFuPkQ8L3NwYW4+CisgICAgPC90ZW1w
bGF0ZT4KKzwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIg
dGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgcmVzdWx0ID0gZG9j
dW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0aFJlc3VsdC5O
VU1CRVJfVFlQRSwgbnVsbCk7CitzaG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8v
c3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVy
VmFsdWUiLCAiMiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3hzbC9yZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNsIGIvTGF5b3V0
VGVzdHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
Nzg1ZmFhMmRiMTk0NzQ1MjE0ZDQ2NmNmMDU1MWFhM2Y3Y2Y4Yjk3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbApAQCAt
MCwwICsxLDQzIEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgICB4bWxuczp4aHRtbD0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIKKyAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCIKKyAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl
bWEiCisgICAgZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM9InhodG1sIHhzbCB4cyI+CisgICAgPHhz
bDpvdXRwdXQgbWV0aG9kPSJ4bWwiIG9taXQteG1sLWRlY2xhcmF0aW9uPSJ5ZXMiLz4KKyAgICA8
eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpodG1sIj4KKyAgICAgICAgPGh0bWw+CisgICAgICAg
ICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICA8dGVtcGxhdGU+CisgICAgICAgICAgICAgICAg
ICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLy94aHRtbDpib2R5L3hodG1sOnNwYW4i
IC8+CisgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAgICAgICAgICA8eHNsOmFw
cGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii8veGh0bWw6dGVtcGxhdGUvL3hodG1sOnNwYW4iIC8+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworCitmdW5jdGlvbiBkaXZDaGlsZFRleHROb2RlcyhwYXJlbnQpIHsKKyAgICB2YXIgb3V0
cHV0ID0gJyc7CisKKyAgICBmb3IgKHZhciBjaGlsZCA9IHBhcmVudC5maXJzdENoaWxkOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykgeworICAgICAgICBpZiAoY2hpbGQudGFnTmFt
ZSA9PSAnZGl2JykgeworICAgICAgICAgICAgb3V0cHV0ICs9IGNoaWxkLnRleHRDb250ZW50Owor
ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG91dHB1dDsKK30KKwordmFyIHNwYW4gPSBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7
CitzcGFuLnRleHRDb250ZW50ID0gJ0JvZHkgZGl2czogJyArIGRpdkNoaWxkVGV4dE5vZGVzKGRv
Y3VtZW50LmJvZHkpOworCitzcGFuID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwordmFyIHRlbXBsYXRlID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndGVtcGxhdGUnKTsKK3NwYW4udGV4dENvbnRlbnQgPSAnLCBUZW1wbGF0ZSBjb250
ZW50IGRpdnM6ICcgKyBkaXZDaGlsZFRleHROb2Rlcyh0ZW1wbGF0ZS5jb250ZW50KTsKKzwvc2Ny
aXB0PgorICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICA8L2h0bWw+CisgICAgPC94c2w6dGVt
cGxhdGU+CisgICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieGh0bWw6c3BhbiI+CisgICAgICAgIDxk
aXY+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRleHQoKSIgLz48L2Rpdj4KKyAgICA8L3hzbDp0ZW1w
bGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZDQ5ZTZlZDI0Mzc0Nzg0ODZlZmQ5NTdhMTc2NTBj
MGYzZTBjYTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXBy
b2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorQm9keSBkaXZzOiBD
RCwgVGVtcGxhdGUgY29udGVudCBkaXZzOiBBQgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QveHNs
L3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg0MDRjNDc4MGE0YWVi
ZTg2NWNhNzVjOGFhM2ZhMjVmY2RjYTUwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAor
PGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKwl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwordmFyIHJl
cXVlc3RlciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwordmFyIHByb2Nlc3NvciA9IG5ldyBYU0xU
UHJvY2Vzc29yKCk7Cit2YXIgc2VyaWFsaXplciA9IG5ldyBYTUxTZXJpYWxpemVyKCk7CisKK2Z1
bmN0aW9uIGdldFhNTERvY3VtZW50KG5hbWUpCit7CisJcmVxdWVzdGVyLm9wZW4oIkdFVCIsIG5h
bWUsIGZhbHNlKTsKKwlyZXF1ZXN0ZXIuc2VuZChudWxsKTsKKwlyZXR1cm4gcmVxdWVzdGVyLnJl
c3BvbnNlWE1MOworfQorCitmdW5jdGlvbiBhZGRTdHJpbmdSZXN1bHQodGV4dCkKK3sKKwlkb2N1
bWVudC53cml0ZWxuKCI8c3Bhbj4iICsgdGV4dCArICI8L3NwYW4+Iik7Cit9CisKK2Z1bmN0aW9u
IGRpdkNoaWxkVGV4dE5vZGVzKHBhcmVudCkgeworICAgIHZhciBvdXRwdXQgPSAnJzsKKworICAg
IGZvciAodmFyIGNoaWxkID0gcGFyZW50LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
Lm5leHRTaWJsaW5nKSB7CisgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09ICdkaXYnKSB7Cisg
ICAgICAgICAgICBvdXRwdXQgKz0gY2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICByZXR1cm4gb3V0cHV0OworfQorCit2YXIgeG1sID0gZ2V0WE1MRG9jdW1lbnQoInhz
bHQteGh0bWwtdGVtcGxhdGUueG1sIik7Cit2YXIgeHNsID0gZ2V0WE1MRG9jdW1lbnQoInJlc291
cmNlcy94aHRtbC10ZW1wbGF0ZS54c2wiKTsKKworcHJvY2Vzc29yLmltcG9ydFN0eWxlc2hlZXQo
eHNsKTsKKwordmFyIG93bmVyRG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudCgiIiwgInRlc3QiLCBudWxsKTsKK3ZhciBmcmFnID0gcHJvY2Vzc29yLnRyYW5z
Zm9ybVRvRnJhZ21lbnQoeG1sLCBvd25lckRvY3VtZW50KTsKKworYWRkU3RyaW5nUmVzdWx0KCdC
b2R5IGRpdnM6ICcgKyBkaXZDaGlsZFRleHROb2RlcyhmcmFnLnF1ZXJ5U2VsZWN0b3IoJ2JvZHkn
KSkgKyAKKyAgICAgICAgICAgICAgICAnLCBUZW1wbGF0ZSBjb250ZW50IGRpdnM6ICcgKyBkaXZD
aGlsZFRleHROb2RlcyhmcmFnLnF1ZXJ5U2VsZWN0b3IoJ3RlbXBsYXRlJykuY29udGVudCkpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NTRhMDk4NGNhODRkMGQxZDZjODYyM2U1ZTljMzExZTYy
ZjA2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXhodG1s
LXRlbXBsYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0MKK0QKK0JvZHkgZGl2czog
Q0QsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogQUIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNs
dC14aHRtbC10ZW1wbGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxZDcyYmMyZTAyMWEwYjNmYjA1MTRl
MDVmOTQ1MWYyNDA3ZTE2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHNs
L3hzbHQteGh0bWwtdGVtcGxhdGUueG1sCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8P3htbC1zdHlsZXNoZWV0IGhyZWY9InJlc291cmNl
cy94aHRtbC10ZW1wbGF0ZS54c2wiIHR5cGU9InRleHQveHNsIj8+CisKKzwhRE9DVFlQRSBodG1s
IAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICAi
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CisKKzxo
dG1sIHhtbDpsYW5nPSJlbi11cyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorICAgIDxib2R5PgorICAgICAgICA8c3Bhbj5BPC9zcGFuPgorICAgICAgICA8c3Bhbj5CPC9z
cGFuPgorICAgICAgICA8dGVtcGxhdGU+CisgICAgICAgICAgICA8c3Bhbj5DPC9zcGFuPgorICAg
ICAgICAgICAgPHNwYW4+RDwvc3Bhbj4KKyAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182442</attachid>
            <date>2013-01-11 16:09:43 -0800</date>
            <delta_ts>2013-01-14 17:42:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106491-20130111160645.patch</filename>
            <type>text/plain</type>
            <size>14893</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg1N2QyOGVjZGZkZjM2
ZjkwMTMwMWZmZDU1MjU2NDI1OThhZDEyNS4uMTRlZTBiMzRmMTUwZmQ4NDU3ZTQ1NDI0NThlMTJj
OTEzMTNhZTc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEzLTAxLTExICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgVGVtcGxhdGUg
ZWxlbWVudCBzaG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW9kaWZpZXMgdGhlIFhNTCBwYXJzZXIgaW4gdHdvIHdheXM6ICgxKSB3aGVuIG5vZGVzIGFyZSBj
cmVhdGVkLCB0aGVpciBvd25lciBkb2N1bWVudCBpcworICAgICAgICB0aGUgb3duZXIgZG9jdW1l
bnQgb2YgdGhlIGN1cnJlbnQgbm9kZSwgcmF0aGVyIHRoYW4gdGhlIGNvbnRhaW5pbmcgZG9jdW1l
bnQsIGFuZCAoMikgd2hlbiBhbiBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGlzIGVuY291
bnRlcmVkLCBpdHMgY29udGVudCBkb2N1bWVudCBmcmFnbWVudCBpcyBwdXNoZWQgb250byB0aGUg
c3RhY2ssIHJhdGhlciB0aGFuIHRoZSBlbGVtZW50IGl0c2VsZiwgc28gdGhhdCBjaGlsZHJlbgor
ICAgICAgICBhcmUgYXBwZW5kZWQgdG8gdGhlIHRlbXBsYXRlIGNvbnRlbnQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2luZy1hbmQtc2Vy
aWFsaXphdGlvbi54bWwKKyAgICAgICAgICAgICAgIGZhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUt
ZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1w
bGF0ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnht
bAorCisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW50ZXJUZXh0KToKKyAgICAgICAgKiB4bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
RG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6Y2RhdGFCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6Y29tbWVudCk6CisKKzIwMTMtMDEtMTEgIFJhZmFlbCBXZWluc3RlaW4g
IDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKwogICAgICAgICBQcmV2ZW50IEhUTUxQcmVsb2FkU2Nh
bm5lciBmcm9tIGZldGNoaW5nIHJlc291cmNlcyBpbnNpZGUgPHRlbXBsYXRlPgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Njg3CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNmI4YTBh
YmZiYjBkMWY4YzAzMDliYzNmMDUzZTlmZjY4YjQ1ZGY2Yi4uY2ZlM2NkMzA3YjExN2FkZWZlZjI2
ODQwNzBhNDQ0ZTAyY2U4OTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjplbnRlclRleHQoKQogICAgIEFTU0VSVChtX2J1ZmZlcmVkVGV4dC5zaXplKCkgPT0g
MCk7CiAjZW5kaWYKICAgICBBU1NFUlQoIW1fbGVhZlRleHROb2RlKTsKLSAgICBtX2xlYWZUZXh0
Tm9kZSA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCAiIik7CisgICAgbV9sZWFmVGV4dE5vZGUg
PSBUZXh0OjpjcmVhdGUobV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwgIiIpOwogICAgIG1fY3Vy
cmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG1fbGVhZlRleHROb2RlLmdldCgpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwCmluZGV4IDc4YjgwNmQ1YWE3YTExNmIzN2I1N2FkNDE3ZTk3MTY1ZGJjOTczNjAu
LmVjYzAxMDI3NjNiMmQyZTQwMjdjOTAwYTc1MjRhYmMzMDA2MzJjMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAK
QEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgpAQCAtNzg4LDcgKzc4OSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVu
dE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhCiAgICAgbV9zYXdG
aXJzdEVsZW1lbnQgPSB0cnVlOwogCiAgICAgUXVhbGlmaWVkTmFtZSBxTmFtZShwcmVmaXgsIGxv
Y2FsTmFtZSwgdXJpKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQocU5hbWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBuZXdF
bGVtZW50ID0gbV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChxTmFtZSwg
dHJ1ZSk7CiAgICAgaWYgKCFuZXdFbGVtZW50KSB7CiAgICAgICAgIHN0b3BQYXJzaW5nKCk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTgxOCw3ICs4MTksMTUgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNl
cjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxD
aGEKIAogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQuZ2V0
KCkpOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKG5ld0VsZW1lbnQt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0ZW1wbGF0ZVRhZykpCisgICAgICAgIHB1c2hDdXJyZW50
Tm9kZSh0b0hUTUxUZW1wbGF0ZUVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSktPmNvbnRlbnQoKSk7
CisgICAgZWxzZQorICAgICAgICBwdXNoQ3VycmVudE5vZGUobmV3RWxlbWVudC5nZXQoKSk7Cisj
ZWxzZQogICAgIHB1c2hDdXJyZW50Tm9kZShuZXdFbGVtZW50LmdldCgpKTsKKyNlbmRpZgorCiAg
ICAgaWYgKG1fdmlldyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxl
bWVudC0+YXR0YWNoKCk7CiAKQEAgLTk2MSw3ICs5NzAsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29uc3QgeG1sQ2hhciogdGFyZ2V0LCBjb25zdCB4
bWxDaAogCiAgICAgLy8gIyMjIGhhbmRsZSBleGNlcHRpb25zCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gcGkgPSBkb2N1bWVudCgp
LT5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oCisgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0
cnVjdGlvbj4gcGkgPSBtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLT5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oCiAgICAgICAgIHRvU3RyaW5nKHRhcmdldCksIHRvU3RyaW5nKGRhdGEpLCBl
Yyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CkBAIC05OTUsNyArMTAwNCw3IEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNkYXRhQmxvY2soY29uc3QgeG1sQ2hhciogcywgaW50IGxl
bikKIAogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBSZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdOb2Rl
ID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJpbmcocywgbGVuKSk7Cisg
ICAgUmVmUHRyPENEQVRBU2VjdGlvbj4gbmV3Tm9kZSA9IENEQVRBU2VjdGlvbjo6Y3JlYXRlKG1f
Y3VycmVudE5vZGUtPmRvY3VtZW50KCksIHRvU3RyaW5nKHMsIGxlbikpOwogICAgIG1fY3VycmVu
dE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld05vZGUuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcg
JiYgIW5ld05vZGUtPmF0dGFjaGVkKCkpCiAgICAgICAgIG5ld05vZGUtPmF0dGFjaCgpOwpAQCAt
MTAxMyw3ICsxMDIyLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y29tbWVudChjb25zdCB4
bWxDaGFyKiBzKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0cjxDb21tZW50PiBuZXdO
b2RlID0gQ29tbWVudDo6Y3JlYXRlKGRvY3VtZW50KCksIHRvU3RyaW5nKHMpKTsKKyAgICBSZWZQ
dHI8Q29tbWVudD4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShtX2N1cnJlbnROb2RlLT5kb2N1
bWVudCgpLCB0b1N0cmluZyhzKSk7CiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hp
bGQobmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQo
KSkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWVhNDQ2ZjEwZGEwNzQyZDE3
NWY5MDhkMWQxNDk5ZTRjMjUyYTNiMS4uMzFjZDc4ODY3ZWY4ZGE5MGM0OGU2YmM5ZDQ2ZTQxZDNm
YjZmZjBhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDEzLTAxLTExICBSYWZhZWwgV2VpbnN0
ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgVGVtcGxhdGUgZWxlbWVudCBz
aG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJz
aW5nLWFuZC1zZXJpYWxpemF0aW9uLnhtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC94
cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QveHNsL3Jlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2w6IEFkZGVkLgorICAgICAgICAqIGZh
c3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sOiBBZGRlZC4KKworMjAx
My0wMS0xMSAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFByZXZlbnQgSFRNTFByZWxvYWRTY2FubmVyIGZyb20gZmV0Y2hpbmcgcmVzb3VyY2VzIGlu
c2lkZSA8dGVtcGxhdGU+CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDY2ODcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2lu
Zy1hbmQtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzcwZGZiMTBlZTY4
NDFkNGZmOTgwNGFhMzZjNzRmMTY2NmU3OTA2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2luZy1hbmQtc2VyaWFs
aXphdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoYXQgY29u
dGVudCB3aXRoaW4gdGVtcGxhdGUgaXMgbGlmdGVkIHRvIHRoZSB0ZW1wbGF0ZSBjb250ZW50cyB3
aGVuIHBhcnNlZCBhcyB4aHRtbC4KK1RoZSB0ZW1wbGF0ZSBjb250ZW50IG1hZGUgaXQgdGhyb3Vn
aCB0aGUgd29ybWhvbGUKKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+PGRpdj5UZW1wbGF0ZSBjb250ZW50PC9kaXY+PC90ZW1wbGF0ZT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2luZy1h
bmQtc2VyaWFsaXphdGlvbi54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
ODVjMWE1ZDBhNDhlY2RiNTkyYzA5NTIwN2MwM2E3MGFmNWYyZGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmct
YW5kLXNlcmlhbGl6YXRpb24ueG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sIAor
ICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICAiaHR0
cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4
bWw6bGFuZz0iZW4tdXMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHRlbXBsYXRlPjxkaXY+VGVtcGxhdGUgY29udGVudDwvZGl2Pjwv
dGVtcGxhdGU+CisgICAgICAgIDxzcGFuPlRoaXMgdGVzdHMgdGhhdCBjb250ZW50IHdpdGhpbiB0
ZW1wbGF0ZSBpcyBsaWZ0ZWQgdG8gdGhlIHRlbXBsYXRlIGNvbnRlbnRzIHdoZW4gcGFyc2VkIGFz
IHhodG1sLjwvc3Bhbj4KKyAgICAgICAgPGRpdiBpZD0ib3V0cHV0Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9InNlcmlhbGl6YXRpb24iPgorICAgICAgICA8L2Rpdj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKK30KKwordmFyIG91dHB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTsK
K3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7CitpZiAo
dGVtcGxhdGUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCA+IHRlbXBsYXRlLmNoaWxkTm9kZXMu
bGVuZ3RoKQorICBvdXRwdXQudGV4dENvbnRlbnQgPSAiVGhlIHRlbXBsYXRlIGNvbnRlbnQgbWFk
ZSBpdCB0aHJvdWdoIHRoZSB3b3JtaG9sZVxuIjsKKwordmFyIHNlcmlhbGl6YXRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2VyaWFsaXphdGlvbiIpOworc2VyaWFsaXphdGlvbi50ZXh0
Q29udGVudCA9IG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodGVtcGxhdGUp
OworPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUt
ZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBs
YXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmZGI0MmExYzI5NDlhMzI4Yjcw
OTJlZGI0MmMyMTNhYzA5MjE1MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorVGhpcyB0ZXN0cyB0aGF0IFhQYXRoIGV4cHJlc3Npb25zIGRvIG5vdCBjb25zaWRlciAodHJh
dmVyc2UgaW50bykgdGVtcGxhdGUgY29udGVudAorCitBIEIKK1BBU1MgZG9jdW1lbnQuZXZhbHVh
dGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwg
bnVsbCkubnVtYmVyVmFsdWUgaXMgMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBh
dGgtdGVtcGxhdGUtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC10
ZW1wbGF0ZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNjOWZmNWEyMGU5ZWNiOWVkYjdlMjk4
NDZhNDQwZTc2MjUzODRlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBh
dGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRo
YXQgWFBhdGggZXhwcmVzc2lvbnMgZG8gbm90IGNvbnNpZGVyICh0cmF2ZXJzZSBpbnRvKSB0ZW1w
bGF0ZSBjb250ZW50PC9wPgorCis8ZGl2IGlkPXRlc3Q+CisgICAgPHNwYW4+QTwvc3Bhbj4KKyAg
ICA8c3Bhbj5CPC9zcGFuPgorICAgIDx0ZW1wbGF0ZT4KKyAgICAgICAgPHNwYW4+Qzwvc3Bhbj4K
KyAgICAgICAgPHNwYW4+RDwvc3Bhbj4KKyAgICA8L3RlbXBsYXRlPgorPC9kaXY+CisKKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QnKTsKK3ZhciByZXN1bHQgPSBkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQo
Ly9zcGFuKScsIHRlc3QsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKTsKK3No
b3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLy9zcGFuKScsIHRlc3QsIG51bGwsIFhQ
YXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSIsICIyIik7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHNsL3Jl
c291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2wgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC9yZXNvdXJj
ZXMveGh0bWwtdGVtcGxhdGUueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODVmYWEyZGIxOTQ3NDUyMTRkNDY2
Y2YwNTUxYWEzZjdjZjhiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hz
bC9yZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNsCkBAIC0wLDAgKzEsNDMgQEAKKzx4c2w6c3R5
bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9Y
U0wvVHJhbnNmb3JtIgorICAgIHhtbG5zOnhodG1sPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIgorICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIgorICAgIHhtbG5z
OnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKyAgICBleGNsdWRlLXJlc3Vs
dC1wcmVmaXhlcz0ieGh0bWwgeHNsIHhzIj4KKyAgICA8eHNsOm91dHB1dCBtZXRob2Q9InhtbCIg
b21pdC14bWwtZGVjbGFyYXRpb249InllcyIvPgorICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Inho
dG1sOmh0bWwiPgorICAgICAgICA8aHRtbD4KKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAg
ICAgICAgIDx0ZW1wbGF0ZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0
ZXMgc2VsZWN0PSIvL3hodG1sOmJvZHkveGh0bWw6c3BhbiIgLz4KKyAgICAgICAgICAgICAgICA8
L3RlbXBsYXRlPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0i
Ly94aHRtbDp0ZW1wbGF0ZS8veGh0bWw6c3BhbiIgLz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGRpdkNo
aWxkVGV4dE5vZGVzKHBhcmVudCkgeworICAgIHZhciBvdXRwdXQgPSAnJzsKKworICAgIGZvciAo
dmFyIGNoaWxkID0gcGFyZW50LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRT
aWJsaW5nKSB7CisgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09ICdkaXYnKSB7CisgICAgICAg
ICAgICBvdXRwdXQgKz0gY2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICByZXR1cm4gb3V0cHV0OworfQorCit2YXIgc3BhbiA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKK3NwYW4udGV4dENvbnRlbnQgPSAn
Qm9keSBkaXZzOiAnICsgZGl2Q2hpbGRUZXh0Tm9kZXMoZG9jdW1lbnQuYm9keSk7CisKK3NwYW4g
PSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4n
KSk7Cit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZScpOwor
c3Bhbi50ZXh0Q29udGVudCA9ICcsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogJyArIGRpdkNoaWxk
VGV4dE5vZGVzKHRlbXBsYXRlLmNvbnRlbnQpOworPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2Jv
ZHk+CisgICAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKyAgICA8eHNsOnRlbXBs
YXRlIG1hdGNoPSJ4aHRtbDpzcGFuIj4KKyAgICAgICAgPGRpdj48eHNsOnZhbHVlLW9mIHNlbGVj
dD0idGV4dCgpIiAvPjwvZGl2PgorICAgIDwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVl
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2NkNDllNmVkMjQzNzQ3ODQ4NmVmZDk1N2ExNzY1MGMwZjNlMGNhOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxIEBACitCb2R5IGRpdnM6IENELCBUZW1wbGF0ZSBjb250ZW50IGRp
dnM6IEFCCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10
ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxh
dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jODQwNGM0NzgwYTRhZWJlODY1Y2E3NWM4YWEzZmEyNWZjZGNh
NTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNz
b3ItdGVtcGxhdGUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFk
PgorPGJvZHkgaWQ9ImJvZHkiPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
CXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCit2YXIgcmVxdWVzdGVyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7Cit2YXIgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTsKK3ZhciBzZXJp
YWxpemVyID0gbmV3IFhNTFNlcmlhbGl6ZXIoKTsKKworZnVuY3Rpb24gZ2V0WE1MRG9jdW1lbnQo
bmFtZSkKK3sKKwlyZXF1ZXN0ZXIub3BlbigiR0VUIiwgbmFtZSwgZmFsc2UpOworCXJlcXVlc3Rl
ci5zZW5kKG51bGwpOworCXJldHVybiByZXF1ZXN0ZXIucmVzcG9uc2VYTUw7Cit9CisKK2Z1bmN0
aW9uIGFkZFN0cmluZ1Jlc3VsdCh0ZXh0KQoreworCWRvY3VtZW50LndyaXRlbG4oIjxzcGFuPiIg
KyB0ZXh0ICsgIjwvc3Bhbj4iKTsKK30KKworZnVuY3Rpb24gZGl2Q2hpbGRUZXh0Tm9kZXMocGFy
ZW50KSB7CisgICAgdmFyIG91dHB1dCA9ICcnOworCisgICAgZm9yICh2YXIgY2hpbGQgPSBwYXJl
bnQuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKKyAgICAg
ICAgaWYgKGNoaWxkLnRhZ05hbWUgPT0gJ2RpdicpIHsKKyAgICAgICAgICAgIG91dHB1dCArPSBj
aGlsZC50ZXh0Q29udGVudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBvdXRwdXQ7
Cit9CisKK3ZhciB4bWwgPSBnZXRYTUxEb2N1bWVudCgieHNsdC14aHRtbC10ZW1wbGF0ZS54bWwi
KTsKK3ZhciB4c2wgPSBnZXRYTUxEb2N1bWVudCgicmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhz
bCIpOworCitwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2wpOworCit2YXIgb3duZXJEb2N1
bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCIiLCAidGVzdCIs
IG51bGwpOwordmFyIGZyYWcgPSBwcm9jZXNzb3IudHJhbnNmb3JtVG9GcmFnbWVudCh4bWwsIG93
bmVyRG9jdW1lbnQpOworCithZGRTdHJpbmdSZXN1bHQoJ0JvZHkgZGl2czogJyArIGRpdkNoaWxk
VGV4dE5vZGVzKGZyYWcucXVlcnlTZWxlY3RvcignYm9keScpKSArIAorICAgICAgICAgICAgICAg
ICcsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogJyArIGRpdkNoaWxkVGV4dE5vZGVzKGZyYWcucXVl
cnlTZWxlY3RvcigndGVtcGxhdGUnKS5jb250ZW50KSk7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTQ1NGEwOTg0Y2E4NGQwZDFkNmM4NjIzZTVlOWMzMTFlNjJmMDZhOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorQworRAorQm9keSBkaXZzOiBDRCwgVGVtcGxhdGUgY29udGVudCBk
aXZzOiBBQgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1w
bGF0ZS54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZDFkNzJiYzJlMDIxYTBiM2ZiMDUxNGUwNWY5NDUxZjI0MDdlMTY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54
bWwKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0icmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbCIg
dHlwZT0idGV4dC94c2wiPz4KKworPCFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94
aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKworPGh0bWwgeG1sOmxhbmc9ImVuLXVzIiB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGJvZHk+CisgICAgICAg
IDxzcGFuPkE8L3NwYW4+CisgICAgICAgIDxzcGFuPkI8L3NwYW4+CisgICAgICAgIDx0ZW1wbGF0
ZT4KKyAgICAgICAgICAgIDxzcGFuPkM8L3NwYW4+CisgICAgICAgICAgICA8c3Bhbj5EPC9zcGFu
PgorICAgICAgICA8L3RlbXBsYXRlPgorICAgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182669</attachid>
            <date>2013-01-14 17:42:03 -0800</date>
            <delta_ts>2013-01-16 16:15:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106491-20130114173903.patch</filename>
            <type>text/plain</type>
            <size>18433</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY1NjE2MzFiMmM5YzNk
OTcxOTk0MzkxNDlhMzdlNzcwYjA2NTc2OC4uMzRjMGQwNDRmYjUxNzk0ZDIxNGViNWEyNGIwOWZi
ZmZkMzJmODE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAxLTExICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVtcGxhdGUg
ZWxlbWVudCBzaG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW9kaWZpZXMgdGhlIFhNTCBwYXJzZXIgaW4gdHdvIHdheXM6ICgxKSB3aGVuIG5vZGVzIGFyZSBj
cmVhdGVkLCB0aGVpciBvd25lciBkb2N1bWVudCBpcworICAgICAgICB0aGUgb3duZXIgZG9jdW1l
bnQgb2YgdGhlIGN1cnJlbnQgbm9kZSwgcmF0aGVyIHRoYW4gdGhlIGNvbnRhaW5pbmcgZG9jdW1l
bnQsIGFuZCAoMikgd2hlbiBhbiBIVE1MVGVtcGxhdGVFbGVtZW50CisgICAgICAgIGlzIGVuY291
bnRlcmVkLCBpdHMgY29udGVudCBkb2N1bWVudCBmcmFnbWVudCBpcyBwdXNoZWQgb250byB0aGUg
c3RhY2ssIHJhdGhlciB0aGFuIHRoZSBlbGVtZW50IGl0c2VsZiwgc28gdGhhdCBjaGlsZHJlbgor
ICAgICAgICBhcmUgYXBwZW5kZWQgdG8gdGhlIHRlbXBsYXRlIGNvbnRlbnQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2luZy1hbmQtc2Vy
aWFsaXphdGlvbi54bWwKKyAgICAgICAgICAgICAgIGZhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUt
ZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1w
bGF0ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnht
bAorCisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW50ZXJUZXh0KToKKyAgICAgICAgKiB4bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
RG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6Y2RhdGFCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6Y29tbWVudCk6CisKIDIwMTMtMDEtMDkgIExldmkgV2VpbnRyYXViIDxs
ZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUm9sbGluZyBvdXQgcjEzOTY4My4gSXQgYnJv
a2UgYSBidW5jaCBvZiB3ZWJraXRfdW5pdF90ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNmI4YTBhYmZiYjBkMWY4YzAzMDli
YzNmMDUzZTlmZjY4YjQ1ZGY2Yi4uY2ZlM2NkMzA3YjExN2FkZWZlZjI2ODQwNzBhNDQ0ZTAyY2U4
OTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbnRlclRl
eHQoKQogICAgIEFTU0VSVChtX2J1ZmZlcmVkVGV4dC5zaXplKCkgPT0gMCk7CiAjZW5kaWYKICAg
ICBBU1NFUlQoIW1fbGVhZlRleHROb2RlKTsKLSAgICBtX2xlYWZUZXh0Tm9kZSA9IFRleHQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCAiIik7CisgICAgbV9sZWFmVGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUo
bV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwgIiIpOwogICAgIG1fY3VycmVudE5vZGUtPnBhcnNl
ckFwcGVuZENoaWxkKG1fbGVhZlRleHROb2RlLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4
IDc4YjgwNmQ1YWE3YTExNmIzN2I1N2FkNDE3ZTk3MTY1ZGJjOTczNjAuLmVjYzAxMDI3NjNiMmQy
ZTQwMjdjOTAwYTc1MjRhYmMzMDA2MzJjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxl
bWVudC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
c291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgpAQCAtNzg4LDcgKzc4
OSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENo
YXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhCiAgICAgbV9zYXdGaXJzdEVsZW1lbnQgPSB0
cnVlOwogCiAgICAgUXVhbGlmaWVkTmFtZSBxTmFtZShwcmVmaXgsIGxvY2FsTmFtZSwgdXJpKTsK
LSAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1l
bnQocU5hbWUsIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBuZXdFbGVtZW50ID0gbV9jdXJy
ZW50Tm9kZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChxTmFtZSwgdHJ1ZSk7CiAgICAgaWYg
KCFuZXdFbGVtZW50KSB7CiAgICAgICAgIHN0b3BQYXJzaW5nKCk7CiAgICAgICAgIHJldHVybjsK
QEAgLTgxOCw3ICs4MTksMTUgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50
TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG1fY3Vy
cmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQuZ2V0KCkpOwogCisjaWYgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKG5ld0VsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp0ZW1wbGF0ZVRhZykpCisgICAgICAgIHB1c2hDdXJyZW50Tm9kZSh0b0hUTUxUZW1w
bGF0ZUVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSktPmNvbnRlbnQoKSk7CisgICAgZWxzZQorICAg
ICAgICBwdXNoQ3VycmVudE5vZGUobmV3RWxlbWVudC5nZXQoKSk7CisjZWxzZQogICAgIHB1c2hD
dXJyZW50Tm9kZShuZXdFbGVtZW50LmdldCgpKTsKKyNlbmRpZgorCiAgICAgaWYgKG1fdmlldyAm
JiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxlbWVudC0+YXR0YWNoKCk7
CiAKQEAgLTk2MSw3ICs5NzAsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oY29uc3QgeG1sQ2hhciogdGFyZ2V0LCBjb25zdCB4bWxDaAogCiAgICAgLy8g
IyMjIGhhbmRsZSBleGNlcHRpb25zCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgUmVm
UHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gcGkgPSBkb2N1bWVudCgpLT5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oCisgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gcGkgPSBt
X2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLT5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oCiAg
ICAgICAgIHRvU3RyaW5nKHRhcmdldCksIHRvU3RyaW5nKGRhdGEpLCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm47CkBAIC05OTUsNyArMTAwNCw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmNkYXRhQmxvY2soY29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKIAogICAgIGV4aXRU
ZXh0KCk7CiAKLSAgICBSZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9u
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJpbmcocywgbGVuKSk7CisgICAgUmVmUHRyPENEQVRB
U2VjdGlvbj4gbmV3Tm9kZSA9IENEQVRBU2VjdGlvbjo6Y3JlYXRlKG1fY3VycmVudE5vZGUtPmRv
Y3VtZW50KCksIHRvU3RyaW5nKHMsIGxlbikpOwogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFw
cGVuZENoaWxkKG5ld05vZGUuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld05vZGUtPmF0
dGFjaGVkKCkpCiAgICAgICAgIG5ld05vZGUtPmF0dGFjaCgpOwpAQCAtMTAxMyw3ICsxMDIyLDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y29tbWVudChjb25zdCB4bWxDaGFyKiBzKQogCiAg
ICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29tbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCksIHRvU3RyaW5nKHMpKTsKKyAgICBSZWZQdHI8Q29tbWVudD4gbmV3
Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLCB0b1N0cmlu
ZyhzKSk7CiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3Tm9kZS5nZXQo
KSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3
Tm9kZS0+YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjM3OWUxZDUzYjJiNThhZjVkODk4NWQzMTUzNmRmYmYw
MWNjY2U1OS4uZWY0MmEzM2M4NDU0N2MyM2UzZDQ5NzllYWQwODZmYzBhZTNlNjMyNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTExICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVtcGxhdGUgZWxlbWVudCBzaG91bGQgcGFyc2UgaW4g
WEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRt
bC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxp
emF0aW9uLnhtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1l
bGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC94cGF0aC10
ZW1wbGF0ZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHNsL3Jlc291cmNl
cy94aHRtbC10ZW1wbGF0ZS54c2w6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHNsL3hzbHQtcHJv
Y2Vzc29yLXRlbXBsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wv
eHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wv
eHNsdC14aHRtbC10ZW1wbGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
eHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sOiBBZGRlZC4KKwogMjAxMy0wMS0xNCAgRGltYSBH
b3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZWxlbWVudCB0
eXBlIHNlbGVjdG9ycyBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gY2xhc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2lu
Zy1hbmQtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM3MGRmYjEwZWU2ODQxZDRmZjk4MDRhYTM2Yzc0ZjE2NjZlNzkw
NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGNvbnRlbnQgd2l0aGluIHRlbXBsYXRlIGlzIGxp
ZnRlZCB0byB0aGUgdGVtcGxhdGUgY29udGVudHMgd2hlbiBwYXJzZWQgYXMgeGh0bWwuCitUaGUg
dGVtcGxhdGUgY29udGVudCBtYWRlIGl0IHRocm91Z2ggdGhlIHdvcm1ob2xlCis8dGVtcGxhdGUg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxkaXY+VGVtcGxhdGUgY29udGVu
dDwvZGl2PjwvdGVtcGxhdGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1z
ZXJpYWxpemF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTg1YzFhNWQwYTQ4ZWNkYjU5MmMwOTUyMDdj
MDNhNzBhZjVmMmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLnhtbApAQCAt
MCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbCAKKyAgICAgUFVCTElDICItLy9XM0MvL0RURCBY
SFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9E
VEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sOmxhbmc9ImVuLXVzIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGJvZHk+CisgICAgICAgIDx0ZW1wbGF0
ZT48ZGl2PlRlbXBsYXRlIGNvbnRlbnQ8L2Rpdj48L3RlbXBsYXRlPgorICAgICAgICA8c3Bhbj5U
aGlzIHRlc3RzIHRoYXQgY29udGVudCB3aXRoaW4gdGVtcGxhdGUgaXMgbGlmdGVkIHRvIHRoZSB0
ZW1wbGF0ZSBjb250ZW50cyB3aGVuIHBhcnNlZCBhcyB4aHRtbC48L3NwYW4+CisgICAgICAgIDxk
aXYgaWQ9Im91dHB1dCI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJzZXJpYWxp
emF0aW9uIj4KKyAgICAgICAgPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK3ZhciBvdXRwdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7Cit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpOworaWYgKHRlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2Rl
cy5sZW5ndGggPiB0ZW1wbGF0ZS5jaGlsZE5vZGVzLmxlbmd0aCkKKyAgb3V0cHV0LnRleHRDb250
ZW50ID0gIlRoZSB0ZW1wbGF0ZSBjb250ZW50IG1hZGUgaXQgdGhyb3VnaCB0aGUgd29ybWhvbGVc
biI7CisKK3ZhciBzZXJpYWxpemF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcmlh
bGl6YXRpb24iKTsKK3NlcmlhbGl6YXRpb24udGV4dENvbnRlbnQgPSBuZXcgWE1MU2VyaWFsaXpl
cigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRlbXBsYXRlKTsKKzwvc2NyaXB0PgorICAgIDwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZmRiNDJhMWMyOTQ5YTMyOGI3MDkyZWRiNDJjMjEzYWMwOTIxNTFjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdHMgdGhhdCBYUGF0aCBl
eHByZXNzaW9ucyBkbyBub3QgY29uc2lkZXIgKHRyYXZlcnNlIGludG8pIHRlbXBsYXRlIGNvbnRl
bnQKKworQSBCCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL3NwYW4pJywgdGVzdCwg
bnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMzYzlmZjVhMjBlOWVjYjllZGI3ZTI5ODQ2YTQ0MGU3NjI1Mzg0ZTQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQu
aHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IFhQYXRoIGV4cHJlc3Npb25zIGRvIG5v
dCBjb25zaWRlciAodHJhdmVyc2UgaW50bykgdGVtcGxhdGUgY29udGVudDwvcD4KKworPGRpdiBp
ZD10ZXN0PgorICAgIDxzcGFuPkE8L3NwYW4+CisgICAgPHNwYW4+Qjwvc3Bhbj4KKyAgICA8dGVt
cGxhdGU+CisgICAgICAgIDxzcGFuPkM8L3NwYW4+CisgICAgICAgIDxzcGFuPkQ8L3NwYW4+Cisg
ICAgPC90ZW1wbGF0ZT4KKzwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+Cit2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgcmVz
dWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0
aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCk7CitzaG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUo
J2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVs
bCkubnVtYmVyVmFsdWUiLCAiMiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC9yZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNs
IGIvTGF5b3V0VGVzdHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNzg1ZmFhMmRiMTk0NzQ1MjE0ZDQ2NmNmMDU1MWFhM2Y3Y2Y4Yjk3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRl
LnhzbApAQCAtMCwwICsxLDQzIEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxu
czp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgICB4bWxuczp4
aHRtbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIKKyAgICB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCIKKyAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MS9YTUxTY2hlbWEiCisgICAgZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM9InhodG1sIHhzbCB4cyI+
CisgICAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiIG9taXQteG1sLWRlY2xhcmF0aW9uPSJ5ZXMi
Lz4KKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpodG1sIj4KKyAgICAgICAgPGh0bWw+
CisgICAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICA8dGVtcGxhdGU+CisgICAgICAg
ICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLy94aHRtbDpib2R5L3ho
dG1sOnNwYW4iIC8+CisgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAgICAgICAg
ICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii8veGh0bWw6dGVtcGxhdGUvL3hodG1sOnNw
YW4iIC8+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBkaXZDaGlsZFRleHROb2RlcyhwYXJlbnQpIHsKKyAg
ICB2YXIgb3V0cHV0ID0gJyc7CisKKyAgICBmb3IgKHZhciBjaGlsZCA9IHBhcmVudC5maXJzdENo
aWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykgeworICAgICAgICBpZiAoY2hp
bGQudGFnTmFtZSA9PSAnZGl2JykgeworICAgICAgICAgICAgb3V0cHV0ICs9IGNoaWxkLnRleHRD
b250ZW50OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG91dHB1dDsKK30KKwordmFy
IHNwYW4gPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKSk7CitzcGFuLnRleHRDb250ZW50ID0gJ0JvZHkgZGl2czogJyArIGRpdkNoaWxkVGV4
dE5vZGVzKGRvY3VtZW50LmJvZHkpOworCitzcGFuID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwordmFyIHRlbXBsYXRlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigndGVtcGxhdGUnKTsKK3NwYW4udGV4dENvbnRlbnQgPSAnLCBUZW1w
bGF0ZSBjb250ZW50IGRpdnM6ICcgKyBkaXZDaGlsZFRleHROb2Rlcyh0ZW1wbGF0ZS5jb250ZW50
KTsKKzwvc2NyaXB0PgorICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICA8L2h0bWw+CisgICAg
PC94c2w6dGVtcGxhdGU+CisgICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieGh0bWw6c3BhbiI+Cisg
ICAgICAgIDxkaXY+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRleHQoKSIgLz48L2Rpdj4KKyAgICA8
L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVt
cGxhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3It
dGVtcGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZDQ5ZTZlZDI0Mzc0Nzg0ODZlZmQ5
NTdhMTc2NTBjMGYzZTBjYTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hz
bC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorQm9k
eSBkaXZzOiBDRCwgVGVtcGxhdGUgY29udGVudCBkaXZzOiBBQgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg0MDRj
NDc4MGE0YWViZTg2NWNhNzVjOGFhM2ZhMjVmY2RjYTUwZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCAr
MSw1MSBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKwl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KwordmFyIHJlcXVlc3RlciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwordmFyIHByb2Nlc3NvciA9
IG5ldyBYU0xUUHJvY2Vzc29yKCk7Cit2YXIgc2VyaWFsaXplciA9IG5ldyBYTUxTZXJpYWxpemVy
KCk7CisKK2Z1bmN0aW9uIGdldFhNTERvY3VtZW50KG5hbWUpCit7CisJcmVxdWVzdGVyLm9wZW4o
IkdFVCIsIG5hbWUsIGZhbHNlKTsKKwlyZXF1ZXN0ZXIuc2VuZChudWxsKTsKKwlyZXR1cm4gcmVx
dWVzdGVyLnJlc3BvbnNlWE1MOworfQorCitmdW5jdGlvbiBhZGRTdHJpbmdSZXN1bHQodGV4dCkK
K3sKKwlkb2N1bWVudC53cml0ZWxuKCI8c3Bhbj4iICsgdGV4dCArICI8L3NwYW4+Iik7Cit9CisK
K2Z1bmN0aW9uIGRpdkNoaWxkVGV4dE5vZGVzKHBhcmVudCkgeworICAgIHZhciBvdXRwdXQgPSAn
JzsKKworICAgIGZvciAodmFyIGNoaWxkID0gcGFyZW50LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLm5leHRTaWJsaW5nKSB7CisgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09ICdk
aXYnKSB7CisgICAgICAgICAgICBvdXRwdXQgKz0gY2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4gb3V0cHV0OworfQorCit2YXIgeG1sID0gZ2V0WE1MRG9j
dW1lbnQoInhzbHQteGh0bWwtdGVtcGxhdGUueG1sIik7Cit2YXIgeHNsID0gZ2V0WE1MRG9jdW1l
bnQoInJlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2wiKTsKKworcHJvY2Vzc29yLmltcG9ydFN0
eWxlc2hlZXQoeHNsKTsKKwordmFyIG93bmVyRG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRh
dGlvbi5jcmVhdGVEb2N1bWVudCgiIiwgInRlc3QiLCBudWxsKTsKK3ZhciBmcmFnID0gcHJvY2Vz
c29yLnRyYW5zZm9ybVRvRnJhZ21lbnQoeG1sLCBvd25lckRvY3VtZW50KTsKKworYWRkU3RyaW5n
UmVzdWx0KCdCb2R5IGRpdnM6ICcgKyBkaXZDaGlsZFRleHROb2RlcyhmcmFnLnF1ZXJ5U2VsZWN0
b3IoJ2JvZHknKSkgKyAKKyAgICAgICAgICAgICAgICAnLCBUZW1wbGF0ZSBjb250ZW50IGRpdnM6
ICcgKyBkaXZDaGlsZFRleHROb2RlcyhmcmFnLnF1ZXJ5U2VsZWN0b3IoJ3RlbXBsYXRlJykuY29u
dGVudCkpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXhodG1sLXRl
bXBsYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVt
cGxhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NTRhMDk4NGNhODRkMGQxZDZjODYyM2U1
ZTljMzExZTYyZjA2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94
c2x0LXhodG1sLXRlbXBsYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0MKK0QKK0Jv
ZHkgZGl2czogQ0QsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogQUIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxZDcyYmMyZTAyMWEw
YjNmYjA1MTRlMDVmOTQ1MWYyNDA3ZTE2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8P3htbC1zdHlsZXNoZWV0IGhyZWY9
InJlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2wiIHR5cGU9InRleHQveHNsIj8+CisKKzwhRE9D
VFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+CisKKzxodG1sIHhtbDpsYW5nPSJlbi11cyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiPgorICAgIDxib2R5PgorICAgICAgICA8c3Bhbj5BPC9zcGFuPgorICAgICAgICA8
c3Bhbj5CPC9zcGFuPgorICAgICAgICA8dGVtcGxhdGU+CisgICAgICAgICAgICA8c3Bhbj5DPC9z
cGFuPgorICAgICAgICAgICAgPHNwYW4+RDwvc3Bhbj4KKyAgICAgICAgPC90ZW1wbGF0ZT4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4NGIxZWMxZGU2MzU5MTJhY2My
YWZiZTM2YzQ2MTI0YTk2YWM5N2U2Li42NjY4MDQ2MWM5ZGY4NDhhN2VlZTNiN2ZhNjMwODJlOTdm
ZTdlNGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
ODcsOCArODcsMTEgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQt
dHlwZS1kYXNoYm9hcmQuaHRtbCBbIFdvbnRGaXggXQogZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lv
bi1wYXJzZXIuaHRtbCBbIFdvbnRGaXggXQogCiAjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBp
cyBkaXNhYmxlZC4KLXdlYmtpdC5vcmcvYi8xMDM1NyBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVt
ZW50IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTAzNTcgaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM1NDcgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBodG1sNWxpYi9ydW4tdGVtcGxhdGUu
aHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0L3hzbC94c2x0LXhodG1sLXRl
bXBsYXRlLnhtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0L3hwYXRoL3hwYXRo
LXRlbXBsYXRlLWVsZW1lbnQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0
L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sIFsgU2tpcCBdCiAKICMgVGhlc2UgdGVz
dCAtYXBwbGUtIGFuZCAta2h0bWwtIHByZWZpeGVkIENTUyBwcm9wZXJ0aWVzLCB3aGljaCB3ZSBk
b24ndCBzdXBwb3J0LgogaW5zcGVjdG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMuaHRtbCBbIFdv
bnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5
ZWU0NjNlMmIwMmY2MzZjNWI4NDEwZjczYWQ3YTg3ODM1YjZiOWU1Li4yMzE5NmRkZjMxOGY2ODM2
YWQ0NmFjM2VkMGM2ZmU4YmM2ZTc3OWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNDM5LDYgKzQzOSw5IEBAIGFjY2Vzc2liaWxpdHkvY29ycmVzcG9u
ZGluZy1jb250cm9sLWRlbGV0ZWQtY3Jhc2guaHRtbAogIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkgaXMgZGlzYWJsZWQuCiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CiBodG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbAorZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKK2Zhc3Qv
eHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCitmYXN0L3hzbC94c2x0LXByb2Nlc3Nv
ci10ZW1wbGF0ZS5odG1sCiAKICMgSlNDIGRvZXMgbm90IHN1cHBvcnQgc2V0SXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luIChodHRwOi8vd2Via2l0Lm9yZy9iLzYxNTQwKQogaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjhkMzgxYmUwZTgyYzZiZGQ2ZjMyOTVm
Yzg2ZTBkZGFiMTQwNWY0Zi4uMmJiZWFkZmZmNzU4ZGI3ZjRlN2ZmZWIxNWY0YmFmNTZlNTdjODMx
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTEsNiAr
MTkxLDkgQEAgZmFzdC9jc3MvY3Vyc29yLXBhcnNpbmctaW1hZ2Utc2V0Lmh0bWwKICMgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudAogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKK2Zhc3QveHNsL3hzbHQteGh0bWwtdGVt
cGxhdGUueG1sCitmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbAorZmFzdC94
c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAogCiAjIEZhaWwgdW50aWwgU1VCUElYRUxf
TEFZT1VUIGlzIGVuYWJsZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1NTMyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGNhOTgxYTgyNzczMTNiZDM3OWM4YzJhMWU1ODEyZjk0YzMyN2Q2MDUuLjE5Yjc4ODc3N2JmM2M5
NTc0MmZhZDM4OWU1MGVlNzY0OWNjZTM2MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xNTMzLDYgKzE1MzMsOSBAQCBmYXN0L2RvbS9zaGFkb3cKICMg
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgogZmFzdC9kb20vSFRNTFRlbXBs
YXRlRWxlbWVudAogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKK2Zhc3QveHNsL3hzbHQteGh0
bWwtdGVtcGxhdGUueG1sCitmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbAor
ZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAogCiAjIENTUyBSZWdpb25zIHN1
cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0Lm9yZy9iLzU3MzEyCiBmYXN0L3Jl
Z2lvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDFmZTU0ZTU3NGMxNDI1M2M2NWY0MjkzNjQ5ZTFjYjA4ZGExZjQwODUuLjE4MmRiY2Y5
ZDU3MmEzNjZmZWU5OTQxZWYzODRlM2JlYWU5NGNlNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA2Miw2ICsyMDYyLDkgQEAgZmFz
dC9kb20vc2hhZG93CiAjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KIGZh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCitm
YXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbAorZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0
ZS1lbGVtZW50Lmh0bWwKK2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwKIAog
IyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcv
Yi81NzMxMgogZmFzdC9yZWdpb25zCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183056</attachid>
            <date>2013-01-16 16:15:22 -0800</date>
            <delta_ts>2013-01-22 16:38:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106491-20130116161224.patch</filename>
            <type>text/plain</type>
            <size>19696</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzExNDE2ODdiMDY5ZGRl
YjgxODExOTgwM2RiNGYzYmJiZGI5YTJhMC4uNzA5YmY0NTdiNjIzNTYwYmI3OTAwZjFiODM1Mzkx
MWEyOGVkMWYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTExICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVtcGxhdGUg
ZWxlbWVudCBzaG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vZHZj
cy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy90ZW1wbGF0ZXMvaW5k
ZXguaHRtbCNwYXJzaW5nLXhodG1sLWRvY3VtZW50cy4KKworICAgICAgICBUaGlzIHBhdGNoIG1v
ZGlmaWVzIHRoZSBYTUwgcGFyc2VyIGluIHR3byB3YXlzOiAoMSkgd2hlbiBub2RlcyBhcmUgY3Jl
YXRlZCwgdGhlaXIgb3duZXIgZG9jdW1lbnQgaXMKKyAgICAgICAgdGhlIG93bmVyIGRvY3VtZW50
IG9mIHRoZSBjdXJyZW50IG5vZGUsIHJhdGhlciB0aGFuIHRoZSBjb250YWluaW5nIGRvY3VtZW50
LCBhbmQgKDIpIHdoZW4gYW4gSFRNTFRlbXBsYXRlRWxlbWVudAorICAgICAgICBpcyBlbmNvdW50
ZXJlZCwgaXRzIGNvbnRlbnQgZG9jdW1lbnQgZnJhZ21lbnQgaXMgcHVzaGVkIG9udG8gdGhlIHN0
YWNrLCByYXRoZXIgdGhhbiB0aGUgZWxlbWVudCBpdHNlbGYsIHNvIHRoYXQgY2hpbGRyZW4KKyAg
ICAgICAgYXJlIGFwcGVuZGVkIHRvIHRoZSB0ZW1wbGF0ZSBjb250ZW50LgorCisgICAgICAgIFRl
c3RzOiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlh
bGl6YXRpb24ueG1sCisgICAgICAgICAgICAgICBmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVs
ZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxh
dGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwK
KworICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmVudGVyVGV4dCk6CisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
RG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERv
Y3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
WE1MRG9jdW1lbnRQYXJzZXI6OmNkYXRhQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OmNvbW1lbnQpOgorCiAyMDEzLTAxLTE2ICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIGEgcmVidWlsZCBvZiBSZW5kZXJP
YmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5j
cHAKaW5kZXggNmI4YTBhYmZiYjBkMWY4YzAzMDliYzNmMDUzZTlmZjY4YjQ1ZGY2Yi4uY2ZlM2Nk
MzA3YjExN2FkZWZlZjI2ODQwNzBhNDQ0ZTAyY2U4OTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2
b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbnRlclRleHQoKQogICAgIEFTU0VSVChtX2J1ZmZlcmVk
VGV4dC5zaXplKCkgPT0gMCk7CiAjZW5kaWYKICAgICBBU1NFUlQoIW1fbGVhZlRleHROb2RlKTsK
LSAgICBtX2xlYWZUZXh0Tm9kZSA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCAiIik7CisgICAg
bV9sZWFmVGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUobV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwg
IiIpOwogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG1fbGVhZlRleHROb2Rl
LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxE
b2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxE
b2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDc4YjgwNmQ1YWE3YTExNmIzN2I1N2FkNDE3
ZTk3MTY1ZGJjOTczNjAuLmVjYzAxMDI3NjNiMmQyZTQwMjdjOTAwYTc1MjRhYmMzMDA2MzJjMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJIVE1MTGlua0VsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRlbXBsYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIlByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZS5oIgpAQCAtNzg4LDcgKzc4OSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1s
Q2hhCiAgICAgbV9zYXdGaXJzdEVsZW1lbnQgPSB0cnVlOwogCiAgICAgUXVhbGlmaWVkTmFtZSBx
TmFtZShwcmVmaXgsIGxvY2FsTmFtZSwgdXJpKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQocU5hbWUsIHRydWUpOworICAgIFJlZlB0
cjxFbGVtZW50PiBuZXdFbGVtZW50ID0gbV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChxTmFtZSwgdHJ1ZSk7CiAgICAgaWYgKCFuZXdFbGVtZW50KSB7CiAgICAgICAgIHN0
b3BQYXJzaW5nKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTgxOCw3ICs4MTksMTUgQEAgdm9pZCBY
TUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxO
YW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxk
KG5ld0VsZW1lbnQuZ2V0KCkpOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAg
aWYgKG5ld0VsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0ZW1wbGF0ZVRhZykpCisgICAg
ICAgIHB1c2hDdXJyZW50Tm9kZSh0b0hUTUxUZW1wbGF0ZUVsZW1lbnQobmV3RWxlbWVudC5nZXQo
KSktPmNvbnRlbnQoKSk7CisgICAgZWxzZQorICAgICAgICBwdXNoQ3VycmVudE5vZGUobmV3RWxl
bWVudC5nZXQoKSk7CisjZWxzZQogICAgIHB1c2hDdXJyZW50Tm9kZShuZXdFbGVtZW50LmdldCgp
KTsKKyNlbmRpZgorCiAgICAgaWYgKG1fdmlldyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkK
ICAgICAgICAgbmV3RWxlbWVudC0+YXR0YWNoKCk7CiAKQEAgLTk2MSw3ICs5NzAsNyBAQCB2b2lk
IFhNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29uc3QgeG1sQ2hhciog
dGFyZ2V0LCBjb25zdCB4bWxDaAogCiAgICAgLy8gIyMjIGhhbmRsZSBleGNlcHRpb25zCiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4g
cGkgPSBkb2N1bWVudCgpLT5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oCisgICAgUmVmUHRy
PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gcGkgPSBtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLT5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oCiAgICAgICAgIHRvU3RyaW5nKHRhcmdldCksIHRv
U3RyaW5nKGRhdGEpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CkBAIC05OTUs
NyArMTAwNCw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNkYXRhQmxvY2soY29uc3QgeG1s
Q2hhciogcywgaW50IGxlbikKIAogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBSZWZQdHI8Q0RBVEFT
ZWN0aW9uPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJp
bmcocywgbGVuKSk7CisgICAgUmVmUHRyPENEQVRBU2VjdGlvbj4gbmV3Tm9kZSA9IENEQVRBU2Vj
dGlvbjo6Y3JlYXRlKG1fY3VycmVudE5vZGUtPmRvY3VtZW50KCksIHRvU3RyaW5nKHMsIGxlbikp
OwogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld05vZGUuZ2V0KCkpOwog
ICAgIGlmIChtX3ZpZXcgJiYgIW5ld05vZGUtPmF0dGFjaGVkKCkpCiAgICAgICAgIG5ld05vZGUt
PmF0dGFjaCgpOwpAQCAtMTAxMyw3ICsxMDIyLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
Y29tbWVudChjb25zdCB4bWxDaGFyKiBzKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0
cjxDb21tZW50PiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRlKGRvY3VtZW50KCksIHRvU3RyaW5n
KHMpKTsKKyAgICBSZWZQdHI8Q29tbWVudD4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShtX2N1
cnJlbnROb2RlLT5kb2N1bWVudCgpLCB0b1N0cmluZyhzKSk7CiAgICAgbV9jdXJyZW50Tm9kZS0+
cGFyc2VyQXBwZW5kQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3
Tm9kZS0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGI1
NThiZjAyMzUyZWJhODNmNWRjZjVlMDk4YTM0ZDYwNTlmNDU3Zi4uMDQzOThhNWY2MTFiZTMzM2U5
M2IzYjhjYWU3MTQ0YmNhMDZhZTBjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTEx
ICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVt
cGxhdGUgZWxlbWVudCBzaG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhU
TUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLnhtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QveHNsL3Jlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2w6IEFkZGVk
LgorICAgICAgICAqIGZhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1s
OiBBZGRlZC4KKwogMjAxMy0wMS0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzOTg1My4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwt
cGFyc2luZy1hbmQtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MGRmYjEwZWU2ODQxZDRmZjk4MDRhYTM2Yzc0ZjE2
NjZlNzkwNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGNvbnRlbnQgd2l0aGluIHRlbXBsYXRl
IGlzIGxpZnRlZCB0byB0aGUgdGVtcGxhdGUgY29udGVudHMgd2hlbiBwYXJzZWQgYXMgeGh0bWwu
CitUaGUgdGVtcGxhdGUgY29udGVudCBtYWRlIGl0IHRocm91Z2ggdGhlIHdvcm1ob2xlCis8dGVt
cGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxkaXY+VGVtcGxhdGUg
Y29udGVudDwvZGl2PjwvdGVtcGxhdGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5n
LWFuZC1zZXJpYWxpemF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTg1YzFhNWQwYTQ4ZWNkYjU5MmMw
OTUyMDdjMDNhNzBhZjVmMmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLnht
bApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbCAKKyAgICAgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sOmxhbmc9ImVuLXVzIiB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGJvZHk+CisgICAgICAgIDx0
ZW1wbGF0ZT48ZGl2PlRlbXBsYXRlIGNvbnRlbnQ8L2Rpdj48L3RlbXBsYXRlPgorICAgICAgICA8
c3Bhbj5UaGlzIHRlc3RzIHRoYXQgY29udGVudCB3aXRoaW4gdGVtcGxhdGUgaXMgbGlmdGVkIHRv
IHRoZSB0ZW1wbGF0ZSBjb250ZW50cyB3aGVuIHBhcnNlZCBhcyB4aHRtbC48L3NwYW4+CisgICAg
ICAgIDxkaXYgaWQ9Im91dHB1dCI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJz
ZXJpYWxpemF0aW9uIj4KKyAgICAgICAgPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK3ZhciBvdXRwdXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7Cit2YXIgdGVtcGxhdGUgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpOworaWYgKHRlbXBsYXRlLmNvbnRlbnQuY2hp
bGROb2Rlcy5sZW5ndGggPiB0ZW1wbGF0ZS5jaGlsZE5vZGVzLmxlbmd0aCkKKyAgb3V0cHV0LnRl
eHRDb250ZW50ID0gIlRoZSB0ZW1wbGF0ZSBjb250ZW50IG1hZGUgaXQgdGhyb3VnaCB0aGUgd29y
bWhvbGVcbiI7CisKK3ZhciBzZXJpYWxpemF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNlcmlhbGl6YXRpb24iKTsKK3NlcmlhbGl6YXRpb24udGV4dENvbnRlbnQgPSBuZXcgWE1MU2Vy
aWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRlbXBsYXRlKTsKKzwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZmRiNDJhMWMyOTQ5YTMyOGI3MDkyZWRiNDJjMjEzYWMwOTIxNTFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdHMgdGhhdCBY
UGF0aCBleHByZXNzaW9ucyBkbyBub3QgY29uc2lkZXIgKHRyYXZlcnNlIGludG8pIHRlbXBsYXRl
IGNvbnRlbnQKKworQSBCCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL3NwYW4pJywg
dGVzdCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlz
IDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMzYzlmZjVhMjBlOWVjYjllZGI3ZTI5ODQ2YTQ0MGU3NjI1Mzg0ZTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVs
ZW1lbnQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IFhQYXRoIGV4cHJlc3Npb25z
IGRvIG5vdCBjb25zaWRlciAodHJhdmVyc2UgaW50bykgdGVtcGxhdGUgY29udGVudDwvcD4KKwor
PGRpdiBpZD10ZXN0PgorICAgIDxzcGFuPkE8L3NwYW4+CisgICAgPHNwYW4+Qjwvc3Bhbj4KKyAg
ICA8dGVtcGxhdGU+CisgICAgICAgIDxzcGFuPkM8L3NwYW4+CisgICAgICAgIDxzcGFuPkQ8L3Nw
YW4+CisgICAgPC90ZW1wbGF0ZT4KKzwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+Cit2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2
YXIgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxs
LCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCk7CitzaG91bGRCZSgiZG9jdW1lbnQuZXZh
bHVhdGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQ
RSwgbnVsbCkubnVtYmVyVmFsdWUiLCAiMiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC9yZXNvdXJjZXMveGh0bWwtdGVtcGxh
dGUueHNsIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhz
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNDYwYTQ0M2MzZjc4YWQ5OGZlZWE1YzE0MzNjMGJkNTk4M2ZjZGZkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRl
bXBsYXRlLnhzbApAQCAtMCwwICsxLDQ2IEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4w
IiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgICB4
bWxuczp4aHRtbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIKKyAgICB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIKKyAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMS9YTUxTY2hlbWEiCisgICAgZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM9InhodG1sIHhz
bCB4cyI+CisgICAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiIG9taXQteG1sLWRlY2xhcmF0aW9u
PSJ5ZXMiLz4KKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpodG1sIj4KKyAgICAgICAg
PGh0bWw+CisgICAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICA8dGVtcGxhdGU+Cisg
ICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLy94aHRtbDpi
b2R5L3hodG1sOnNwYW4iIC8+CisgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAg
ICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii8veGh0bWw6dGVtcGxhdGUvL3ho
dG1sOnNwYW4iIC8+CisgICAgICAgICAgICAgICAgPHA+VGhpcyB0ZXN0cyB0aGF0IFhTTFQgdHJh
bnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50byBYSFRNTCB0ZW1wbGF0ZSBlbGVtZW50IGNvbnRlbnQg
d2hlbiBhcHBseWluZyBYU0wgdGVtcGxhdGUuCisgICAgICAgICAgICAgICAgICAgSWYgdGhlIHRl
c3Qgc3VjY2VlZHMsIHRoZSB0cmFuc2Zvcm0gd2lsbCBoYXZlIHN3YXBwZWQgdGhlIHBvc2l0aW9u
IG9mIHRoZSBib2R5IHNwYW5zIChBIGFuZCBCKSB3aXRoIHRoZSB0ZW1wbGF0ZSBjb250ZW50IHNw
YW5zIChDIGFuZCBEKQorICAgICAgICAgICAgICAgICAgIGFuZCByZXBsYWNlZCB0aGUgc3BhbnMg
d2l0aCBkaXZzLjwvcD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGRpdkNoaWxkVGV4dE5vZGVzKHBhcmVu
dCkgeworICAgIHZhciBvdXRwdXQgPSAnJzsKKworICAgIGZvciAodmFyIGNoaWxkID0gcGFyZW50
LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKSB7CisgICAgICAg
IGlmIChjaGlsZC50YWdOYW1lID09ICdkaXYnKSB7CisgICAgICAgICAgICBvdXRwdXQgKz0gY2hp
bGQudGV4dENvbnRlbnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gb3V0cHV0Owor
fQorCit2YXIgc3BhbiA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpKTsKK3NwYW4udGV4dENvbnRlbnQgPSAnQm9keSBkaXZzOiAnICsgZGl2
Q2hpbGRUZXh0Tm9kZXMoZG9jdW1lbnQuYm9keSk7CisKK3NwYW4gPSBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7Cit2YXIgdGVtcGxhdGUg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZScpOworc3Bhbi50ZXh0Q29udGVudCA9
ICcsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogJyArIGRpdkNoaWxkVGV4dE5vZGVzKHRlbXBsYXRl
LmNvbnRlbnQpOworPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgIDwvaHRt
bD4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpz
cGFuIj4KKyAgICAgICAgPGRpdj48eHNsOnZhbHVlLW9mIHNlbGVjdD0idGV4dCgpIiAvPjwvZGl2
PgorICAgIDwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXByb2Nl
c3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXBy
b2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFmMmZkOWNkNThmMTVk
OWZjMDhjOTVmOTMxNzVmZjFkOGIxNGYxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBYU0xUIHRyYW5zZm9ybXMgY2FuIHRyYXZlcnNlIGludG8g
WEhUTUwgdGVtcGxhdGUgZWxlbWVudCBjb250ZW50IHdoZW4gYXBwbHlpbmcgWFNMIHRlbXBsYXRl
LiBJZiB0aGUgdGVzdCBzdWNjZWVkcywgdGhlIHRyYW5zZm9ybSB3aWxsIGhhdmUgc3dhcHBlZCB0
aGUgcG9zaXRpb24gb2YgdGhlIGJvZHkgc3BhbnMgKEEgYW5kIEIpIHdpdGggdGhlIHRlbXBsYXRl
IGNvbnRlbnQgc3BhbnMgKEMgYW5kIEQpIGFuZCByZXBsYWNlZCB0aGUgc3BhbnMgd2l0aCBkaXZz
LgorCitCb2R5IGRpdnM6IENELCBUZW1wbGF0ZSBjb250ZW50IGRpdnM6IEFCCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NWEwZGRjYzBmOGY4M2EwYjM4YThkZWRmZDBhNzkxZTZkYTBkODM3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbApA
QCAtMCwwICsxLDUzIEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorPHA+VGhpcyB0ZXN0cyB0aGF0IFhTTFQgdHJhbnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50byBY
SFRNTCB0ZW1wbGF0ZSBlbGVtZW50IGNvbnRlbnQgd2hlbiBhcHBseWluZyBYU0wgdGVtcGxhdGUu
CitJZiB0aGUgdGVzdCBzdWNjZWVkcywgdGhlIHRyYW5zZm9ybSB3aWxsIGhhdmUgc3dhcHBlZCB0
aGUgcG9zaXRpb24gb2YgdGhlIGJvZHkgc3BhbnMgKEEgYW5kIEIpIHdpdGggdGhlIHRlbXBsYXRl
IGNvbnRlbnQgc3BhbnMgKEMgYW5kIEQpCithbmQgcmVwbGFjZWQgdGhlIHNwYW5zIHdpdGggZGl2
cy48L3A+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCXRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworCit2YXIgcmVxdWVzdGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Cit2YXIg
cHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTsKK3ZhciBzZXJpYWxpemVyID0gbmV3IFhN
TFNlcmlhbGl6ZXIoKTsKKworZnVuY3Rpb24gZ2V0WE1MRG9jdW1lbnQobmFtZSkKK3sKKwlyZXF1
ZXN0ZXIub3BlbigiR0VUIiwgbmFtZSwgZmFsc2UpOworCXJlcXVlc3Rlci5zZW5kKG51bGwpOwor
CXJldHVybiByZXF1ZXN0ZXIucmVzcG9uc2VYTUw7Cit9CisKK2Z1bmN0aW9uIGFkZFN0cmluZ1Jl
c3VsdCh0ZXh0KQoreworCWRvY3VtZW50LndyaXRlbG4oIjxzcGFuPiIgKyB0ZXh0ICsgIjwvc3Bh
bj4iKTsKK30KKworZnVuY3Rpb24gZGl2Q2hpbGRUZXh0Tm9kZXMocGFyZW50KSB7CisgICAgdmFy
IG91dHB1dCA9ICcnOworCisgICAgZm9yICh2YXIgY2hpbGQgPSBwYXJlbnQuZmlyc3RDaGlsZDsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKKyAgICAgICAgaWYgKGNoaWxkLnRh
Z05hbWUgPT0gJ2RpdicpIHsKKyAgICAgICAgICAgIG91dHB1dCArPSBjaGlsZC50ZXh0Q29udGVu
dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBvdXRwdXQ7Cit9CisKK3ZhciB4bWwg
PSBnZXRYTUxEb2N1bWVudCgieHNsdC14aHRtbC10ZW1wbGF0ZS54bWwiKTsKK3ZhciB4c2wgPSBn
ZXRYTUxEb2N1bWVudCgicmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbCIpOworCitwcm9jZXNz
b3IuaW1wb3J0U3R5bGVzaGVldCh4c2wpOworCit2YXIgb3duZXJEb2N1bWVudCA9IGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCIiLCAidGVzdCIsIG51bGwpOwordmFyIGZy
YWcgPSBwcm9jZXNzb3IudHJhbnNmb3JtVG9GcmFnbWVudCh4bWwsIG93bmVyRG9jdW1lbnQpOwor
CithZGRTdHJpbmdSZXN1bHQoJ0JvZHkgZGl2czogJyArIGRpdkNoaWxkVGV4dE5vZGVzKGZyYWcu
cXVlcnlTZWxlY3RvcignYm9keScpKSArIAorICAgICAgICAgICAgICAgICcsIFRlbXBsYXRlIGNv
bnRlbnQgZGl2czogJyArIGRpdkNoaWxkVGV4dE5vZGVzKGZyYWcucXVlcnlTZWxlY3RvcigndGVt
cGxhdGUnKS5jb250ZW50KSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHNsL3hz
bHQteGh0bWwtdGVtcGxhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNs
dC14aHRtbC10ZW1wbGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU5MjhmN2RmMzU0MDY4
NjFhOWM3MGRjMTU0ZmYyYzU0Yzk5OGIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorQworRAorVGhpcyB0ZXN0cyB0aGF0IFhTTFQgdHJhbnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50
byBYSFRNTCB0ZW1wbGF0ZSBlbGVtZW50IGNvbnRlbnQgd2hlbiBhcHBseWluZyBYU0wgdGVtcGxh
dGUuIElmIHRoZSB0ZXN0IHN1Y2NlZWRzLCB0aGUgdHJhbnNmb3JtIHdpbGwgaGF2ZSBzd2FwcGVk
IHRoZSBwb3NpdGlvbiBvZiB0aGUgYm9keSBzcGFucyAoQSBhbmQgQikgd2l0aCB0aGUgdGVtcGxh
dGUgY29udGVudCBzcGFucyAoQyBhbmQgRCkgYW5kIHJlcGxhY2VkIHRoZSBzcGFucyB3aXRoIGRp
dnMuCisKK0JvZHkgZGl2czogQ0QsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogQUIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxZDcy
YmMyZTAyMWEwYjNmYjA1MTRlMDVmOTQ1MWYyNDA3ZTE2OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sCkBAIC0wLDAgKzEsMTcg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8P3htbC1zdHlsZXNo
ZWV0IGhyZWY9InJlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2wiIHR5cGU9InRleHQveHNsIj8+
CisKKzwhRE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEt
c3RyaWN0LmR0ZCI+CisKKzxodG1sIHhtbDpsYW5nPSJlbi11cyIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxib2R5PgorICAgICAgICA8c3Bhbj5BPC9zcGFuPgor
ICAgICAgICA8c3Bhbj5CPC9zcGFuPgorICAgICAgICA8dGVtcGxhdGU+CisgICAgICAgICAgICA8
c3Bhbj5DPC9zcGFuPgorICAgICAgICAgICAgPHNwYW4+RDwvc3Bhbj4KKyAgICAgICAgPC90ZW1w
bGF0ZT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwMDM5Njc2MjU4
ODA2NWY0OGEyMDg0NTNkYWM4ODAyMjEzOTc2M2RmLi5lMzAzYjBhYTIyNmM3OWFjZmMzZjlmMjA0
Y2QwOTc0ZTk4YzQ2YjNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtODgsOCArODgsMTEgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0
LWNvbnRlbnQtdHlwZS1kYXNoYm9hcmQuaHRtbCBbIFdvbnRGaXggXQogZmFzdC9jc3MvZHJhZ2dh
YmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdvbnRGaXggXQogCiAjIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKSBpcyBkaXNhYmxlZC4KLXdlYmtpdC5vcmcvYi8xMDM1NyBmYXN0L2RvbS9IVE1MVGVt
cGxhdGVFbGVtZW50IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTAzNTcgaHRtbDVsaWIvcnVuLXRl
bXBsYXRlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM1NDcgZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBodG1sNWxpYi9ydW4t
dGVtcGxhdGUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0L3hzbC94c2x0
LXhodG1sLXRlbXBsYXRlLnhtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0L3hw
YXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEw
MzU0NyBmYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sIFsgU2tpcCBdCiAKICMg
VGhlc2UgdGVzdCAtYXBwbGUtIGFuZCAta2h0bWwtIHByZWZpeGVkIENTUyBwcm9wZXJ0aWVzLCB3
aGljaCB3ZSBkb24ndCBzdXBwb3J0LgogaW5zcGVjdG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMu
aHRtbCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA4YzJhYjc2NmUwZjA3ZDJjODQzMTlhMjdjYmMwMDEzZWI4ZjBmYzUzLi40YTcwZDAz
ZjI3ZTc0MWJjNmI1OGFkNWNmYzc2YzQzNTIxYzQ4NTdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDM5LDYgKzQzOSw5IEBAIGFjY2Vzc2liaWxpdHkv
Y29ycmVzcG9uZGluZy1jb250cm9sLWRlbGV0ZWQtY3Jhc2guaHRtbAogIyBFTkFCTEUoVEVNUExB
VEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CiBo
dG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54
bWwKK2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCitmYXN0L3hzbC94c2x0
LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sCiAKICMgSlNDIGRvZXMgbm90IHN1cHBvcnQgc2V0SXNv
bGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luIChodHRwOi8vd2Via2l0Lm9yZy9iLzYxNTQwKQogaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYyNzg3YjMyNTJmODYw
ZmFiZmU0MDQ5NWZhYTkwN2ZhYmE3ODYyZi4uNjBjYjk2M2FjNjI3MzBjM2RlZTUxZDFmYzU0ZDJi
NDg5ZTA1OGE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xOTEsNiArMTkxLDkgQEAgZmFzdC9jc3MvY3Vyc29yLXBhcnNpbmctaW1hZ2Utc2V0Lmh0bWwK
ICMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgogZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudAogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKK2Zhc3QveHNsL3hzbHQt
eGh0bWwtdGVtcGxhdGUueG1sCitmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRt
bAorZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAogCiAjIEZhaWwgdW50aWwg
U1VCUElYRUxfTEFZT1VUIGlzIGVuYWJsZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1NTMyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDg3Yzc5M2RmYTAwNmMxY2FlYzFhOTBkNDZiNjkwOWRiYmYzN2IwMTYuLmQ3MzMw
ZTdlZmRhMzVlMmRiYWQ3ZmZhODI4ZmVkYTM3Mjc0ZGU5NjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTMzLDYgKzE1MzMsOSBAQCBmYXN0L2RvbS9z
aGFkb3cKICMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgogZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudAogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKK2Zhc3QveHNs
L3hzbHQteGh0bWwtdGVtcGxhdGUueG1sCitmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1l
bnQuaHRtbAorZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAogCiAjIENTUyBS
ZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0Lm9yZy9iLzU3MzEy
CiBmYXN0L3JlZ2lvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDZkYWVhNjU3NTBjY2QxNTczZmI5Y2M2NmYzYmZlZDE3YzEwOWI0NDAu
LmY2NjY2MjQyNWYwYTZhMDMyMDNkNGYwMGM5MmZhOGZhMjhkMTY5ZWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA2Miw2ICsyMDYy
LDkgQEAgZmFzdC9kb20vc2hhZG93CiAjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNh
YmxlZC4KIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKIGh0bWw1bGliL3J1bi10ZW1wbGF0
ZS5odG1sCitmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbAorZmFzdC94cGF0aC94cGF0
aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWwKK2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRl
Lmh0bWwKIAogIyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dl
YmtpdC5vcmcvYi81NzMxMgogZmFzdC9yZWdpb25zCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184073</attachid>
            <date>2013-01-22 16:38:40 -0800</date>
            <delta_ts>2013-01-23 16:49:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106491-20130122163534.patch</filename>
            <type>text/plain</type>
            <size>19934</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE2NWQ3ZDY3YjFmMzIz
ODVmODVmNjZjNzYzYTNjYzdjZDE2M2FhNS4uZTdkMmNhMWI1YWI4MTgzMjdmNjdkMTkyMjYyODNm
MTlmNGYzZmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAxLTExICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVtcGxhdGUg
ZWxlbWVudCBzaG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBodHRwczovL2R2Y3Mu
dzMub3JnL2hnL3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvZjMzNjIyYzM5YzVlL3NwZWMvdGVtcGxh
dGVzL2luZGV4Lmh0bWwjcGFyc2luZy14aHRtbC1kb2N1bWVudHMuCisgICAgICAgIGh0dHBzOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS9mMzM2MjJjMzljNWUvc3BlYy90
ZW1wbGF0ZXMvaW5kZXguaHRtbCNzZXJpYWxpemluZy14aHRtbC1kb2N1bWVudHMuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgWE1MIHBhcnNlciBpbiB0d28gd2F5czogKDEpIHdo
ZW4gbm9kZXMgYXJlIGNyZWF0ZWQsIHRoZWlyIG93bmVyIGRvY3VtZW50IGlzCisgICAgICAgIHRo
ZSBvd25lciBkb2N1bWVudCBvZiB0aGUgY3VycmVudCBub2RlLCByYXRoZXIgdGhhbiB0aGUgY29u
dGFpbmluZyBkb2N1bWVudCwgYW5kICgyKSB3aGVuIGFuIEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAg
ICAgICAgaXMgZW5jb3VudGVyZWQsIGl0cyBjb250ZW50IGRvY3VtZW50IGZyYWdtZW50IGlzIHB1
c2hlZCBvbnRvIHRoZSBzdGFjaywgcmF0aGVyIHRoYW4gdGhlIGVsZW1lbnQgaXRzZWxmLCBzbyB0
aGF0IGNoaWxkcmVuCisgICAgICAgIGFyZSBhcHBlbmRlZCB0byB0aGUgdGVtcGxhdGUgY29udGVu
dC4gQWxzbywgYmVjYXVzZSBYU0xUIG9wZXJhdGVzIG9uIHRoZSBzZXJpYWxpemVkIGlucHV0IGRv
Y3VtZW50LCB0cmFuc2Zvcm1zIGNvbnNpZGVyCisgICAgICAgIHRlbXBsYXRlIGNvbnRlbnRzIHRv
IGJlIGRlc2NlbmRhbnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1sCisgICAgICAgICAgICAg
ICBmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKKworICAgICAgICAqIHhtbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OmVudGVyVGV4dCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVu
dE5zKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNkYXRhQmxv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNvbW1lbnQpOgorCiAy
MDEzLTAxLTIyICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgRml4IGFzc2VydGlvbnMgaW4gbWFrZThCaXRGcm9tMTZCaXRTb3VyY2UoKSB3aXRoIHRocmVh
ZGVkIHBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyLmNwcAppbmRleCA1M2IyYzRiZTIzMDc0MDA2MGQ3NmYzY2I3NWYxNTBlYmM4MTFjMTYxLi40
NDdhYjFlZjJjM2U5MGRjYTcwYTZkMGVlODhkMWZlNTQ1YzQxN2YzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMTQ2LDcgKzE0Niw3
IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVudGVyVGV4dCgpCiAgICAgQVNTRVJUKG1fYnVm
ZmVyZWRUZXh0LnNpemUoKSA9PSAwKTsKICNlbmRpZgogICAgIEFTU0VSVCghbV9sZWFmVGV4dE5v
ZGUpOwotICAgIG1fbGVhZlRleHROb2RlID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksICIiKTsK
KyAgICBtX2xlYWZUZXh0Tm9kZSA9IFRleHQ6OmNyZWF0ZShtX2N1cnJlbnROb2RlLT5kb2N1bWVu
dCgpLCAiIik7CiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobV9sZWFmVGV4
dE5vZGUuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggNzhiODA2ZDVhYTdhMTE2YjM3YjU3
YWQ0MTdlOTcxNjVkYmM5NzM2MC4uNjBkMjQ3NGU4NjZiOGE5NjdjOWFkZjFkOWViNWVlM2NmM2Qy
ZWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkhUTUxMaW5r
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTdHlsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGVtcGxhdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC03ODgsNyArNzg5LDcgQEAgdm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25z
dCB4bWxDaGEKICAgICBtX3Nhd0ZpcnN0RWxlbWVudCA9IHRydWU7CiAKICAgICBRdWFsaWZpZWRO
YW1lIHFOYW1lKHByZWZpeCwgbG9jYWxOYW1lLCB1cmkpOwotICAgIFJlZlB0cjxFbGVtZW50PiBu
ZXdFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChxTmFtZSwgdHJ1ZSk7CisgICAg
UmVmUHRyPEVsZW1lbnQ+IG5ld0VsZW1lbnQgPSBtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLT5j
cmVhdGVFbGVtZW50KHFOYW1lLCB0cnVlKTsKICAgICBpZiAoIW5ld0VsZW1lbnQpIHsKICAgICAg
ICAgc3RvcFBhcnNpbmcoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODE4LDcgKzgxOSwxNCBAQCB2
b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxM
b2NhbE5hbWUsIGNvbnN0IHhtbENoYQogCiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5k
Q2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CiAKLSAgICBwdXNoQ3VycmVudE5vZGUobmV3RWxlbWVu
dC5nZXQoKSk7CisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgaWYgKG5ld0VsZW1l
bnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0ZW1wbGF0ZVRhZykpCisgICAgICAgIHB1c2hDdXJy
ZW50Tm9kZSh0b0hUTUxUZW1wbGF0ZUVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSktPmNvbnRlbnQo
KSk7CisgICAgZWxzZQorI2Vsc2UKKyAgICAgICAgcHVzaEN1cnJlbnROb2RlKG5ld0VsZW1lbnQu
Z2V0KCkpOworI2VuZGlmCisKICAgICBpZiAobV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRhY2hl
ZCgpKQogICAgICAgICBuZXdFbGVtZW50LT5hdHRhY2goKTsKIApAQCAtOTYxLDcgKzk2OSw3IEBA
IHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbihjb25zdCB4bWxD
aGFyKiB0YXJnZXQsIGNvbnN0IHhtbENoCiAKICAgICAvLyAjIyMgaGFuZGxlIGV4Y2VwdGlvbnMK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0
aW9uPiBwaSA9IGRvY3VtZW50KCktPmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigKKyAgICBS
ZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBwaSA9IG1fY3VycmVudE5vZGUtPmRvY3VtZW50
KCktPmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigKICAgICAgICAgdG9TdHJpbmcodGFyZ2V0
KSwgdG9TdHJpbmcoZGF0YSksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKQEAg
LTk5NSw3ICsxMDAzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2RhdGFCbG9jayhjb25z
dCB4bWxDaGFyKiBzLCBpbnQgbGVuKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0cjxD
REFUQVNlY3Rpb24+IG5ld05vZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShkb2N1bWVudCgpLCB0
b1N0cmluZyhzLCBsZW4pKTsKKyAgICBSZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdOb2RlID0gQ0RB
VEFTZWN0aW9uOjpjcmVhdGUobV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwgdG9TdHJpbmcocywg
bGVuKSk7CiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3Tm9kZS5nZXQo
KSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3
Tm9kZS0+YXR0YWNoKCk7CkBAIC0xMDEzLDcgKzEwMjEsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpjb21tZW50KGNvbnN0IHhtbENoYXIqIHMpCiAKICAgICBleGl0VGV4dCgpOwogCi0gICAg
UmVmUHRyPENvbW1lbnQ+IG5ld05vZGUgPSBDb21tZW50OjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9T
dHJpbmcocykpOworICAgIFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRl
KG1fY3VycmVudE5vZGUtPmRvY3VtZW50KCksIHRvU3RyaW5nKHMpKTsKICAgICBtX2N1cnJlbnRO
b2RlLT5wYXJzZXJBcHBlbmRDaGlsZChuZXdOb2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYm
ICFuZXdOb2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdOb2RlLT5hdHRhY2goKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBkMDMxMTJjNmU5YWMwNzkwMmNkNzczZjVkNWEzMTc1OGJiMGZlMDVlLi5jZjZkMTg1ZmM4OWQ2
ZGY2Zjg0ODAzMzczMjVlOGM0NTFhZTQzYTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMt
MDEtMTEgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBUZW1wbGF0ZSBlbGVtZW50IHNob3VsZCBwYXJzZSBpbiBYSFRNTCBqdXN0IGFzIGl0IGRvZXMg
aW4gSFRNTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA2NDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgICog
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0
aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLnhtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QveHNsL3Jlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2w6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUu
eG1sOiBBZGRlZC4KKwogMjAxMy0wMS0yMiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDAxNzEuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmct
YW5kLXNlcmlhbGl6YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNzBkZmIxMGVlNjg0MWQ0ZmY5ODA0YWEzNmM3NGYxNjY2ZTc5MDY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxl
bWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBjb250ZW50IHdpdGhpbiB0ZW1wbGF0ZSBpcyBsaWZ0
ZWQgdG8gdGhlIHRlbXBsYXRlIGNvbnRlbnRzIHdoZW4gcGFyc2VkIGFzIHhodG1sLgorVGhlIHRl
bXBsYXRlIGNvbnRlbnQgbWFkZSBpdCB0aHJvdWdoIHRoZSB3b3JtaG9sZQorPHRlbXBsYXRlIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48ZGl2PlRlbXBsYXRlIGNvbnRlbnQ8
L2Rpdj48L3RlbXBsYXRlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRl
bXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0aW9uLnhtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2luZy1hbmQtc2Vy
aWFsaXphdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk0ZTQ5YzA5NmMxMjNlMDM1YTZiNmJlYzdkN2I1
NGUyNzA3ZGE2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFyc2luZy1hbmQtc2VyaWFsaXphdGlvbi54bWwKQEAgLTAs
MCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFRE
L3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbDpsYW5nPSJlbi11cyIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxib2R5PgorICAgICAgICA8dGVtcGxhdGU+
PGRpdj5UZW1wbGF0ZSBjb250ZW50PC9kaXY+PC90ZW1wbGF0ZT4KKyAgICAgICAgPHNwYW4+VGhp
cyB0ZXN0cyB0aGF0IGNvbnRlbnQgd2l0aGluIHRlbXBsYXRlIGlzIGxpZnRlZCB0byB0aGUgdGVt
cGxhdGUgY29udGVudHMgd2hlbiBwYXJzZWQgYXMgeGh0bWwuPC9zcGFuPgorICAgICAgICA8ZGl2
IGlkPSJvdXRwdXQiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0ic2VyaWFsaXph
dGlvbiI+CisgICAgICAgIDwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwordmFyIG91dHB1dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKTsKK3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInRlbXBsYXRlIik7CitpZiAodGVtcGxhdGUuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0
aCA+IHRlbXBsYXRlLmNoaWxkTm9kZXMubGVuZ3RoKQorICBvdXRwdXQudGV4dENvbnRlbnQgPSAi
VGhlIHRlbXBsYXRlIGNvbnRlbnQgbWFkZSBpdCB0aHJvdWdoIHRoZSB3b3JtaG9sZVxuIjsKKwor
dmFyIHNlcmlhbGl6YXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VyaWFsaXphdGlv
biIpOworc2VyaWFsaXphdGlvbi50ZXh0Q29udGVudCA9IG5ldyBYTUxTZXJpYWxpemVyKCkuc2Vy
aWFsaXplVG9TdHJpbmcodGVtcGxhdGUpOworPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmZGI0MmExYzI5NDlhMzI4YjcwOTJlZGI0MmMyMTNhYzA5MjE1MWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGhpcyB0ZXN0cyB0aGF0IFhQYXRoIGV4cHJlc3Np
b25zIGRvIG5vdCBjb25zaWRlciAodHJhdmVyc2UgaW50bykgdGVtcGxhdGUgY29udGVudAorCitB
IEIKK1BBU1MgZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBY
UGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMgMgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzNjOWZmNWEyMGU5ZWNiOWVkYjdlMjk4NDZhNDQwZTc2MjUzODRlNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCkBA
IC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgWFBhdGggZXhwcmVzc2lvbnMgZG8gbm90IGNvbnNp
ZGVyICh0cmF2ZXJzZSBpbnRvKSB0ZW1wbGF0ZSBjb250ZW50PC9wPgorCis8ZGl2IGlkPXRlc3Q+
CisgICAgPHNwYW4+QTwvc3Bhbj4KKyAgICA8c3Bhbj5CPC9zcGFuPgorICAgIDx0ZW1wbGF0ZT4K
KyAgICAgICAgPHNwYW4+Qzwvc3Bhbj4KKyAgICAgICAgPHNwYW4+RDwvc3Bhbj4KKyAgICA8L3Rl
bXBsYXRlPgorPC9kaXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3ZhciByZXN1bHQgPSBk
b2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLy9zcGFuKScsIHRlc3QsIG51bGwsIFhQYXRoUmVzdWx0
Lk5VTUJFUl9UWVBFLCBudWxsKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQo
Ly9zcGFuKScsIHRlc3QsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1i
ZXJWYWx1ZSIsICIyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QveHNsL3Jlc291cmNlcy94aHRtbC10ZW1wbGF0ZS54c2wgYi9MYXlv
dXRUZXN0cy9mYXN0L3hzbC9yZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0NjBhNDQzYzNmNzhhZDk4ZmVlYTVjMTQzM2MwYmQ1OTgzZmNkZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC9yZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNsCkBA
IC0wLDAgKzEsNDYgQEAKKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgorICAgIHhtbG5zOnhodG1sPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIgorICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIgorICAgIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYSIKKyAgICBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcz0ieGh0bWwgeHNsIHhzIj4KKyAgICA8
eHNsOm91dHB1dCBtZXRob2Q9InhtbCIgb21pdC14bWwtZGVjbGFyYXRpb249InllcyIvPgorICAg
IDx4c2w6dGVtcGxhdGUgbWF0Y2g9InhodG1sOmh0bWwiPgorICAgICAgICA8aHRtbD4KKyAgICAg
ICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KKyAgICAgICAgICAgICAg
ICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIvL3hodG1sOmJvZHkveGh0bWw6c3Bh
biIgLz4KKyAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgorICAgICAgICAgICAgICAgIDx4c2w6
YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLy94aHRtbDp0ZW1wbGF0ZS8veGh0bWw6c3BhbiIgLz4K
KyAgICAgICAgICAgICAgICA8cD5UaGlzIHRlc3RzIHRoYXQgWFNMVCB0cmFuc2Zvcm1zIGNhbiB0
cmF2ZXJzZSBpbnRvIFhIVE1MIHRlbXBsYXRlIGVsZW1lbnQgY29udGVudCB3aGVuIGFwcGx5aW5n
IFhTTCB0ZW1wbGF0ZS4KKyAgICAgICAgICAgICAgICAgICBJZiB0aGUgdGVzdCBzdWNjZWVkcywg
dGhlIHRyYW5zZm9ybSB3aWxsIGhhdmUgc3dhcHBlZCB0aGUgcG9zaXRpb24gb2YgdGhlIGJvZHkg
c3BhbnMgKEEgYW5kIEIpIHdpdGggdGhlIHRlbXBsYXRlIGNvbnRlbnQgc3BhbnMgKEMgYW5kIEQp
CisgICAgICAgICAgICAgICAgICAgYW5kIHJlcGxhY2VkIHRoZSBzcGFucyB3aXRoIGRpdnMuPC9w
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKworZnVuY3Rpb24gZGl2Q2hpbGRUZXh0Tm9kZXMocGFyZW50KSB7CisgICAgdmFy
IG91dHB1dCA9ICcnOworCisgICAgZm9yICh2YXIgY2hpbGQgPSBwYXJlbnQuZmlyc3RDaGlsZDsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKKyAgICAgICAgaWYgKGNoaWxkLnRh
Z05hbWUgPT0gJ2RpdicpIHsKKyAgICAgICAgICAgIG91dHB1dCArPSBjaGlsZC50ZXh0Q29udGVu
dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBvdXRwdXQ7Cit9CisKK3ZhciBzcGFu
ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFu
JykpOworc3Bhbi50ZXh0Q29udGVudCA9ICdCb2R5IGRpdnM6ICcgKyBkaXZDaGlsZFRleHROb2Rl
cyhkb2N1bWVudC5ib2R5KTsKKworc3BhbiA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKK3ZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RlbXBsYXRlJyk7CitzcGFuLnRleHRDb250ZW50ID0gJywgVGVtcGxhdGUg
Y29udGVudCBkaXZzOiAnICsgZGl2Q2hpbGRUZXh0Tm9kZXModGVtcGxhdGUuY29udGVudCk7Cis8
L3NjcmlwdD4KKyAgICAgICAgICAgIDwvYm9keT4KKyAgICAgICAgPC9odG1sPgorICAgIDwveHNs
OnRlbXBsYXRlPgorICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InhodG1sOnNwYW4iPgorICAgICAg
ICA8ZGl2Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0ZXh0KCkiIC8+PC9kaXY+CisgICAgPC94c2w6
dGVtcGxhdGU+Cis8L3hzbDpzdHlsZXNoZWV0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBs
YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWYyZmQ5Y2Q1OGYxNWQ5ZmMwOGM5NWY5MzE3
NWZmMWQ4YjE0ZjFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNs
dC1wcm9jZXNzb3ItdGVtcGxhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0
ZXN0cyB0aGF0IFhTTFQgdHJhbnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50byBYSFRNTCB0ZW1wbGF0
ZSBlbGVtZW50IGNvbnRlbnQgd2hlbiBhcHBseWluZyBYU0wgdGVtcGxhdGUuIElmIHRoZSB0ZXN0
IHN1Y2NlZWRzLCB0aGUgdHJhbnNmb3JtIHdpbGwgaGF2ZSBzd2FwcGVkIHRoZSBwb3NpdGlvbiBv
ZiB0aGUgYm9keSBzcGFucyAoQSBhbmQgQikgd2l0aCB0aGUgdGVtcGxhdGUgY29udGVudCBzcGFu
cyAoQyBhbmQgRCkgYW5kIHJlcGxhY2VkIHRoZSBzcGFucyB3aXRoIGRpdnMuCisKK0JvZHkgZGl2
czogQ0QsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogQUIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1YTBkZGNjMGY4
ZjgzYTBiMzhhOGRlZGZkMGE3OTFlNmRhMGQ4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sCkBAIC0wLDAgKzEsNTMg
QEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+Cis8cD5UaGlzIHRl
c3RzIHRoYXQgWFNMVCB0cmFuc2Zvcm1zIGNhbiB0cmF2ZXJzZSBpbnRvIFhIVE1MIHRlbXBsYXRl
IGVsZW1lbnQgY29udGVudCB3aGVuIGFwcGx5aW5nIFhTTCB0ZW1wbGF0ZS4KK0lmIHRoZSB0ZXN0
IHN1Y2NlZWRzLCB0aGUgdHJhbnNmb3JtIHdpbGwgaGF2ZSBzd2FwcGVkIHRoZSBwb3NpdGlvbiBv
ZiB0aGUgYm9keSBzcGFucyAoQSBhbmQgQikgd2l0aCB0aGUgdGVtcGxhdGUgY29udGVudCBzcGFu
cyAoQyBhbmQgRCkKK2FuZCByZXBsYWNlZCB0aGUgc3BhbnMgd2l0aCBkaXZzLjwvcD4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisK
K3ZhciByZXF1ZXN0ZXIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKK3ZhciBwcm9jZXNzb3IgPSBu
ZXcgWFNMVFByb2Nlc3NvcigpOwordmFyIHNlcmlhbGl6ZXIgPSBuZXcgWE1MU2VyaWFsaXplcigp
OworCitmdW5jdGlvbiBnZXRYTUxEb2N1bWVudChuYW1lKQoreworCXJlcXVlc3Rlci5vcGVuKCJH
RVQiLCBuYW1lLCBmYWxzZSk7CisJcmVxdWVzdGVyLnNlbmQobnVsbCk7CisJcmV0dXJuIHJlcXVl
c3Rlci5yZXNwb25zZVhNTDsKK30KKworZnVuY3Rpb24gYWRkU3RyaW5nUmVzdWx0KHRleHQpCit7
CisJZG9jdW1lbnQud3JpdGVsbigiPHNwYW4+IiArIHRleHQgKyAiPC9zcGFuPiIpOworfQorCitm
dW5jdGlvbiBkaXZDaGlsZFRleHROb2RlcyhwYXJlbnQpIHsKKyAgICB2YXIgb3V0cHV0ID0gJyc7
CisKKyAgICBmb3IgKHZhciBjaGlsZCA9IHBhcmVudC5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC5uZXh0U2libGluZykgeworICAgICAgICBpZiAoY2hpbGQudGFnTmFtZSA9PSAnZGl2
JykgeworICAgICAgICAgICAgb3V0cHV0ICs9IGNoaWxkLnRleHRDb250ZW50OworICAgICAgICB9
CisgICAgfQorCisgICAgcmV0dXJuIG91dHB1dDsKK30KKwordmFyIHhtbCA9IGdldFhNTERvY3Vt
ZW50KCJ4c2x0LXhodG1sLXRlbXBsYXRlLnhtbCIpOwordmFyIHhzbCA9IGdldFhNTERvY3VtZW50
KCJyZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNsIik7CisKK3Byb2Nlc3Nvci5pbXBvcnRTdHls
ZXNoZWV0KHhzbCk7CisKK3ZhciBvd25lckRvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnQoIiIsICJ0ZXN0IiwgbnVsbCk7Cit2YXIgZnJhZyA9IHByb2Nlc3Nv
ci50cmFuc2Zvcm1Ub0ZyYWdtZW50KHhtbCwgb3duZXJEb2N1bWVudCk7CisKK2FkZFN0cmluZ1Jl
c3VsdCgnQm9keSBkaXZzOiAnICsgZGl2Q2hpbGRUZXh0Tm9kZXMoZnJhZy5xdWVyeVNlbGVjdG9y
KCdib2R5JykpICsgCisgICAgICAgICAgICAgICAgJywgVGVtcGxhdGUgY29udGVudCBkaXZzOiAn
ICsgZGl2Q2hpbGRUZXh0Tm9kZXMoZnJhZy5xdWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZScpLmNvbnRl
bnQpKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1w
bGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXhodG1sLXRlbXBs
YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTkyOGY3ZGYzNTQwNjg2MWE5YzcwZGMxNTRm
ZjJjNTRjOTk4YjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNs
dC14aHRtbC10ZW1wbGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDCitECitUaGlz
IHRlc3RzIHRoYXQgWFNMVCB0cmFuc2Zvcm1zIGNhbiB0cmF2ZXJzZSBpbnRvIFhIVE1MIHRlbXBs
YXRlIGVsZW1lbnQgY29udGVudCB3aGVuIGFwcGx5aW5nIFhTTCB0ZW1wbGF0ZS4gSWYgdGhlIHRl
c3Qgc3VjY2VlZHMsIHRoZSB0cmFuc2Zvcm0gd2lsbCBoYXZlIHN3YXBwZWQgdGhlIHBvc2l0aW9u
IG9mIHRoZSBib2R5IHNwYW5zIChBIGFuZCBCKSB3aXRoIHRoZSB0ZW1wbGF0ZSBjb250ZW50IHNw
YW5zIChDIGFuZCBEKSBhbmQgcmVwbGFjZWQgdGhlIHNwYW5zIHdpdGggZGl2cy4KKworQm9keSBk
aXZzOiBDRCwgVGVtcGxhdGUgY29udGVudCBkaXZzOiBBQgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3hz
bC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDFkNzJiYzJlMDIxYTBiM2Zi
MDUxNGUwNWY5NDUxZjI0MDdlMTY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0icmVz
b3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbCIgdHlwZT0idGV4dC94c2wiPz4KKworPCFET0NUWVBF
IGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisg
ICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4K
KworPGh0bWwgeG1sOmxhbmc9ImVuLXVzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CisgICAgPGJvZHk+CisgICAgICAgIDxzcGFuPkE8L3NwYW4+CisgICAgICAgIDxzcGFu
PkI8L3NwYW4+CisgICAgICAgIDx0ZW1wbGF0ZT4KKyAgICAgICAgICAgIDxzcGFuPkM8L3NwYW4+
CisgICAgICAgICAgICA8c3Bhbj5EPC9zcGFuPgorICAgICAgICA8L3RlbXBsYXRlPgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIyYmY1N2EyZmQzYzllNDI0NTQ4Yjk5
NDBiMjg3NTExOTg4NmJhNDMuLjhlZjE2YzQzZmU1MTYwN2UwNmQ3YjMyMTVmNjgyMzgyODRlMmRj
ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC05MSw2
ICs5MSwxMyBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQtY29udGVudC10eXBl
LWRhc2hib2FyZC5odG1sIFsgV29udEZpeCBdCiAjIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKSBp
cyBkaXNhYmxlZAogZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFdvbnRG
aXggXQogCisjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KK3dlYmtpdC5v
cmcvYi8xMDM1NDcgZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzEwMzU0NyBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzEwMzU0NyBmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRt
bCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzU0NyBmYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10
ZW1wbGF0ZS5odG1sIFsgU2tpcCBdCisKICMgVGhlc2UgdGVzdCAtYXBwbGUtIGFuZCAta2h0bWwt
IHByZWZpeGVkIENTUyBwcm9wZXJ0aWVzLCB3aGljaCB3ZSBkb24ndCBzdXBwb3J0LgogaW5zcGVj
dG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMuaHRtbCBbIFdvbnRGaXggXQogZmFzdC9jc3MvYXBw
bGUtcHJlZml4Lmh0bWwgWyBXb250Rml4IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYzBkOTBjNzEzNWMyYzc1Nzc0YTZiM2FiYTY0MmYxYmQwNjI3OTBj
YS4uOWRlZmY1NDFjOTY5MTdhZWM2MDcwZjU2ZjA2NmZiYzAwZGE5YTRkNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQzMiw2ICs0MzIsOSBAQCBhY2Nl
c3NpYmlsaXR5L2NvcnJlc3BvbmRpbmctY29udHJvbC1kZWxldGVkLWNyYXNoLmh0bWwKICMgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVkLgogZmFzdC9kb20vSFRNTFRlbXBsYXRl
RWxlbWVudAogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwKK2Zhc3QveHNsL3hzbHQteGh0bWwt
dGVtcGxhdGUueG1sCitmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbAorZmFz
dC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAogCiAjIEpTQyBkb2VzIG5vdCBzdXBw
b3J0IHNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbiAoaHR0cDovL3dlYmtpdC5vcmcvYi82
MTU0MCkKIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhy
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ4Y2Zm
NmQzMzc2MDJhODM0ZmZkZDhhMmU0YmNkMTQ0Mzk5NGJmMDcuLjJhYzM4NjJhMGQ2YTU2YTllOTVk
YmUyM2UxM2I1OWYyM2QxNTI1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTkyLDYgKzE5Miw5IEBAIGZhc3QvY3NzL2N1cnNvci1wYXJzaW5nLWltYWdl
LXNldC5odG1sCiAjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4KIGZhc3Qv
ZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCitmYXN0
L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbAorZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1l
bGVtZW50Lmh0bWwKK2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwKIAogIyBG
YWlsIHVudGlsIFNVQlBJWEVMX0xBWU9VVCBpcyBlbmFibGVkCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTUzMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA2YmQxMmQ3MDBhMWY5NDZmYzY5NGRkZmM0MWQwN2EwMWJkNjhi
NzkxLi5iZTdmMTg5ZTU5ZmExNzEzYjgwNzFlZDI3ZGNiODFlZTc3ZWZhMTg4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUzNCw2ICsxNTM0LDkgQEAg
ZmFzdC9kb20vc2hhZG93CiAjIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKSBpcyBkaXNhYmxlZC4K
IGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1s
CitmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbAorZmFzdC94cGF0aC94cGF0aC10ZW1w
bGF0ZS1lbGVtZW50Lmh0bWwKK2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRlbXBsYXRlLmh0bWwK
IAogIyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5v
cmcvYi81NzMxMgogZmFzdC9yZWdpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2ZTk0MzUyMGY5NDI0NGYyYTNkMThmZmE3ZjA5OWY5
OTQ3NTc1NTVmLi45M2E3MTQ3MWJiNGEzNjAyOTE1ZDgyNTkzMmEwOGRkNDU5NTI5N2Q3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIw
NjMsNiArMjA2Myw5IEBAIGZhc3QvZG9tL3NoYWRvdwogIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkgaXMgZGlzYWJsZWQuCiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50CiBodG1sNWxpYi9y
dW4tdGVtcGxhdGUuaHRtbAorZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKK2Zhc3Qv
eHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCitmYXN0L3hzbC94c2x0LXByb2Nlc3Nv
ci10ZW1wbGF0ZS5odG1sCiAKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQu
IGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184348</attachid>
            <date>2013-01-23 16:49:59 -0800</date>
            <delta_ts>2013-01-23 18:33:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106491-20130123164652.patch</filename>
            <type>text/plain</type>
            <size>19977</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmZGIwOTk3YWRkMjJi
MjczNDQ5OGJjZjExMzVjNzk0ZmNmZDQ5Yi4uN2YzNzBmMzAwOWY1MDFjNTk2OTA0ZDUwMjRlMDE0
NGIyMDJmMTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAxLTExICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVtcGxhdGUg
ZWxlbWVudCBzaG91bGQgcGFyc2UgaW4gWEhUTUwganVzdCBhcyBpdCBkb2VzIGluIEhUTUwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjQ5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBodHRwczovL2R2Y3Mu
dzMub3JnL2hnL3dlYmNvbXBvbmVudHMvcmF3LWZpbGUvZjMzNjIyYzM5YzVlL3NwZWMvdGVtcGxh
dGVzL2luZGV4Lmh0bWwjcGFyc2luZy14aHRtbC1kb2N1bWVudHMuCisgICAgICAgIGh0dHBzOi8v
ZHZjcy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS9mMzM2MjJjMzljNWUvc3BlYy90
ZW1wbGF0ZXMvaW5kZXguaHRtbCNzZXJpYWxpemluZy14aHRtbC1kb2N1bWVudHMuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgWE1MIHBhcnNlciBpbiB0d28gd2F5czogKDEpIHdo
ZW4gbm9kZXMgYXJlIGNyZWF0ZWQsIHRoZWlyIG93bmVyIGRvY3VtZW50IGlzCisgICAgICAgIHRo
ZSBvd25lciBkb2N1bWVudCBvZiB0aGUgY3VycmVudCBub2RlLCByYXRoZXIgdGhhbiB0aGUgY29u
dGFpbmluZyBkb2N1bWVudCwgYW5kICgyKSB3aGVuIGFuIEhUTUxUZW1wbGF0ZUVsZW1lbnQKKyAg
ICAgICAgaXMgZW5jb3VudGVyZWQsIGl0cyBjb250ZW50IGRvY3VtZW50IGZyYWdtZW50IGlzIHB1
c2hlZCBvbnRvIHRoZSBzdGFjaywgcmF0aGVyIHRoYW4gdGhlIGVsZW1lbnQgaXRzZWxmLCBzbyB0
aGF0IGNoaWxkcmVuCisgICAgICAgIGFyZSBhcHBlbmRlZCB0byB0aGUgdGVtcGxhdGUgY29udGVu
dC4gQWxzbywgYmVjYXVzZSBYU0xUIG9wZXJhdGVzIG9uIHRoZSBzZXJpYWxpemVkIGlucHV0IGRv
Y3VtZW50LCB0cmFuc2Zvcm1zIGNvbnNpZGVyCisgICAgICAgIHRlbXBsYXRlIGNvbnRlbnRzIHRv
IGJlIGRlc2NlbmRhbnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVF
bGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1sCisgICAgICAgICAgICAg
ICBmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwKKworICAgICAgICAqIHhtbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OmVudGVyVGV4dCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVu
dE5zKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNkYXRhQmxv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNvbW1lbnQpOgorCiAy
MDEzLTAxLTIzICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbVjhdIFJlZHVjZSB1c2FnZSBvZiBkZXByZWNhdGVkVjhTdHJpbmcoKSBhbmQgZGVwcmVjYXRl
ZFY4SW50ZWdlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IDUzYjJjNGJlMjMwNzQwMDYwZDc2ZjNjYjc1ZjE1MGViYzgxMWMxNjEu
LjQ0N2FiMWVmMmMzZTkwZGNhNzBhNmQwZWU4OGQxZmU1NDVjNDE3ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xNDYsNyArMTQ2
LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW50ZXJUZXh0KCkKICAgICBBU1NFUlQobV9i
dWZmZXJlZFRleHQuc2l6ZSgpID09IDApOwogI2VuZGlmCiAgICAgQVNTRVJUKCFtX2xlYWZUZXh0
Tm9kZSk7Ci0gICAgbV9sZWFmVGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgIiIp
OworICAgIG1fbGVhZlRleHROb2RlID0gVGV4dDo6Y3JlYXRlKG1fY3VycmVudE5vZGUtPmRvY3Vt
ZW50KCksICIiKTsKICAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBcHBlbmRDaGlsZChtX2xlYWZU
ZXh0Tm9kZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA4OGQyM2VlNjFiMTNiZWFmZTk2
MzA1NzkwNTk3OWE3NTIzYjA2MzFmLi5jNzJhNTJkNTY1NDBjNWEzM2EzYzk3ZmI0OWRjYTcxYzMz
MGU1MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiSFRNTExp
bmtFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZW1wbGF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKQEAgLTc4OSw3ICs3OTAsNyBAQCB2b2lkIFhNTERvY3Vt
ZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNv
bnN0IHhtbENoYQogICAgIG1fc2F3Rmlyc3RFbGVtZW50ID0gdHJ1ZTsKIAogICAgIFF1YWxpZmll
ZE5hbWUgcU5hbWUocHJlZml4LCBsb2NhbE5hbWUsIHVyaSk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+
IG5ld0VsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHFOYW1lLCB0cnVlKTsKKyAg
ICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IG1fY3VycmVudE5vZGUtPmRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQocU5hbWUsIHRydWUpOwogICAgIGlmICghbmV3RWxlbWVudCkgewogICAg
ICAgICBzdG9wUGFyc2luZygpOwogICAgICAgICByZXR1cm47CkBAIC04MTksNyArODIwLDE1IEBA
IHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENoYXIqIHht
bExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhCiAKICAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBcHBl
bmRDaGlsZChuZXdFbGVtZW50LmdldCgpKTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5U
KQorICAgIGlmIChuZXdFbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGVtcGxhdGVUYWcp
KQorICAgICAgICBwdXNoQ3VycmVudE5vZGUodG9IVE1MVGVtcGxhdGVFbGVtZW50KG5ld0VsZW1l
bnQuZ2V0KCkpLT5jb250ZW50KCkpOworICAgIGVsc2UKKyAgICAgICAgcHVzaEN1cnJlbnROb2Rl
KG5ld0VsZW1lbnQuZ2V0KCkpOworI2Vsc2UKICAgICBwdXNoQ3VycmVudE5vZGUobmV3RWxlbWVu
dC5nZXQoKSk7CisjZW5kaWYKKwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld0VsZW1lbnQtPmF0dGFj
aGVkKCkpCiAgICAgICAgIG5ld0VsZW1lbnQtPmF0dGFjaCgpOwogCkBAIC05NjIsNyArOTcxLDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc2luZ0luc3RydWN0aW9uKGNvbnN0IHht
bENoYXIqIHRhcmdldCwgY29uc3QgeG1sQ2gKIAogICAgIC8vICMjIyBoYW5kbGUgZXhjZXB0aW9u
cwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24+IHBpID0gZG9jdW1lbnQoKS0+Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKAorICAg
IFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IHBpID0gbV9jdXJyZW50Tm9kZS0+ZG9jdW1l
bnQoKS0+Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKAogICAgICAgICB0b1N0cmluZyh0YXJn
ZXQpLCB0b1N0cmluZyhkYXRhKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwpA
QCAtOTk2LDcgKzEwMDUsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjZGF0YUJsb2NrKGNv
bnN0IHhtbENoYXIqIHMsIGludCBsZW4pCiAKICAgICBleGl0VGV4dCgpOwogCi0gICAgUmVmUHRy
PENEQVRBU2VjdGlvbj4gbmV3Tm9kZSA9IENEQVRBU2VjdGlvbjo6Y3JlYXRlKGRvY3VtZW50KCks
IHRvU3RyaW5nKHMsIGxlbikpOworICAgIFJlZlB0cjxDREFUQVNlY3Rpb24+IG5ld05vZGUgPSBD
REFUQVNlY3Rpb246OmNyZWF0ZShtX2N1cnJlbnROb2RlLT5kb2N1bWVudCgpLCB0b1N0cmluZyhz
LCBsZW4pKTsKICAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBcHBlbmRDaGlsZChuZXdOb2RlLmdl
dCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBu
ZXdOb2RlLT5hdHRhY2goKTsKQEAgLTEwMTQsNyArMTAyMyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmNvbW1lbnQoY29uc3QgeG1sQ2hhciogcykKIAogICAgIGV4aXRUZXh0KCk7CiAKLSAg
ICBSZWZQdHI8Q29tbWVudD4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0
b1N0cmluZyhzKSk7CisgICAgUmVmUHRyPENvbW1lbnQ+IG5ld05vZGUgPSBDb21tZW50OjpjcmVh
dGUobV9jdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwgdG9TdHJpbmcocykpOwogICAgIG1fY3VycmVu
dE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld05vZGUuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcg
JiYgIW5ld05vZGUtPmF0dGFjaGVkKCkpCiAgICAgICAgIG5ld05vZGUtPmF0dGFjaCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDRkOWFmY2Y5NTMxYTJiNmUyZTA3MzE3OGIwYTM1NmQ0NTdjZDYxMjkuLjE2ZmZhNDc1ZGZm
NDY0NDMwM2U5MDJkMjUwOWM4MmQwYjMyZGIyNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
My0wMS0xMSAgUmFmYWVsIFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFRlbXBsYXRlIGVsZW1lbnQgc2hvdWxkIHBhcnNlIGluIFhIVE1MIGp1c3QgYXMgaXQgZG9l
cyBpbiBIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDY0OTEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6
YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbDog
QWRkZWQuCisgICAgICAgICogZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0
ZS54bWw6IEFkZGVkLgorCiAyMDEzLTAxLTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJLaXQgc2hvdWxkIHN1cHBvcnQgZGVjb2RpbmcgbXVs
dGktYnl0ZSBlbnRpdGllcyBpbiBYTUwgY29udGVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC94aHRtbC1wYXJzaW5nLWFuZC1zZXJpYWxpemF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1l
bnQveGh0bWwtcGFyc2luZy1hbmQtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzcwZGZiMTBlZTY4NDFkNGZmOTgwNGFhMzZjNzRmMTY2NmU3OTA2OQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQveGh0bWwtcGFy
c2luZy1hbmQtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlz
IHRlc3RzIHRoYXQgY29udGVudCB3aXRoaW4gdGVtcGxhdGUgaXMgbGlmdGVkIHRvIHRoZSB0ZW1w
bGF0ZSBjb250ZW50cyB3aGVuIHBhcnNlZCBhcyB4aHRtbC4KK1RoZSB0ZW1wbGF0ZSBjb250ZW50
IG1hZGUgaXQgdGhyb3VnaCB0aGUgd29ybWhvbGUKKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCI+PGRpdj5UZW1wbGF0ZSBjb250ZW50PC9kaXY+PC90ZW1wbGF0
ZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQv
eGh0bWwtcGFyc2luZy1hbmQtc2VyaWFsaXphdGlvbi54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGVtcGxhdGVFbGVtZW50L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE5NGU0OWMwOTZjMTIzZTAzNWE2YjZiZWM3ZDdiNTRlMjcwN2RhNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50
L3hodG1sLXBhcnNpbmctYW5kLXNlcmlhbGl6YXRpb24ueG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwh
RE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3Qv
L0VOIgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCI+Cis8aHRtbCB4bWw6bGFuZz0iZW4tdXMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4KKyAgICA8Ym9keT4KKyAgICAgICAgPHRlbXBsYXRlPjxkaXY+VGVtcGxhdGUg
Y29udGVudDwvZGl2PjwvdGVtcGxhdGU+CisgICAgICAgIDxzcGFuPlRoaXMgdGVzdHMgdGhhdCBj
b250ZW50IHdpdGhpbiB0ZW1wbGF0ZSBpcyBsaWZ0ZWQgdG8gdGhlIHRlbXBsYXRlIGNvbnRlbnRz
IHdoZW4gcGFyc2VkIGFzIHhodG1sLjwvc3Bhbj4KKyAgICAgICAgPGRpdiBpZD0ib3V0cHV0Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InNlcmlhbGl6YXRpb24iPgorICAgICAg
ICA8L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisKK3ZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0Iik7Cit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0
ZSIpOworaWYgKHRlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGggPiB0ZW1wbGF0ZS5j
aGlsZE5vZGVzLmxlbmd0aCkKKyAgb3V0cHV0LnRleHRDb250ZW50ID0gIlRoZSB0ZW1wbGF0ZSBj
b250ZW50IG1hZGUgaXQgdGhyb3VnaCB0aGUgd29ybWhvbGVcbiI7CisKK3ZhciBzZXJpYWxpemF0
aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcmlhbGl6YXRpb24iKTsKK3NlcmlhbGl6
YXRpb24udGV4dENvbnRlbnQgPSBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5n
KHRlbXBsYXRlKTsKKzwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRo
LXRlbXBsYXRlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94
cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmRiNDJhMWMy
OTQ5YTMyOGI3MDkyZWRiNDJjMjEzYWMwOTIxNTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDggQEAKK1RoaXMgdGVzdHMgdGhhdCBYUGF0aCBleHByZXNzaW9ucyBkbyBub3QgY29u
c2lkZXIgKHRyYXZlcnNlIGludG8pIHRlbXBsYXRlIGNvbnRlbnQKKworQSBCCitQQVNTIGRvY3Vt
ZW50LmV2YWx1YXRlKCdjb3VudCgvL3NwYW4pJywgdGVzdCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVN
QkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QveHBh
dGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYzlmZjVhMjBlOWVj
YjllZGI3ZTI5ODQ2YTQ0MGU3NjI1Mzg0ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL3hwYXRoLXRlbXBsYXRlLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDI2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0cyB0aGF0IFhQYXRoIGV4cHJlc3Npb25zIGRvIG5vdCBjb25zaWRlciAodHJhdmVyc2Ug
aW50bykgdGVtcGxhdGUgY29udGVudDwvcD4KKworPGRpdiBpZD10ZXN0PgorICAgIDxzcGFuPkE8
L3NwYW4+CisgICAgPHNwYW4+Qjwvc3Bhbj4KKyAgICA8dGVtcGxhdGU+CisgICAgICAgIDxzcGFu
PkM8L3NwYW4+CisgICAgICAgIDxzcGFuPkQ8L3NwYW4+CisgICAgPC90ZW1wbGF0ZT4KKzwvZGl2
PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdGVzdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVh
dGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwg
bnVsbCk7CitzaG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vc3BhbiknLCB0ZXN0
LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUiLCAiMiIp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3hzbC9yZXNvdXJjZXMveGh0bWwtdGVtcGxhdGUueHNsIGIvTGF5b3V0VGVzdHMvZmFzdC94
c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDYwYTQ0M2MzZjc4
YWQ5OGZlZWE1YzE0MzNjMGJkNTk4M2ZjZGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC94c2wvcmVzb3VyY2VzL3hodG1sLXRlbXBsYXRlLnhzbApAQCAtMCwwICsxLDQ2IEBA
Cis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgICB4bWxuczp4aHRtbD0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIKKyAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIK
KyAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgZXhj
bHVkZS1yZXN1bHQtcHJlZml4ZXM9InhodG1sIHhzbCB4cyI+CisgICAgPHhzbDpvdXRwdXQgbWV0
aG9kPSJ4bWwiIG9taXQteG1sLWRlY2xhcmF0aW9uPSJ5ZXMiLz4KKyAgICA8eHNsOnRlbXBsYXRl
IG1hdGNoPSJ4aHRtbDpodG1sIj4KKyAgICAgICAgPGh0bWw+CisgICAgICAgICAgICA8Ym9keT4K
KyAgICAgICAgICAgICAgICA8dGVtcGxhdGU+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBw
bHktdGVtcGxhdGVzIHNlbGVjdD0iLy94aHRtbDpib2R5L3hodG1sOnNwYW4iIC8+CisgICAgICAg
ICAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRl
cyBzZWxlY3Q9Ii8veGh0bWw6dGVtcGxhdGUvL3hodG1sOnNwYW4iIC8+CisgICAgICAgICAgICAg
ICAgPHA+VGhpcyB0ZXN0cyB0aGF0IFhTTFQgdHJhbnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50byBY
SFRNTCB0ZW1wbGF0ZSBlbGVtZW50IGNvbnRlbnQgd2hlbiBhcHBseWluZyBYU0wgdGVtcGxhdGUu
CisgICAgICAgICAgICAgICAgICAgSWYgdGhlIHRlc3Qgc3VjY2VlZHMsIHRoZSB0cmFuc2Zvcm0g
d2lsbCBoYXZlIHN3YXBwZWQgdGhlIHBvc2l0aW9uIG9mIHRoZSBib2R5IHNwYW5zIChBIGFuZCBC
KSB3aXRoIHRoZSB0ZW1wbGF0ZSBjb250ZW50IHNwYW5zIChDIGFuZCBEKQorICAgICAgICAgICAg
ICAgICAgIGFuZCByZXBsYWNlZCB0aGUgc3BhbnMgd2l0aCBkaXZzLjwvcD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1
bmN0aW9uIGRpdkNoaWxkVGV4dE5vZGVzKHBhcmVudCkgeworICAgIHZhciBvdXRwdXQgPSAnJzsK
KworICAgIGZvciAodmFyIGNoaWxkID0gcGFyZW50LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLm5leHRTaWJsaW5nKSB7CisgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09ICdkaXYn
KSB7CisgICAgICAgICAgICBvdXRwdXQgKz0gY2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gb3V0cHV0OworfQorCit2YXIgc3BhbiA9IGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKK3NwYW4udGV4
dENvbnRlbnQgPSAnQm9keSBkaXZzOiAnICsgZGl2Q2hpbGRUZXh0Tm9kZXMoZG9jdW1lbnQuYm9k
eSk7CisKK3NwYW4gPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NwYW4nKSk7Cit2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0
ZW1wbGF0ZScpOworc3Bhbi50ZXh0Q29udGVudCA9ICcsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czog
JyArIGRpdkNoaWxkVGV4dE5vZGVzKHRlbXBsYXRlLmNvbnRlbnQpOworPC9zY3JpcHQ+CisgICAg
ICAgICAgICA8L2JvZHk+CisgICAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKyAg
ICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpzcGFuIj4KKyAgICAgICAgPGRpdj48eHNsOnZh
bHVlLW9mIHNlbGVjdD0idGV4dCgpIiAvPjwvZGl2PgorICAgIDwveHNsOnRlbXBsYXRlPgorPC94
c2w6c3R5bGVzaGVldD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWFmMmZkOWNkNThmMTVkOWZjMDhjOTVmOTMxNzVmZjFkOGIxNGYxYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQtcHJvY2Vzc29yLXRl
bXBsYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBYU0xU
IHRyYW5zZm9ybXMgY2FuIHRyYXZlcnNlIGludG8gWEhUTUwgdGVtcGxhdGUgZWxlbWVudCBjb250
ZW50IHdoZW4gYXBwbHlpbmcgWFNMIHRlbXBsYXRlLiBJZiB0aGUgdGVzdCBzdWNjZWVkcywgdGhl
IHRyYW5zZm9ybSB3aWxsIGhhdmUgc3dhcHBlZCB0aGUgcG9zaXRpb24gb2YgdGhlIGJvZHkgc3Bh
bnMgKEEgYW5kIEIpIHdpdGggdGhlIHRlbXBsYXRlIGNvbnRlbnQgc3BhbnMgKEMgYW5kIEQpIGFu
ZCByZXBsYWNlZCB0aGUgc3BhbnMgd2l0aCBkaXZzLgorCitCb2R5IGRpdnM6IENELCBUZW1wbGF0
ZSBjb250ZW50IGRpdnM6IEFCCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hzbC94c2x0
LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC1wcm9j
ZXNzb3ItdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWEwZGRjYzBmOGY4M2EwYjM4YThkZWRm
ZDBhNzkxZTZkYTBkODM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wv
eHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKzxo
ZWFkPgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorPHA+VGhpcyB0ZXN0cyB0aGF0IFhTTFQg
dHJhbnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50byBYSFRNTCB0ZW1wbGF0ZSBlbGVtZW50IGNvbnRl
bnQgd2hlbiBhcHBseWluZyBYU0wgdGVtcGxhdGUuCitJZiB0aGUgdGVzdCBzdWNjZWVkcywgdGhl
IHRyYW5zZm9ybSB3aWxsIGhhdmUgc3dhcHBlZCB0aGUgcG9zaXRpb24gb2YgdGhlIGJvZHkgc3Bh
bnMgKEEgYW5kIEIpIHdpdGggdGhlIHRlbXBsYXRlIGNvbnRlbnQgc3BhbnMgKEMgYW5kIEQpCith
bmQgcmVwbGFjZWQgdGhlIHNwYW5zIHdpdGggZGl2cy48L3A+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCit2YXIgcmVxdWVzdGVy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Cit2YXIgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNz
b3IoKTsKK3ZhciBzZXJpYWxpemVyID0gbmV3IFhNTFNlcmlhbGl6ZXIoKTsKKworZnVuY3Rpb24g
Z2V0WE1MRG9jdW1lbnQobmFtZSkKK3sKKwlyZXF1ZXN0ZXIub3BlbigiR0VUIiwgbmFtZSwgZmFs
c2UpOworCXJlcXVlc3Rlci5zZW5kKG51bGwpOworCXJldHVybiByZXF1ZXN0ZXIucmVzcG9uc2VY
TUw7Cit9CisKK2Z1bmN0aW9uIGFkZFN0cmluZ1Jlc3VsdCh0ZXh0KQoreworCWRvY3VtZW50Lndy
aXRlbG4oIjxzcGFuPiIgKyB0ZXh0ICsgIjwvc3Bhbj4iKTsKK30KKworZnVuY3Rpb24gZGl2Q2hp
bGRUZXh0Tm9kZXMocGFyZW50KSB7CisgICAgdmFyIG91dHB1dCA9ICcnOworCisgICAgZm9yICh2
YXIgY2hpbGQgPSBwYXJlbnQuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNp
YmxpbmcpIHsKKyAgICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgPT0gJ2RpdicpIHsKKyAgICAgICAg
ICAgIG91dHB1dCArPSBjaGlsZC50ZXh0Q29udGVudDsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHJldHVybiBvdXRwdXQ7Cit9CisKK3ZhciB4bWwgPSBnZXRYTUxEb2N1bWVudCgieHNsdC14aHRt
bC10ZW1wbGF0ZS54bWwiKTsKK3ZhciB4c2wgPSBnZXRYTUxEb2N1bWVudCgicmVzb3VyY2VzL3ho
dG1sLXRlbXBsYXRlLnhzbCIpOworCitwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2wpOwor
Cit2YXIgb3duZXJEb2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3Vt
ZW50KCIiLCAidGVzdCIsIG51bGwpOwordmFyIGZyYWcgPSBwcm9jZXNzb3IudHJhbnNmb3JtVG9G
cmFnbWVudCh4bWwsIG93bmVyRG9jdW1lbnQpOworCithZGRTdHJpbmdSZXN1bHQoJ0JvZHkgZGl2
czogJyArIGRpdkNoaWxkVGV4dE5vZGVzKGZyYWcucXVlcnlTZWxlY3RvcignYm9keScpKSArIAor
ICAgICAgICAgICAgICAgICcsIFRlbXBsYXRlIGNvbnRlbnQgZGl2czogJyArIGRpdkNoaWxkVGV4
dE5vZGVzKGZyYWcucXVlcnlTZWxlY3RvcigndGVtcGxhdGUnKS5jb250ZW50KSk7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWU5MjhmN2RmMzU0MDY4NjFhOWM3MGRjMTU0ZmYyYzU0Yzk5OGIxNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxh
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQworRAorVGhpcyB0ZXN0cyB0aGF0IFhT
TFQgdHJhbnNmb3JtcyBjYW4gdHJhdmVyc2UgaW50byBYSFRNTCB0ZW1wbGF0ZSBlbGVtZW50IGNv
bnRlbnQgd2hlbiBhcHBseWluZyBYU0wgdGVtcGxhdGUuIElmIHRoZSB0ZXN0IHN1Y2NlZWRzLCB0
aGUgdHJhbnNmb3JtIHdpbGwgaGF2ZSBzd2FwcGVkIHRoZSBwb3NpdGlvbiBvZiB0aGUgYm9keSBz
cGFucyAoQSBhbmQgQikgd2l0aCB0aGUgdGVtcGxhdGUgY29udGVudCBzcGFucyAoQyBhbmQgRCkg
YW5kIHJlcGxhY2VkIHRoZSBzcGFucyB3aXRoIGRpdnMuCisKK0JvZHkgZGl2czogQ0QsIFRlbXBs
YXRlIGNvbnRlbnQgZGl2czogQUIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHNsL3hz
bHQteGh0bWwtdGVtcGxhdGUueG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94c2wveHNsdC14aHRtbC10
ZW1wbGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2QxZDcyYmMyZTAyMWEwYjNmYjA1MTRlMDVmOTQ1MWYy
NDA3ZTE2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHNsL3hzbHQteGh0
bWwtdGVtcGxhdGUueG1sCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+Cis8P3htbC1zdHlsZXNoZWV0IGhyZWY9InJlc291cmNlcy94aHRtbC10
ZW1wbGF0ZS54c2wiIHR5cGU9InRleHQveHNsIj8+CisKKzwhRE9DVFlQRSBodG1sIAorICAgICBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICAiaHR0cDovL3d3
dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CisKKzxodG1sIHhtbDps
YW5nPSJlbi11cyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxi
b2R5PgorICAgICAgICA8c3Bhbj5BPC9zcGFuPgorICAgICAgICA8c3Bhbj5CPC9zcGFuPgorICAg
ICAgICA8dGVtcGxhdGU+CisgICAgICAgICAgICA8c3Bhbj5DPC9zcGFuPgorICAgICAgICAgICAg
PHNwYW4+RDwvc3Bhbj4KKyAgICAgICAgPC90ZW1wbGF0ZT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBiZjI5NzczNThhY2M1NWI2Y2Y2OGIzNjMwNGQ4MWYxM2I2ZmQ0
NmExLi5kNmE5ZjdlNjc3ZjAyNWNhNzBhZGIzMmZlYTMyYmEyZWMwNTU5NTExIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTEsNiArOTEsMTMgQEAgaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQtdHlwZS1kYXNoYm9hcmQuaHRt
bCBbIFdvbnRGaXggXQogIyBFTkFCTEUoRFJBR0dBQkxFX1JFR0lPTikgaXMgZGlzYWJsZWQKIGZh
c3QvY3NzL2RyYWdnYWJsZS1yZWdpb24tcGFyc2VyLmh0bWwgWyBXb250Rml4IF0KIAorIyBFTkFC
TEUoVEVNUExBVEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCit3ZWJraXQub3JnL2IvMTAzNTQ3IGZh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM1NDcg
aHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM1NDcg
ZmFzdC94c2wveHNsdC14aHRtbC10ZW1wbGF0ZS54bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8x
MDM1NDcgZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KK3dl
YmtpdC5vcmcvYi8xMDM1NDcgZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRtbCBb
IFNraXAgXQorCiAjIFRoZXNlIHRlc3QgLWFwcGxlLSBhbmQgLWtodG1sLSBwcmVmaXhlZCBDU1Mg
cHJvcGVydGllcywgd2hpY2ggd2UgZG9uJ3Qgc3VwcG9ydC4KIGluc3BlY3Rvci9zdHlsZXMvdmVu
ZG9yLXByZWZpeGVzLmh0bWwgWyBXb250Rml4IF0KIGZhc3QvY3NzL2FwcGxlLXByZWZpeC5odG1s
IFsgV29udEZpeCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGMwZDkwYzcxMzVjMmM3NTc3NGE2YjNhYmE2NDJmMWJkMDYyNzkwY2EuLjlkZWZmNTQxYzk2
OTE3YWVjNjA3MGY1NmYwNjZmYmMwMGRhOWE0ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCkBAIC00MzIsNiArNDMyLDkgQEAgYWNjZXNzaWJpbGl0eS9jb3Jy
ZXNwb25kaW5nLWNvbnRyb2wtZGVsZXRlZC1jcmFzaC5odG1sCiAjIEVOQUJMRShURU1QTEFURV9F
TEVNRU5UKSBpcyBkaXNhYmxlZC4KIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQKIGh0bWw1
bGliL3J1bi10ZW1wbGF0ZS5odG1sCitmYXN0L3hzbC94c2x0LXhodG1sLXRlbXBsYXRlLnhtbAor
ZmFzdC94cGF0aC94cGF0aC10ZW1wbGF0ZS1lbGVtZW50Lmh0bWwKK2Zhc3QveHNsL3hzbHQtcHJv
Y2Vzc29yLXRlbXBsYXRlLmh0bWwKIAogIyBKU0MgZG9lcyBub3Qgc3VwcG9ydCBzZXRJc29sYXRl
ZFdvcmxkU2VjdXJpdHlPcmlnaW4gKGh0dHA6Ly93ZWJraXQub3JnL2IvNjE1NDApCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3NzVlNGMxMTAxNTMxMTVhYzM2
ZGNiNWViMmZhOTdlOTEwN2NmYjQ3Li4wYjU1NGUyYzIyYjI3N2I1NWZkZjE2Y2M4MDM3ZDVhZGI3
MzFmNWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE5
NSw2ICsxOTUsOSBAQCBmYXN0L2Nzcy9jdXJzb3ItcGFyc2luZy1pbWFnZS1zZXQuaHRtbAogIyBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCiBmYXN0L2RvbS9IVE1MVGVtcGxh
dGVFbGVtZW50CiBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorZmFzdC94c2wveHNsdC14aHRt
bC10ZW1wbGF0ZS54bWwKK2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5odG1sCitm
YXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sCiAKICMgRmFpbCB1bnRpbCBTVUJQ
SVhFTF9MQVlPVVQgaXMgZW5hYmxlZAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODU1MzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggOTE5MTUwMTQ1MDY3OGMwNjZiNjFlZDgxY2FmMDkzNzU2MmJmMWRiMi4uNjdiMjUyMTM2
MjQ5NjllYWJhNDhhZTVlOTMwN2EyNTM5NDVmZmM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MzcsNiArMTUzNyw5IEBAIGZhc3QvZG9tL3NoYWRv
dwogIyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkgaXMgZGlzYWJsZWQuCiBmYXN0L2RvbS9IVE1M
VGVtcGxhdGVFbGVtZW50CiBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRtbAorZmFzdC94c2wveHNs
dC14aHRtbC10ZW1wbGF0ZS54bWwKK2Zhc3QveHBhdGgveHBhdGgtdGVtcGxhdGUtZWxlbWVudC5o
dG1sCitmYXN0L3hzbC94c2x0LXByb2Nlc3Nvci10ZW1wbGF0ZS5odG1sCiAKICMgQ1NTIFJlZ2lv
bnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZh
c3QvcmVnaW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNWY1NWU3ZjI1ZmU4Y2QyNDQ5MjZjZDNjMTIyZjU5N2ViNjExMjI3Ny4uMmFj
Y2MxYzg0NWQ0YmZiNzRlNzFmYjFiNWE0MzBlYjJkYTZmOWE2YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDY2LDYgKzIwNjYsOSBA
QCBmYXN0L2RvbS9zaGFkb3cKICMgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpIGlzIGRpc2FibGVk
LgogZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudAogaHRtbDVsaWIvcnVuLXRlbXBsYXRlLmh0
bWwKK2Zhc3QveHNsL3hzbHQteGh0bWwtdGVtcGxhdGUueG1sCitmYXN0L3hwYXRoL3hwYXRoLXRl
bXBsYXRlLWVsZW1lbnQuaHRtbAorZmFzdC94c2wveHNsdC1wcm9jZXNzb3ItdGVtcGxhdGUuaHRt
bAogCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0
Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMK
</data>

          </attachment>
      

    </bug>

</bugzilla>