<?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>94022</bug_id>
          
          <creation_ts>2012-08-14 14:32:06 -0700</creation_ts>
          <short_desc>[CSS Filters] RenderLayerCompositor::addToOverlapMap should take into account the filters outsets (ie. blur and drop-shadow)</short_desc>
          <delta_ts>2013-01-10 10:17:28 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Max Vujovic">mvujovic</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>695400</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-08-14 14:32:06 -0700</bug_when>
    <thetext>There are cases when an element gets a GraphicsLayer, but when the overlap map is computed, the shadow is not taken into account. Because of that, elements that need to display on top of the GraphicsLayer are painted behind the shadow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695409</commentid>
    <comment_count>1</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-08-14 14:38:53 -0700</bug_when>
    <thetext>This goes in both ways:

1. The shadow element has the GPU layer but it needs to display in the back.
2. The shadow element has no GPU layer, but the shadow is overlapping with another GPU layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757706</commentid>
    <comment_count>2</comment_count>
      <attachid>172165</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-11-02 16:03:47 -0700</bug_when>
    <thetext>Created attachment 172165
Patch

A first attempt at fixing the issue, not for formal review. I&apos;m new to this code, so I&apos;ll be looking into it more and discussing it with Alex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770907</commentid>
    <comment_count>3</comment_count>
      <attachid>175018</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-11-19 11:58:51 -0800</bug_when>
    <thetext>Created attachment 175018
Patch

After a chat with Alex, factored the patch a little differently. Also, added tests and ChangeLog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774663</commentid>
    <comment_count>4</comment_count>
      <attachid>175018</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-23 11:26:52 -0800</bug_when>
    <thetext>Comment on attachment 175018
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.h:572
&gt; +#if ENABLE(CSS_FILTERS)
&gt; +    // Bounding box including filter outsets in the coordinates of this layer.
&gt; +    LayoutRect localFilterBox() const { return expandRectForFilterOutsets(localBoundingBox()); };
&gt; +#else
&gt; +    LayoutRect localFilterBox() const { return localBoundingBox(); }
&gt; +#endif

Why is this different to, say, box-shadow? That&apos;s already accounted for in localBoundingBox, so I&apos;m not sure why filters are not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777223</commentid>
    <comment_count>5</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-11-27 14:22:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 175018 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175018&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:572
&gt; &gt; +#if ENABLE(CSS_FILTERS)
&gt; &gt; +    // Bounding box including filter outsets in the coordinates of this layer.
&gt; &gt; +    LayoutRect localFilterBox() const { return expandRectForFilterOutsets(localBoundingBox()); };
&gt; &gt; +#else
&gt; &gt; +    LayoutRect localFilterBox() const { return localBoundingBox(); }
&gt; &gt; +#endif
&gt; 
&gt; Why is this different to, say, box-shadow? That&apos;s already accounted for in localBoundingBox, so I&apos;m not sure why filters are not.

Thanks for pointing that out. Based on the box-shadow code in RenderBox::addVisualEffectOverflow, I&apos;m thinking filter outsets should be accounted for similarly and end up in localBoundingBox. I&apos;ll work on that. 

If I understand correctly, box-shadow operates on the border-box and filters operate on the entire visual overflow box.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777251</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-27 14:58:48 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 175018 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175018&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderLayer.h:572
&gt; &gt; &gt; +#if ENABLE(CSS_FILTERS)
&gt; &gt; &gt; +    // Bounding box including filter outsets in the coordinates of this layer.
&gt; &gt; &gt; +    LayoutRect localFilterBox() const { return expandRectForFilterOutsets(localBoundingBox()); };
&gt; &gt; &gt; +#else
&gt; &gt; &gt; +    LayoutRect localFilterBox() const { return localBoundingBox(); }
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Why is this different to, say, box-shadow? That&apos;s already accounted for in localBoundingBox, so I&apos;m not sure why filters are not.
&gt; 
&gt; Thanks for pointing that out. Based on the box-shadow code in RenderBox::addVisualEffectOverflow, I&apos;m thinking filter outsets should be accounted for similarly and end up in localBoundingBox. I&apos;ll work on that. 
&gt; 
&gt; If I understand correctly, box-shadow operates on the border-box and filters operate on the entire visual overflow box.

True, that is a difference. It might be better to look at some of the outline invalidation code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801783</commentid>
    <comment_count>7</comment_count>
      <attachid>181593</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-07 16:13:08 -0800</bug_when>
    <thetext>Created attachment 181593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801787</commentid>
    <comment_count>8</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-07 16:19:46 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (From update of attachment 175018 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175018&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderLayer.h:572
&gt; &gt; &gt; &gt; +#if ENABLE(CSS_FILTERS)
&gt; &gt; &gt; &gt; +    // Bounding box including filter outsets in the coordinates of this layer.
&gt; &gt; &gt; &gt; +    LayoutRect localFilterBox() const { return expandRectForFilterOutsets(localBoundingBox()); };
&gt; &gt; &gt; &gt; +#else
&gt; &gt; &gt; &gt; +    LayoutRect localFilterBox() const { return localBoundingBox(); }
&gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this different to, say, box-shadow? That&apos;s already accounted for in localBoundingBox, so I&apos;m not sure why filters are not.
&gt; &gt; 
&gt; &gt; Thanks for pointing that out. Based on the box-shadow code in RenderBox::addVisualEffectOverflow, I&apos;m thinking filter outsets should be accounted for similarly and end up in localBoundingBox. I&apos;ll work on that. 
&gt; &gt; 
&gt; &gt; If I understand correctly, box-shadow operates on the border-box and filters operate on the entire visual overflow box.
&gt; 
&gt; True, that is a difference. It might be better to look at some of the outline invalidation code.

I think the outline invalidation approach would lead to larger textures when we don&apos;t necessarily need them. From what I understand, the outline code takes the maximal outline size and expands all the layers&apos; bounds by that amount.

I also realized that the both the outline approach and my previous patch would fail in certain cases. For example, if we have nested drop shadows like the following:

- A parent element with a drop shadow.
- A child element with a drop shadow, extending out of the parent element.

The parent element&apos;s drop shadow will extend off of the child element&apos;s drop shadow, and the filter outsets will be farther out than we expected. Thus, we can&apos;t just add the filter outsets to a layer as in my previous patch.

I&apos;ve uploaded another patch that fixes this case. In the patch, there&apos;s a test for it called &quot;sw-nested-shadow-overlaps-hw-nested-shadow.html&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801800</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-07 16:29:35 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think the outline invalidation approach would lead to larger textures when we don&apos;t necessarily need them. From what I understand, the outline code takes the maximal outline size and expands all the layers&apos; bounds by that amount.

...which is terrible and we should fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801937</commentid>
    <comment_count>10</comment_count>
      <attachid>181593</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-07 19:31:20 -0800</bug_when>
    <thetext>Comment on attachment 181593
Patch

Attachment 181593 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15741876</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802030</commentid>
    <comment_count>11</comment_count>
      <attachid>181593</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 22:27:24 -0800</bug_when>
    <thetext>Comment on attachment 181593
Patch

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

New failing tests:
compositing/filters/sw-shadow-overlaps-hw-layer.html
platform/chromium/virtual/softwarecompositing/filters/sw-layer-overlaps-hw-shadow.html
platform/chromium/virtual/softwarecompositing/filters/sw-shadow-overlaps-hw-layer.html
compositing/filters/sw-layer-overlaps-hw-shadow.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802789</commentid>
    <comment_count>12</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-08 16:31:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I think the outline invalidation approach would lead to larger textures when we don&apos;t necessarily need them. From what I understand, the outline code takes the maximal outline size and expands all the layers&apos; bounds by that amount.
&gt; 
&gt; ...which is terrible and we should fix.

Yes, we should. I&apos;ve filed bug 106397 at least.

Do you think the approach in this latest patch is ok? (Ignoring the bot failures for now.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802810</commentid>
    <comment_count>13</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-08 16:49:30 -0800</bug_when>
    <thetext>Thanks! I&apos;ll clean up the failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803864</commentid>
    <comment_count>14</comment_count>
      <attachid>182025</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-09 17:19:43 -0800</bug_when>
    <thetext>Created attachment 182025
Patch

Re-running the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804437</commentid>
    <comment_count>15</comment_count>
      <attachid>182025</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-10 09:25:51 -0800</bug_when>
    <thetext>Comment on attachment 182025
Patch

Bots look good. Setting cq+. I had to add an #if ENABLE(CSS_FILTERS) guard and some Chromium expectations. Chromium outputs (drawsContent 1) on some layers when Safari does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804440</commentid>
    <comment_count>16</comment_count>
      <attachid>182025</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 09:28:20 -0800</bug_when>
    <thetext>Comment on attachment 182025
Patch

Rejecting attachment 182025 from commit-queue.

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, u&apos;--status-host=queues.webkit.org&apos;, ...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

/mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/15766896</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804450</commentid>
    <comment_count>17</comment_count>
      <attachid>182157</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-01-10 09:34:22 -0800</bug_when>
    <thetext>Created attachment 182157
Patch

Add reviewer entry to ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804481</commentid>
    <comment_count>18</comment_count>
      <attachid>182157</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 09:57:30 -0800</bug_when>
    <thetext>Comment on attachment 182157
Patch

Rejecting attachment 182157 from commit-queue.

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, u&apos;--status-host=queues.webkit.org&apos;, ...&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
t/webkit-commit-queue/Source/WebKit/chromium/win8 --revision 175535 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
55&gt;At revision 175535.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/15761979</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804500</commentid>
    <comment_count>19</comment_count>
      <attachid>182157</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 10:17:23 -0800</bug_when>
    <thetext>Comment on attachment 182157
Patch

Clearing flags on attachment: 182157

Committed r139330: &lt;http://trac.webkit.org/changeset/139330&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804501</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 10:17:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172165</attachid>
            <date>2012-11-02 16:03:47 -0700</date>
            <delta_ts>2012-11-19 11:58:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>94022-1.patch</filename>
            <type>text/plain</type>
            <size>4850</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDllODQ1ZDguLmQw
ZDg2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTA5
MCwxNSArMTA5MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEZpbHRlckJhY2tlbmROZWVkc1Jl
cGFpbnRpbmdJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwKICAgICBMYXlvdXRSZWN0IHJl
Y3RGb3JSZXBhaW50ID0gcmVjdDsKICAgICAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAg
aWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0ZpbHRlck91dHNldHMoKSkgewotICAgICAgICBp
bnQgdG9wT3V0c2V0OwotICAgICAgICBpbnQgcmlnaHRPdXRzZXQ7Ci0gICAgICAgIGludCBib3R0
b21PdXRzZXQ7Ci0gICAgICAgIGludCBsZWZ0T3V0c2V0OwotICAgICAgICByZW5kZXJlcigpLT5z
dHlsZSgpLT5nZXRGaWx0ZXJPdXRzZXRzKHRvcE91dHNldCwgcmlnaHRPdXRzZXQsIGJvdHRvbU91
dHNldCwgbGVmdE91dHNldCk7Ci0gICAgICAgIHJlY3RGb3JSZXBhaW50Lm1vdmUoLWxlZnRPdXRz
ZXQsIC10b3BPdXRzZXQpOwotICAgICAgICByZWN0Rm9yUmVwYWludC5leHBhbmQobGVmdE91dHNl
dCArIHJpZ2h0T3V0c2V0LCB0b3BPdXRzZXQgKyBib3R0b21PdXRzZXQpOwotICAgIH0KKyAgICBl
eHBhbmRSZWN0Rm9yRmlsdGVyT3V0c2V0cyhyZWN0Rm9yUmVwYWludCk7CiAjZW5kaWYKIAogICAg
IFJlbmRlckxheWVyRmlsdGVySW5mbyogZmlsdGVySW5mbyA9IHRoaXMtPmZpbHRlckluZm8oKTsK
QEAgLTExNTUsNiArMTE0NywyMCBAQCBib29sIFJlbmRlckxheWVyOjpoYXNBbmNlc3RvcldpdGhG
aWx0ZXJPdXRzZXRzKCkgY29uc3QKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCit2b2lk
IFJlbmRlckxheWVyOjpleHBhbmRSZWN0Rm9yRmlsdGVyT3V0c2V0cyhMYXlvdXRSZWN0JiByZWN0
KSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzRmlsdGVyT3V0c2V0
cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgdG9wT3V0c2V0OworICAgIGludCByaWdo
dE91dHNldDsKKyAgICBpbnQgYm90dG9tT3V0c2V0OworICAgIGludCBsZWZ0T3V0c2V0OworICAg
IHJlbmRlcmVyKCktPnN0eWxlKCktPmdldEZpbHRlck91dHNldHModG9wT3V0c2V0LCByaWdodE91
dHNldCwgYm90dG9tT3V0c2V0LCBsZWZ0T3V0c2V0KTsKKyAgICByZWN0Lm1vdmUoLWxlZnRPdXRz
ZXQsIC10b3BPdXRzZXQpOworICAgIHJlY3QuZXhwYW5kKGxlZnRPdXRzZXQgKyByaWdodE91dHNl
dCwgdG9wT3V0c2V0ICsgYm90dG9tT3V0c2V0KTsKK30KICNlbmRpZgogICAgIAogUmVuZGVyTGF5
ZXIqIFJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZygpIGNvbnN0CkBAIC00NDUx
LDE1ICs0NDU3LDggQEAgSW50UmVjdCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXIKICAgICAvLyBGSVhNRTogV2Ug
Y2FuIG9wdGltaXplIHRoZSBzaXplIG9mIHRoZSBjb21wb3NpdGVkIGxheWVycywgYnkgbm90IGVu
bGFyZ2luZwogICAgIC8vIGZpbHRlcmVkIGFyZWFzIHdpdGggdGhlIG91dHNldHMgaWYgd2Uga25v
dyB0aGF0IHRoZSBmaWx0ZXIgaXMgZ29pbmcgdG8gcmVuZGVyIGluIGhhcmR3YXJlLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTIzOQotICAgIGlmICgo
ZmxhZ3MgJiBJbmNsdWRlTGF5ZXJGaWx0ZXJPdXRzZXRzKSAmJiBsYXllci0+cmVuZGVyZXIoKS0+
c3R5bGUoKS0+aGFzRmlsdGVyT3V0c2V0cygpKSB7Ci0gICAgICAgIGludCB0b3BPdXRzZXQ7Ci0g
ICAgICAgIGludCByaWdodE91dHNldDsKLSAgICAgICAgaW50IGJvdHRvbU91dHNldDsKLSAgICAg
ICAgaW50IGxlZnRPdXRzZXQ7Ci0gICAgICAgIGxheWVyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5n
ZXRGaWx0ZXJPdXRzZXRzKHRvcE91dHNldCwgcmlnaHRPdXRzZXQsIGJvdHRvbU91dHNldCwgbGVm
dE91dHNldCk7Ci0gICAgICAgIHVuaW9uQm91bmRzLm1vdmUoLWxlZnRPdXRzZXQsIC10b3BPdXRz
ZXQpOwotICAgICAgICB1bmlvbkJvdW5kcy5leHBhbmQobGVmdE91dHNldCArIHJpZ2h0T3V0c2V0
LCB0b3BPdXRzZXQgKyBib3R0b21PdXRzZXQpOwotICAgIH0KKyAgICBpZiAoZmxhZ3MgJiBJbmNs
dWRlTGF5ZXJGaWx0ZXJPdXRzZXRzKQorICAgICAgICBsYXllci0+ZXhwYW5kUmVjdEZvckZpbHRl
ck91dHNldHModW5pb25Cb3VuZHMpOwogI2VuZGlmCiAKICAgICBpZiAoKGZsYWdzICYgSW5jbHVk
ZVNlbGZUcmFuc2Zvcm0pICYmIGxheWVyLT5wYWludHNXaXRoVHJhbnNmb3JtKFBhaW50QmVoYXZp
b3JOb3JtYWwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGZl
ZDI0MTguLjI3ZWFiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC00ODMsNiArNDgzLDcgQEAgcHVibGljOgogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGaWx0
ZXJSZXBhaW50TGF5ZXIoKSBjb25zdDsKICAgICB2b2lkIHNldEZpbHRlckJhY2tlbmROZWVkc1Jl
cGFpbnRpbmdJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsKICAgICBi
b29sIGhhc0FuY2VzdG9yV2l0aEZpbHRlck91dHNldHMoKSBjb25zdDsKKyAgICB2b2lkIGV4cGFu
ZFJlY3RGb3JGaWx0ZXJPdXRzZXRzKExheW91dFJlY3QmKSBjb25zdDsKICNlbmRpZgogCiAgICAg
Ym9vbCBjYW5Vc2VDb252ZXJ0VG9MYXllckNvb3JkcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDViMTlmM2Uu
LjE5ZDZjNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCkBAIC02ODEsNyArNjgxLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjphZGRUb092ZXJsYXBNYXAoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgUmVuZGVyTGF5
ZXIqCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghYm91bmRzQ29tcHV0ZWQpIHsKLSAgICAg
ICAgbGF5ZXJCb3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAuZ2VvbWV0cnlNYXAo
KS5hYnNvbHV0ZVJlY3QobGF5ZXItPmxvY2FsQm91bmRpbmdCb3goKSkpOworICAgICAgICBMYXlv
dXRSZWN0IGxvY2FsQm91bmRpbmdCb3ggPSBsYXllci0+bG9jYWxCb3VuZGluZ0JveCgpOworI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKKyAgICAgICAgbGF5ZXItPmV4cGFuZFJlY3RGb3JGaWx0ZXJP
dXRzZXRzKGxvY2FsQm91bmRpbmdCb3gpOworI2VuZGlmCisgICAgICAgIGxheWVyQm91bmRzID0g
ZW5jbG9zaW5nSW50UmVjdChvdmVybGFwTWFwLmdlb21ldHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxv
Y2FsQm91bmRpbmdCb3gpKTsKICAgICAgICAgLy8gRW1wdHkgcmVjdHMgbmV2ZXIgaW50ZXJzZWN0
LCBidXQgd2UgbmVlZCB0aGVtIHRvIGZvciB0aGUgcHVycG9zZXMgb2Ygb3ZlcmxhcCB0ZXN0aW5n
LgogICAgICAgICBpZiAobGF5ZXJCb3VuZHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgbGF5ZXJC
b3VuZHMuc2V0U2l6ZShJbnRTaXplKDEsIDEpKTsKQEAgLTc2OCw3ICs3NzIsMTEgQEAgdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5k
ZXJMYXllciogYW5jZXN0b3IKICAgICBJbnRSZWN0IGFic0JvdW5kczsKICAgICBpZiAob3Zlcmxh
cE1hcCAmJiAhb3ZlcmxhcE1hcC0+aXNFbXB0eSgpICYmIGNvbXBvc2l0aW5nU3RhdGUubV90ZXN0
aW5nT3ZlcmxhcCkgewogICAgICAgICAvLyBJZiB3ZSdyZSB0ZXN0aW5nIGZvciBvdmVybGFwLCB3
ZSBvbmx5IG5lZWQgdG8gY29tcG9zaXRlIGlmIHdlIG92ZXJsYXAgc29tZXRoaW5nIHRoYXQgaXMg
YWxyZWFkeSBjb21wb3NpdGVkLgotICAgICAgICBhYnNCb3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0
KG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxheWVyLT5sb2NhbEJvdW5k
aW5nQm94KCkpKTsKKyAgICAgICAgTGF5b3V0UmVjdCBsb2NhbEJvdW5kaW5nQm94ID0gbGF5ZXIt
PmxvY2FsQm91bmRpbmdCb3goKTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgICAgIGxh
eWVyLT5leHBhbmRSZWN0Rm9yRmlsdGVyT3V0c2V0cyhsb2NhbEJvdW5kaW5nQm94KTsKKyNlbmRp
ZgorICAgICAgICBhYnNCb3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAtPmdlb21l
dHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxvY2FsQm91bmRpbmdCb3gpKTsKIAogICAgICAgICAvLyBF
bXB0eSByZWN0cyBuZXZlciBpbnRlcnNlY3QsIGJ1dCB3ZSBuZWVkIHRoZW0gdG8gZm9yIHRoZSBw
dXJwb3NlcyBvZiBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgIGlmIChhYnNCb3VuZHMuaXNFbXB0
eSgpKQo=
</data>
<flag name="commit-queue"
          id="186370"
          type_id="3"
          status="-"
          setter="mvujovic"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175018</attachid>
            <date>2012-11-19 11:58:51 -0800</date>
            <delta_ts>2013-01-07 16:13:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>94022-2.patch</filename>
            <type>text/plain</type>
            <size>14037</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNjM0Yjg2Li40NTRlMjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEt
MTkgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRmls
dGVyc10gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXAgc2hvdWxkIHRha2Ug
aW50byBhY2NvdW50IHRoZSBmaWx0ZXJzIG91dHNldHMgKGllLiBibHVyIGFuZCBkcm9wLXNoYWRv
dykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
dGVzdCB3aGljaCBjaGVja3MgdGhhdCBmcm9udG1vc3Qgc29mdHdhcmUgbGF5ZXJzIGFyZSBwcm9t
b3RlZCB0byBoYXJkd2FyZSBsYXllcnMgd2hlbjoKKyAgICAgICAgMSkgQSBzb2Z0d2FyZSBsYXll
ciBpbnRlcnNlY3RzIGEgaGFyZHdhcmUgbGF5ZXIncyBmaWx0ZXIgb3V0c2V0LgorICAgICAgICAy
KSBBIHNvZnR3YXJlIGxheWVyJ3MgZmlsdGVyIG91dHNldCBpbnRlcnNlY3RzIGEgaGFyZHdhcmUg
bGF5ZXIuCisgICAgICAgIDMpIEEgc29mdHdhcmUgbGF5ZXIncyBmaWx0ZXIgb3V0c2V0IGludGVy
c2VjdHMgYSBoYXJkd2FyZSBsYXllcidzIGZpbHRlciBvdXRzZXQuCisKKyAgICAgICAgKiBjc3Mz
L2ZpbHRlcnMvZmlsdGVyLW91dHNldHMtb3ZlcmxhcC1zdy1ody1sYXllcnMtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2ZpbHRlci1vdXRzZXRzLW92ZXJsYXAt
c3ctaHctbGF5ZXJzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTE2ICBFcmlrIEFydmlkc3NvbiAg
PGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXBkYXRlIERPTUV4Y2VwdGlvbiBuYW1lOiBU
eXBlTWlzbWF0Y2hFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2Zp
bHRlci1vdXRzZXRzLW92ZXJsYXAtc3ctaHctbGF5ZXJzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvZmlsdGVyLW91dHNldHMtb3ZlcmxhcC1zdy1ody1sYXllcnMtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWRkOTE1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2ZpbHRlci1vdXRzZXRz
LW92ZXJsYXAtc3ctaHctbGF5ZXJzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorCTx0aXRsZT5UZXN0cyB0aGF0IHNvZnR3YXJl
IGFuZCBoYXJkd2FyZSBsYXllcnMgcmVuZGVyIGluIHN0YWNraW5nIG9yZGVyIHdoZW4gdGhlaXIg
ZmlsdGVyIG91dHNldHMgb3ZlcmxhcC48L3RpdGxlPgorCTwhLS0gVGhpcyBpcyB0aGUgcmVmZXJl
bmNlIGZpbGUgZm9yIHRoZSB0ZXN0LiBUaGUgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgZGlz
cGxheSBhbnkgcmVkLiAtLT4KKwk8c3R5bGU+CisJICAJLmNhc2UgeworCSAgCQlwb3NpdGlvbjog
cmVsYXRpdmU7CisJICAJCWhlaWdodDogMjAwcHg7CisJICAJfQorCSAgCS5jYXNlIGRpdiB7CisJ
ICAJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKKwkgIAl9CisKKwkgIAkjY2FzZS0xIC5iYWNrLWh3LWxh
eWVyIHsKKwkgIAkJd2lkdGg6IDMwcHg7CisJICAJCWhlaWdodDogMzBweDsKKwkgIAkJLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOworCSAgCQliYWNrZ3JvdW5kLWNvbG9y
OiAjMGYwOworCSAgCX0KKwkgIAkjY2FzZS0xIC5mcm9udC1zdy1sYXllciB7CisJCQl0b3A6IDQw
cHg7CisJICAJCWxlZnQ6IDQwcHg7CisJICAJCXdpZHRoOiA1MHB4OworCSAgCQloZWlnaHQ6IDUw
cHg7CisJICAJCWJhY2tncm91bmQtY29sb3I6ICMwZjA7CisJICAJfQorCisJICAJI2Nhc2UtMiAu
ZnJvbnQtc3ctbGF5ZXItd2l0aC1zaGFkb3cgeworCSAgCQl3aWR0aDogNTBweDsKKwkgIAkJaGVp
Z2h0OiA1MHB4OworCSAgCQliYWNrZ3JvdW5kLWNvbG9yOiAjMGYwOworCSAgCQktd2Via2l0LWZp
bHRlcjogZHJvcC1zaGFkb3coNjBweCA2MHB4IDBweCAjMGYwKSBicmlnaHRuZXNzKDApOworCSAg
CX0KKwkgIAkjY2FzZS0yIC5kcm9wLXNoYWRvdy1lZGdlLW1hc2sgeworCSAgCQl0b3A6IDU1cHg7
CisJICAJCWxlZnQ6IDU1cHg7CisJICAJCXdpZHRoOiA0MHB4OworCSAgCQloZWlnaHQ6IDQwcHg7
CisJICAJCWJvcmRlcjogc29saWQgMTBweCAjMDAwOworCSAgCX0KKworCSAgCSNjYXNlLTMgLmJh
Y2staHctbGF5ZXIgeworCSAgCQl3aWR0aDogMzBweDsKKwkgIAkJaGVpZ2h0OiAzMHB4OworCSAg
CQliYWNrZ3JvdW5kLWNvbG9yOiAjMGYwOworCSAgCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlM2QoMCwgMCwgMCk7CisJICAJfQorCSAgCSNjYXNlLTMgLmZyb250LXN3LWxheWVyLXdpdGgt
c2hhZG93IHsKKwkgIAkJdG9wOiAxMDBweDsKKwkgIAkJbGVmdDogMTAwcHg7CisJICAJCXdpZHRo
OiA1MHB4OworCSAgCQloZWlnaHQ6IDUwcHg7CisJICAJCWJhY2tncm91bmQtY29sb3I6ICMwZjA7
CisJICAJCS13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygtNjBweCAtNjBweCAwcHggIzBmMCkg
YnJpZ2h0bmVzcygwKTsKKwkgIAl9CisJICAJI2Nhc2UtMyAuZHJvcC1zaGFkb3ctZWRnZS1tYXNr
IHsKKwkgIAkJdG9wOiAzNXB4OworCSAgCQlsZWZ0OiAzNXB4OworCSAgCQl3aWR0aDogNDBweDsK
KwkgIAkJaGVpZ2h0OiA0MHB4OworCSAgCQlib3JkZXI6IHNvbGlkIDEwcHggIzAwMDsKKwkgIAl9
CisJPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCTxkaXYgaWQ9ImNhc2UtMSIgY2xhc3M9ImNh
c2UiPgorCQk8ZGl2IGNsYXNzPSJiYWNrLWh3LWxheWVyIj48L2Rpdj4KKwkJPGRpdiBjbGFzcz0i
ZnJvbnQtc3ctbGF5ZXIiPjwvZGl2PgorCTwvZGl2PgorCTxkaXYgaWQ9ImNhc2UtMiIgY2xhc3M9
ImNhc2UiPgorCQk8ZGl2IGNsYXNzPSJmcm9udC1zdy1sYXllci13aXRoLXNoYWRvdyI+PC9kaXY+
CisJCTxkaXYgY2xhc3M9ImRyb3Atc2hhZG93LWVkZ2UtbWFzayI+PC9kaXY+CisJPC9kaXY+Cisg
CTxkaXYgaWQ9ImNhc2UtMyIgY2xhc3M9ImNhc2UiPgorCQk8ZGl2IGNsYXNzPSJiYWNrLWh3LWxh
eWVyIj48L2Rpdj4KKwkJPGRpdiBjbGFzcz0iZnJvbnQtc3ctbGF5ZXItd2l0aC1zaGFkb3ciPjwv
ZGl2PgorCQk8ZGl2IGNsYXNzPSJkcm9wLXNoYWRvdy1lZGdlLW1hc2siPjwvZGl2PgorCTwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2ZpbHRlci1vdXRzZXRzLW92ZXJsYXAtc3ctaHctbGF5ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvZmlsdGVyLW91dHNldHMtb3ZlcmxhcC1zdy1ody1sYXllcnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzFlYjFiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2ZpbHRlci1vdXRzZXRzLW92ZXJsYXAtc3ctaHct
bGF5ZXJzLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKwk8dGl0bGU+VGVzdHMgdGhhdCBzb2Z0d2FyZSBhbmQgaGFyZHdhcmUgbGF5ZXJzIHJl
bmRlciBpbiBzdGFja2luZyBvcmRlciB3aGVuIHRoZWlyIGZpbHRlciBvdXRzZXRzIG92ZXJsYXAu
PC90aXRsZT4KKwk8IS0tIFRoZSB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBkaXNwbGF5IGFu
eSByZWQuIC0tPgorCTxzdHlsZT4KKwkJLyogSW4gZWFjaCBjYXNlLCB0aGUgc29mdHdhcmUgbGF5
ZXIgc2hvdWxkIGRpc3BsYXkgaW4gZnJvbnQgb2YgdGhlIGhhcmR3YXJlIGxheWVyLiAqLworCSAg
CS5jYXNlIHsKKwkgIAkJcG9zaXRpb246IHJlbGF0aXZlOworCSAgCQloZWlnaHQ6IDIwMHB4Owor
CSAgCX0KKwkgIAkuY2FzZSBkaXYgeworCSAgCQlwb3NpdGlvbjogYWJzb2x1dGU7CisJICAJfQor
CisJICAJLyogQ2FzZSAxOiBUaGUgc29mdHdhcmUgbGF5ZXIgaW50ZXJzZWN0cyB0aGUgaGFyZHdh
cmUgbGF5ZXIncyBmaWx0ZXIgb3V0c2V0LiAqLworCSAgCSNjYXNlLTEgLmJhY2staHctbGF5ZXIt
d2l0aC1zaGFkb3cgeworCSAgCQl3aWR0aDogMzBweDsKKwkgIAkJaGVpZ2h0OiAzMHB4OworCSAg
CQktd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coNTBweCA1MHB4IDBweCAjZjAwKTsKKwkgIAkJ
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOworCSAgCQliYWNrZ3JvdW5k
LWNvbG9yOiAjMGYwOworCSAgCX0KKwkgIAkjY2FzZS0xIC5mcm9udC1zdy1sYXllciB7CisJICAJ
CS8qIFRoaXMgZ3JlZW4gc29mdHdhcmUgbGF5ZXIgc2hvdWxkIGNvdmVyIHRoZSBoYXJkd2FyZSBs
YXllcidzIHJlZCBkcm9wIHNoYWRvdy4gKi8KKwkJCXRvcDogNDBweDsKKwkgIAkJbGVmdDogNDBw
eDsKKwkgIAkJd2lkdGg6IDUwcHg7CisJICAJCWhlaWdodDogNTBweDsKKwkgIAkJYmFja2dyb3Vu
ZC1jb2xvcjogIzBmMDsKKwkgIAl9CisKKwkgIAkvKiBDYXNlIDI6IFRoZSBzb2Z0d2FyZSBsYXll
cidzIGZpbHRlciBvdXRzZXQgaW50ZXJzZWN0cyB0aGUgaGFyZHdhcmUgbGF5ZXIuKi8KKwkgIAkj
Y2FzZS0yIC5iYWNrLWh3LWxheWVyIHsKKwkgIAkJdG9wOiA3MHB4OworCSAgCQlsZWZ0OiA3MHB4
OworCSAgCQl3aWR0aDogMzBweDsKKwkgIAkJaGVpZ2h0OiAzMHB4OworCSAgCQliYWNrZ3JvdW5k
LWNvbG9yOiAjZjAwOworCSAgCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwg
MCk7CisJICAJfQorCSAgCSNjYXNlLTIgLmZyb250LXN3LWxheWVyLXdpdGgtc2hhZG93IHsKKwkg
IAkJLyogVGhpcyBzb2Z0d2FyZSBsYXllcidzIGdyZWVuIGRyb3Agc2hhZG93IHNob3VsZCBjb3Zl
ciB0aGUgcmVkIGhhcmR3YXJlIGxheWVyLiAqLworCSAgCQl3aWR0aDogNTBweDsKKwkgIAkJaGVp
Z2h0OiA1MHB4OworCSAgCQliYWNrZ3JvdW5kLWNvbG9yOiAjMGYwOworCSAgCQktd2Via2l0LWZp
bHRlcjogZHJvcC1zaGFkb3coNjBweCA2MHB4IDBweCAjMGYwKSBicmlnaHRuZXNzKDApOworCSAg
CX0KKwkgIAkjY2FzZS0yIC5kcm9wLXNoYWRvdy1lZGdlLW1hc2sgeworCSAgCQkvKiBVc2UgYSBi
bGFjayBtYXNrIHRvIGhpZGUgc21hbGwgY29sb3IgcHJlY2lzaW9uIGVycm9ycyBvbiB0aGUgb2Yg
dGhlIGRyb3Agc2hhZG93IG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMuICovCisJICAJCXRvcDogNTVw
eDsKKwkgIAkJbGVmdDogNTVweDsKKwkgIAkJd2lkdGg6IDQwcHg7CisJICAJCWhlaWdodDogNDBw
eDsKKwkgIAkJYm9yZGVyOiBzb2xpZCAxMHB4ICMwMDA7CisJICAJfQorCisJICAJLyogQ2FzZSAz
OiBUaGUgc29mdHdhcmUgbGF5ZXIncyBmaWx0ZXIgb3V0c2V0IGludGVyc2VjdHMgdGhlIGhhcmR3
YXJlIGxheWVyJ3MgZmlsdGVyIG91dHNldC4gKi8KKwkgIAkjY2FzZS0zIC5iYWNrLWh3LWxheWVy
LXdpdGgtc2hhZG93IHsKKwkgIAkJd2lkdGg6IDMwcHg7CisJICAJCWhlaWdodDogMzBweDsKKwkg
IAkJYmFja2dyb3VuZC1jb2xvcjogIzBmMDsKKwkgIAkJLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hh
ZG93KDUwcHggNTBweCAwcHggI2YwMCk7CisJICAJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xh
dGUzZCgwLCAwLCAwKTsKKwkgIAl9CisJICAJI2Nhc2UtMyAuZnJvbnQtc3ctbGF5ZXItd2l0aC1z
aGFkb3cgeworCSAgCQkvKiBUaGUgc29mdHdhcmUgbGF5ZXIncyBncmVlbiBkcm9wIHNoYWRvdyBz
aG91bGQgY292ZXIgdGhlIGhhcmR3YXJlIGxheWVyJ3MgcmVkIGRyb3Agc2hhZG93LiAqLworCSAg
CQl0b3A6IDEwMHB4OworCSAgCQlsZWZ0OiAxMDBweDsKKwkgIAkJd2lkdGg6IDUwcHg7CisJICAJ
CWhlaWdodDogNTBweDsKKwkgIAkJYmFja2dyb3VuZC1jb2xvcjogIzBmMDsKKwkgIAkJLXdlYmtp
dC1maWx0ZXI6IGRyb3Atc2hhZG93KC02MHB4IC02MHB4IDBweCAjMGYwKSBicmlnaHRuZXNzKDAp
OworCSAgCX0KKwkgIAkjY2FzZS0zIC5kcm9wLXNoYWRvdy1lZGdlLW1hc2sgeworCSAgCQkvKiBV
c2UgYSBibGFjayBtYXNrIHRvIGhpZGUgc21hbGwgY29sb3IgcHJlY2lzaW9uIGVycm9ycyBvbiB0
aGUgb2YgdGhlIGRyb3Agc2hhZG93IG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMuICovCisJICAJCXRv
cDogMzVweDsKKwkgIAkJbGVmdDogMzVweDsKKwkgIAkJd2lkdGg6IDQwcHg7CisJICAJCWhlaWdo
dDogNDBweDsKKwkgIAkJYm9yZGVyOiBzb2xpZCAxMHB4ICMwMDA7CisJICAJfQorCTwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKwk8ZGl2IGlkPSJjYXNlLTEiIGNsYXNzPSJjYXNlIj4KKwkJPGRp
diBjbGFzcz0iYmFjay1ody1sYXllci13aXRoLXNoYWRvdyI+PC9kaXY+CisJCTxkaXYgY2xhc3M9
ImZyb250LXN3LWxheWVyIj48L2Rpdj4KKwk8L2Rpdj4KKwk8ZGl2IGlkPSJjYXNlLTIiIGNsYXNz
PSJjYXNlIj4KKwkJPGRpdiBjbGFzcz0iYmFjay1ody1sYXllciI+PC9kaXY+CisJCTxkaXYgY2xh
c3M9ImZyb250LXN3LWxheWVyLXdpdGgtc2hhZG93Ij48L2Rpdj4KKwkJPGRpdiBjbGFzcz0iZHJv
cC1zaGFkb3ctZWRnZS1tYXNrIj48L2Rpdj4KKwk8L2Rpdj4KKyAJPGRpdiBpZD0iY2FzZS0zIiBj
bGFzcz0iY2FzZSI+CisJCTxkaXYgY2xhc3M9ImJhY2staHctbGF5ZXItd2l0aC1zaGFkb3ciPjwv
ZGl2PgorCQk8ZGl2IGNsYXNzPSJmcm9udC1zdy1sYXllci13aXRoLXNoYWRvdyI+PC9kaXY+CisJ
CTxkaXYgY2xhc3M9ImRyb3Atc2hhZG93LWVkZ2UtbWFzayI+PC9kaXY+CisJPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU4NzMzMy4uZDc5YmUwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDEyLTExLTE5ICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2Jl
LmNvbT4KKworICAgICAgICBbQ1NTIEZpbHRlcnNdIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRk
VG9PdmVybGFwTWFwIHNob3VsZCB0YWtlIGludG8gYWNjb3VudCB0aGUgZmlsdGVycyBvdXRzZXRz
IChpZS4gYmx1ciBhbmQgZHJvcC1zaGFkb3cpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NDAyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluY2x1ZGUgdGhlIGZpbHRlciBvdXRzZXRzIHdoZW4gYWRkaW5n
IGEgbGF5ZXIncyBib3VuZHMgdG8gdGhlIG92ZXJsYXAgbWFwLgorCisgICAgICAgIFRlc3Q6IGNz
czMvZmlsdGVycy9maWx0ZXItb3V0c2V0cy1vdmVybGFwLXN3LWh3LWxheWVycy5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3QpOgorICAgICAg
ICAgICAgUmVmYWN0b3IgdG8gdXNlIG5ldyBtZXRob2QgZXhwYW5kUmVjdEZvckZpbHRlck91dHNl
dHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpl
eHBhbmRSZWN0Rm9yRmlsdGVyT3V0c2V0cyk6CisgICAgICAgICAgICBOZXcgbWV0aG9kIHRoYXQg
ZXhwYW5kcyBhIHJlY3QgdG8gaW5jbHVkZSBhIGxheWVyJ3MgZmlsdGVyIG91dHNldHMuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMpOgorICAgICAg
ICAgICAgUmVmYWN0b3IgdG8gdXNlIG5ldyBtZXRob2QgZXhwYW5kUmVjdEZvckZpbHRlck91dHNl
dHMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZXhwYW5kUmVjdEZvckZpbHRl
ck91dHNldHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmxvY2FsRmlsdGVyQm94
KToKKyAgICAgICAgICAgIE5ldyBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBsYXllcidzIGxvY2Fs
Qm91bmRpbmdCb3ggaW5jbHVkaW5nIGl0cyBmaWx0ZXIgb3V0c2V0cy4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFwTWFwKToKKyAgICAgICAgICAgIFVzZSB0aGUg
bGF5ZXIncyBmaWx0ZXIgYm94IHdoZW4gYWRkaW5nIGl0IHRvIHRoZSBvdmVybGFwIG1hcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5n
UmVxdWlyZW1lbnRzKToKKyAgICAgICAgICAgIFVzZSB0aGUgbGF5ZXIncyBmaWx0ZXIgYm94IHdo
ZW4gaGl0IHRlc3RpbmcgdGhlIG92ZXJsYXAgbWFwLgorCiAyMDEyLTExLTE2ICBEaW1pdHJpIEds
YXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBMYW5k
IGEgcHJvcGVyIGZpeCBmb3IgcjEzNDkzOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDAyYmRlN2EuLjQ4MmM2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTA5NCwxOSArMTA5NCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgcmVjdCwKICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBMYXlvdXRSZWN0IHJlY3RGb3JSZXBhaW50ID0gcmVjdDsKLSAgICAKLSNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCi0gICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0ZpbHRlck91dHNl
dHMoKSkgewotICAgICAgICBpbnQgdG9wT3V0c2V0OwotICAgICAgICBpbnQgcmlnaHRPdXRzZXQ7
Ci0gICAgICAgIGludCBib3R0b21PdXRzZXQ7Ci0gICAgICAgIGludCBsZWZ0T3V0c2V0OwotICAg
ICAgICByZW5kZXJlcigpLT5zdHlsZSgpLT5nZXRGaWx0ZXJPdXRzZXRzKHRvcE91dHNldCwgcmln
aHRPdXRzZXQsIGJvdHRvbU91dHNldCwgbGVmdE91dHNldCk7Ci0gICAgICAgIHJlY3RGb3JSZXBh
aW50Lm1vdmUoLWxlZnRPdXRzZXQsIC10b3BPdXRzZXQpOwotICAgICAgICByZWN0Rm9yUmVwYWlu
dC5leHBhbmQobGVmdE91dHNldCArIHJpZ2h0T3V0c2V0LCB0b3BPdXRzZXQgKyBib3R0b21PdXRz
ZXQpOwotICAgIH0KLSNlbmRpZgorICAgIExheW91dFJlY3QgcmVjdEZvclJlcGFpbnQgPSBleHBh
bmRSZWN0Rm9yRmlsdGVyT3V0c2V0cyhyZWN0KTsKIAogICAgIFJlbmRlckxheWVyRmlsdGVySW5m
byogZmlsdGVySW5mbyA9IHRoaXMtPmZpbHRlckluZm8oKTsKICAgICBBU1NFUlQoZmlsdGVySW5m
byk7CkBAIC0xMTYyLDYgKzExNTAsMjMgQEAgYm9vbCBSZW5kZXJMYXllcjo6aGFzQW5jZXN0b3JX
aXRoRmlsdGVyT3V0c2V0cygpIGNvbnN0CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KKwor
TGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6ZXhwYW5kUmVjdEZvckZpbHRlck91dHNldHMoY29uc3Qg
TGF5b3V0UmVjdCYgcmVjdCkgY29uc3QKK3sKKyAgICBpZiAoIXJlbmRlcmVyKCktPnN0eWxlKCkt
Pmhhc0ZpbHRlck91dHNldHMoKSkKKyAgICAgICAgcmV0dXJuIHJlY3Q7CisKKyAgICBpbnQgdG9w
T3V0c2V0OworICAgIGludCByaWdodE91dHNldDsKKyAgICBpbnQgYm90dG9tT3V0c2V0OworICAg
IGludCBsZWZ0T3V0c2V0OworICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPmdldEZpbHRlck91dHNl
dHModG9wT3V0c2V0LCByaWdodE91dHNldCwgYm90dG9tT3V0c2V0LCBsZWZ0T3V0c2V0KTsKKwor
ICAgIExheW91dFJlY3QgcmVzdWx0KHJlY3QpOworICAgIHJlc3VsdC5tb3ZlKC1sZWZ0T3V0c2V0
LCAtdG9wT3V0c2V0KTsKKyAgICByZXN1bHQuZXhwYW5kKGxlZnRPdXRzZXQgKyByaWdodE91dHNl
dCwgdG9wT3V0c2V0ICsgYm90dG9tT3V0c2V0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQogI2Vu
ZGlmCiAgICAgCiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmNsaXBwaW5nUm9vdEZvclBhaW50
aW5nKCkgY29uc3QKQEAgLTQ1MjksMTUgKzQ1MzQsOCBAQCBJbnRSZWN0IFJlbmRlckxheWVyOjpj
YWxjdWxhdGVMYXllckJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgY29u
cwogICAgIC8vIEZJWE1FOiBXZSBjYW4gb3B0aW1pemUgdGhlIHNpemUgb2YgdGhlIGNvbXBvc2l0
ZWQgbGF5ZXJzLCBieSBub3QgZW5sYXJnaW5nCiAgICAgLy8gZmlsdGVyZWQgYXJlYXMgd2l0aCB0
aGUgb3V0c2V0cyBpZiB3ZSBrbm93IHRoYXQgdGhlIGZpbHRlciBpcyBnb2luZyB0byByZW5kZXIg
aW4gaGFyZHdhcmUuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgxMjM5Ci0gICAgaWYgKChmbGFncyAmIEluY2x1ZGVMYXllckZpbHRlck91dHNldHMpICYm
IHJlbmRlcmVyLT5zdHlsZSgpLT5oYXNGaWx0ZXJPdXRzZXRzKCkpIHsKLSAgICAgICAgaW50IHRv
cE91dHNldDsKLSAgICAgICAgaW50IHJpZ2h0T3V0c2V0OwotICAgICAgICBpbnQgYm90dG9tT3V0
c2V0OwotICAgICAgICBpbnQgbGVmdE91dHNldDsKLSAgICAgICAgcmVuZGVyZXItPnN0eWxlKCkt
PmdldEZpbHRlck91dHNldHModG9wT3V0c2V0LCByaWdodE91dHNldCwgYm90dG9tT3V0c2V0LCBs
ZWZ0T3V0c2V0KTsKLSAgICAgICAgdW5pb25Cb3VuZHMubW92ZSgtbGVmdE91dHNldCwgLXRvcE91
dHNldCk7Ci0gICAgICAgIHVuaW9uQm91bmRzLmV4cGFuZChsZWZ0T3V0c2V0ICsgcmlnaHRPdXRz
ZXQsIHRvcE91dHNldCArIGJvdHRvbU91dHNldCk7Ci0gICAgfQorICAgIGlmIChmbGFncyAmIElu
Y2x1ZGVMYXllckZpbHRlck91dHNldHMpCisgICAgICAgIHVuaW9uQm91bmRzID0gdGhpcy0+ZXhw
YW5kUmVjdEZvckZpbHRlck91dHNldHModW5pb25Cb3VuZHMpOwogI2VuZGlmCiAKICAgICBpZiAo
KGZsYWdzICYgSW5jbHVkZVNlbGZUcmFuc2Zvcm0pICYmIHBhaW50c1dpdGhUcmFuc2Zvcm0oUGFp
bnRCZWhhdmlvck5vcm1hbCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
aW5kZXggNmE2YWY0OS4uYWUzYzQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTQ4NSw2ICs0ODUsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xv
c2luZ0ZpbHRlclJlcGFpbnRMYXllcigpIGNvbnN0OwogICAgIHZvaWQgc2V0RmlsdGVyQmFja2Vu
ZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUp
OwogICAgIGJvb2wgaGFzQW5jZXN0b3JXaXRoRmlsdGVyT3V0c2V0cygpIGNvbnN0OworICAgIExh
eW91dFJlY3QgZXhwYW5kUmVjdEZvckZpbHRlck91dHNldHMoY29uc3QgTGF5b3V0UmVjdCYpIGNv
bnN0OworI2Vsc2UKKyAgICBMYXlvdXRSZWN0IGV4cGFuZFJlY3RGb3JGaWx0ZXJPdXRzZXRzKGNv
bnN0IExheW91dFJlY3QmIHJlY3QpIGNvbnN0IHsgcmV0dXJuIHJlY3Q7IH07CiAjZW5kaWYKIAog
ICAgIGJvb2wgY2FuVXNlQ29udmVydFRvTGF5ZXJDb29yZHMoKSBjb25zdApAQCAtNTYxLDYgKzU2
NCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gUGl4ZWwgc25hcHBlZCBib3VuZGluZyBib3ggcmVsYXRp
dmUgdG8gdGhlIHJvb3QuCiAgICAgSW50UmVjdCBhYnNvbHV0ZUJvdW5kaW5nQm94KCkgY29uc3Q7
CiAKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgLy8gQm91bmRpbmcgYm94IGluY2x1ZGlu
ZyBmaWx0ZXIgb3V0c2V0cyBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhpcyBsYXllci4KKyAgICBM
YXlvdXRSZWN0IGxvY2FsRmlsdGVyQm94KCkgY29uc3QgeyByZXR1cm4gZXhwYW5kUmVjdEZvckZp
bHRlck91dHNldHMobG9jYWxCb3VuZGluZ0JveCgpKTsgfTsKKyNlbHNlCisgICAgTGF5b3V0UmVj
dCBsb2NhbEZpbHRlckJveCgpIGNvbnN0IHsgcmV0dXJuIGxvY2FsQm91bmRpbmdCb3goKTsgfQor
I2VuZGlmCisKICAgICBlbnVtIENhbGN1bGF0ZUxheWVyQm91bmRzRmxhZyB7CiAgICAgICAgIElu
Y2x1ZGVTZWxmVHJhbnNmb3JtID0gMSA8PCAwLAogICAgICAgICBVc2VMb2NhbENsaXBSZWN0SWZQ
b3NzaWJsZSA9IDEgPDwgMSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNGMxYTYyNC4uNDRkOWRjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTcx
NSw3ICs3MTUsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFwTWFw
KE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIFJlbmRlckxheWVyKgogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoIWJvdW5kc0NvbXB1dGVkKSB7Ci0gICAgICAgIGxheWVyQm91bmRzID0gZW5jbG9z
aW5nSW50UmVjdChvdmVybGFwTWFwLmdlb21ldHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxheWVyLT5s
b2NhbEJvdW5kaW5nQm94KCkpKTsKKyAgICAgICAgbGF5ZXJCb3VuZHMgPSBlbmNsb3NpbmdJbnRS
ZWN0KG92ZXJsYXBNYXAuZ2VvbWV0cnlNYXAoKS5hYnNvbHV0ZVJlY3QobGF5ZXItPmxvY2FsRmls
dGVyQm94KCkpKTsKICAgICAgICAgLy8gRW1wdHkgcmVjdHMgbmV2ZXIgaW50ZXJzZWN0LCBidXQg
d2UgbmVlZCB0aGVtIHRvIGZvciB0aGUgcHVycG9zZXMgb2Ygb3ZlcmxhcCB0ZXN0aW5nLgogICAg
ICAgICBpZiAobGF5ZXJCb3VuZHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgbGF5ZXJCb3VuZHMu
c2V0U2l6ZShJbnRTaXplKDEsIDEpKTsKQEAgLTgwMiw3ICs4MDIsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVy
KiBhbmNlc3RvcgogICAgIEludFJlY3QgYWJzQm91bmRzOwogICAgIGlmIChvdmVybGFwTWFwICYm
ICFvdmVybGFwTWFwLT5pc0VtcHR5KCkgJiYgY29tcG9zaXRpbmdTdGF0ZS5tX3Rlc3RpbmdPdmVy
bGFwKSB7CiAgICAgICAgIC8vIElmIHdlJ3JlIHRlc3RpbmcgZm9yIG92ZXJsYXAsIHdlIG9ubHkg
bmVlZCB0byBjb21wb3NpdGUgaWYgd2Ugb3ZlcmxhcCBzb21ldGhpbmcgdGhhdCBpcyBhbHJlYWR5
IGNvbXBvc2l0ZWQuCi0gICAgICAgIGFic0JvdW5kcyA9IGVuY2xvc2luZ0ludFJlY3Qob3Zlcmxh
cE1hcC0+Z2VvbWV0cnlNYXAoKS5hYnNvbHV0ZVJlY3QobGF5ZXItPmxvY2FsQm91bmRpbmdCb3go
KSkpOworICAgICAgICBhYnNCb3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAtPmdl
b21ldHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxheWVyLT5sb2NhbEZpbHRlckJveCgpKSk7CiAKICAg
ICAgICAgLy8gRW1wdHkgcmVjdHMgbmV2ZXIgaW50ZXJzZWN0LCBidXQgd2UgbmVlZCB0aGVtIHRv
IGZvciB0aGUgcHVycG9zZXMgb2Ygb3ZlcmxhcCB0ZXN0aW5nLgogICAgICAgICBpZiAoYWJzQm91
bmRzLmlzRW1wdHkoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181593</attachid>
            <date>2013-01-07 16:13:08 -0800</date>
            <delta_ts>2013-01-09 17:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>94022-3.patch</filename>
            <type>text/plain</type>
            <size>16182</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMTFiN2I0Li5jMWIyYWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDEt
MDcgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRmls
dGVyc10gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXAgc2hvdWxkIHRha2Ug
aW50byBhY2NvdW50IHRoZSBmaWx0ZXJzIG91dHNldHMgKGllLiBibHVyIGFuZCBkcm9wLXNoYWRv
dykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3RzIHRvIGNoZWNrIHNldmVyYWwgY29tYmluYXRpb25zIG9mIHNvZnR3YXJlIGxheWVyIGFuZCBj
b21wb3NpdGVkIGxheWVyIG92ZXJsYXAgd2hlbgorICAgICAgICBmaWx0ZXIgb3V0c2V0cyBhcmUg
aW52b2x2ZWQuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9maWx0ZXJzL3N3LWxheWVyLW92ZXJs
YXBzLWh3LXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0
ZWQtc2hhZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZmls
dGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3RlZC1zaGFkb3cuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHct
bGF5ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9maWx0ZXJz
L3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFw
cy1ody1zaGFkb3cuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMDcgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVwZGF0ZSBidWcg
bnVtYmVycyBhbmQgb3JnYW5pemUgYnVnIGxpbmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1o
dy1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljk3YjllNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0
ZXJzL3N3LWxheWVyLW92ZXJsYXBzLWh3LXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisg
ICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiA4MC4wMCA4MC4wMCkKKyAgICAgICAgICAoYW5jaG9yIDAuNjAgMC42MCkKKyAgICAgICAg
ICAoYm91bmRzIDEyNS4wMCAxMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKGJvdW5kcyAxMDAuMDAg
MTAwLjAwKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hh
ZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LWxheWVyLW92ZXJs
YXBzLWh3LXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQy
MWM4NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJz
L3N3LWxheWVyLW92ZXJsYXBzLWh3LXNoYWRvdy5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAgIFRoaXMgdGVz
dCB2ZXJpZmllcyB0aGF0IGEgc29mdHdhcmUgbGF5ZXIgd2lsbCBiZSBwcm9tb3RlZCB0byBhIGNv
bXBvc2l0ZWQgbGF5ZXIKKyAgICAgICAgaWYgaXQgaW50ZXJzZWN0cyBhIGNvbXBvc2l0ZWQgbGF5
ZXIncyBkcm9wIHNoYWRvdy4KKyAgICA8L3RpdGxlPgorICAgIDwhLS0gSWYgdGhlIHRlc3QgcGFz
c2VzLCB0aGUgbGlnaHQgZ3JlZW4gZHJvcCBzaGFkb3cgc2hvdWxkIGFwcGVhciBvdmVyIHRoZSB0
aGUgYmxhY2sgZGl2IHdoZXJlIHRoZXkgaW50ZXJzZWN0LiAtLT4KKyAgICA8c3R5bGU+CisgICAg
ICAgICNzb2Z0d2FyZSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKwor
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAwOworICAg
ICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2NvbXBvc2l0ZWQgeworICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRl
cjogZHJvcC1zaGFkb3coLTI1cHggLTI1cHggMCBncmF5KTsKKworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMDVweDsKKyAgICAgICAgICAgIGxlZnQ6
IDEwNXB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAw
KTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlk
PSJjb21wb3NpdGVkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzb2Z0d2FyZSI+PC9kaXY+CisgICAg
PHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUod2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQo
ZG9jdW1lbnQpKSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0ZWQt
c2hhZG93LW92ZXJsYXBzLWh3LW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3Rl
ZC1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNkMzA4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0
ZXJzL3N3LW5lc3RlZC1zaGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMSBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAw
LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgw
MC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyMDUuMDAgMjA1LjAwKQorICAgICAgICAgIChhbmNob3IgMC43
OCAwLjc4KQorICAgICAgICAgIChib3VuZHMgMjI1LjAwIDIyNS4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAoYm91bmRzIDIyNS4wMCAyMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0ZWQt
c2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LW5lc3RlZC1z
aGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVkLXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjg5MTNhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9maWx0ZXJzL3N3LW5lc3RlZC1zaGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVkLXNo
YWRvdy5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+CisgICAgICAgIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGEgc29mdHdh
cmUgbGF5ZXIgd2lsbCBiZSBwcm9tb3RlZCB0byBhIGNvbXBvc2l0ZWQgbGF5ZXIKKyAgICAgICAg
aWYgaXRzIG5lc3RlZCBkcm9wIHNoYWRvdyBpbnRlcnNlY3RzIGEgY29tcG9zaXRlZCBsYXllcidz
IG5lc3RlZCBkcm9wIHNoYWRvdy4KKyAgICA8L3RpdGxlPgorICAgIDwhLS0gSWYgdGhlIHRlc3Qg
cGFzc2VzLCB0aGUgbGlnaHQgZ3JlZW4gZHJvcCBzaGFkb3cgc2hvdWxkIGFwcGVhciBvdmVyIHRo
ZSB0aGUgZ3JheSBkcm9wIHNoYWRvdyB3aGVyZSB0aGV5IGludGVyc2VjdC4gLS0+CisgICAgPHN0
eWxlPgorICAgICAgICAjc29mdHdhcmUtcGFyZW50IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDI1
cHggMjVweCAwIGxpZ2h0Z3JlZW4pOworCisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgICAgICB0b3A6IDA7CisgICAgICAgICAgICBsZWZ0OiAwOworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjc29mdHdhcmUtY2hpbGQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdyg1MHB4IDUwcHggMCBs
aWdodGJsdWUpOworCisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAg
ICB0b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB3aWR0
aDogNTBweDsKKyAgICAgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgfQorICAgICAgICAj
Y29tcG9zaXRlZC1wYXJlbnQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7
CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coLTI1cHggLTI1cHggMCBn
cmF5KTsKKworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9w
OiAzMzBweDsKKyAgICAgICAgICAgIGxlZnQ6IDMzMHB4OworICAgICAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKKyAgICAgICAgfQorICAgICAgICAjY29tcG9z
aXRlZC1jaGlsZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAg
ICAgICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KC01MHB4IC01MHB4IDAgbGlnaHRibHVl
KTsKKworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAt
NTBweDsKKyAgICAgICAgICAgIGxlZnQ6IC01MHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iY29tcG9zaXRlZC1wYXJlbnQiPgorICAgICAgICA8
ZGl2IGlkPSJjb21wb3NpdGVkLWNoaWxkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlk
PSJzb2Z0d2FyZS1wYXJlbnQiPgorICAgICAgICA8ZGl2IGlkPSJzb2Z0d2FyZS1jaGlsZCI+PC9k
aXY+CisgICAgPC9kaXY+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUod2luZG93LmludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpKSk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxheWVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxheWVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTQxMGY1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFk
b3ctb3ZlcmxhcHMtaHctbGF5ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKKyhHcmFw
aGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxk
cmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTA1LjAw
IDEwNS4wMCkKKyAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICkKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAoYm91bmRzIDEyNS4wMCAxMjUuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICAp
CispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hh
ZG93LW92ZXJsYXBzLWh3LWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0
ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUyZTMxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci5odG1sCkBAIC0w
LDAgKzEsNDMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
CisgICAgICAgIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGEgc29mdHdhcmUgbGF5ZXIgd2lsbCBi
ZSBwcm9tb3RlZCB0byBhIGNvbXBvc2l0ZWQgbGF5ZXIKKyAgICAgICAgaWYgaXRzIGRyb3Agc2hh
ZG93IGludGVyc2VjdHMgYSBjb21wb3NpdGVkIGxheWVyLgorICAgIDwvdGl0bGU+CisgICAgPCEt
LSBJZiB0aGUgdGVzdCBwYXNzZXMsIHRoZSBsaWdodCBncmVlbiBkcm9wIHNoYWRvdyBzaG91bGQg
YXBwZWFyIG92ZXIgdGhlIHRoZSBibGFjayBkaXYgd2hlcmUgdGhleSBpbnRlcnNlY3QuIC0tPgor
ICAgIDxzdHlsZT4KKyAgICAgICAgI3NvZnR3YXJlIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDI1
cHggMjVweCAwIGxpZ2h0Z3JlZW4pOworCisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgICAgICB0b3A6IDA7CisgICAgICAgICAgICBsZWZ0OiAwOworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjY29tcG9zaXRlZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsK
KworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMDVw
eDsKKyAgICAgICAgICAgIGxlZnQ6IDEwNXB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJjb21wb3NpdGVkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJz
b2Z0d2FyZSI+PC9kaXY+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUod2luZG93LmludGVy
bmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpKSk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3ct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OTAyYmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNo
YWRvdy1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNo
aWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTA1
LjAwIDEwNS4wMCkKKyAgICAgICAgICAoYW5jaG9yIDAuNjAgMC42MCkKKyAgICAgICAgICAoYm91
bmRzIDEyNS4wMCAxMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKGJvdW5kcyAxMjUuMDAgMTI1LjAw
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkK
KyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3
LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwMjYzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3cuaHRt
bApAQCAtMCwwICsxLDQ1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHRpdGxlPgorICAgICAgICBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIHNvZnR3YXJlIGxheWVy
IHdpbGwgYmUgcHJvbW90ZWQgdG8gYSBjb21wb3NpdGVkIGxheWVyCisgICAgICAgIGlmIGl0cyBk
cm9wIHNoYWRvdyBpbnRlcnNlY3RzIGEgY29tcG9zaXRlZCBsYXllcidzIGRyb3Agc2hhZG93Lgor
ICAgIDwvdGl0bGU+CisgICAgPCEtLSBJZiB0aGUgdGVzdCBwYXNzZXMsIHRoZSBsaWdodCBncmVl
biBkcm9wIHNoYWRvdyBzaG91bGQgYXBwZWFyIG92ZXIgdGhlIHRoZSBncmF5IGRyb3Agc2hhZG93
IHdoZXJlIHRoZXkgaW50ZXJzZWN0LiAtLT4KKyAgICA8c3R5bGU+CisgICAgICAgICNzb2Z0d2Fy
ZSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgICAgIC13
ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygyNXB4IDI1cHggMCBsaWdodGdyZWVuKTsKKworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAwOworICAgICAg
ICAgICAgbGVmdDogMDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2NvbXBvc2l0ZWQgeworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjog
ZHJvcC1zaGFkb3coLTI1cHggLTI1cHggMCBncmF5KTsKKworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMzBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEz
MHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJj
b21wb3NpdGVkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzb2Z0d2FyZSI+PC9kaXY+CisgICAgPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUod2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpKSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGM2YTMzMjYuLjczNTgwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBA
QAorMjAxMy0wMS0wNyAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBGaWx0ZXJzXSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcCBz
aG91bGQgdGFrZSBpbnRvIGFjY291bnQgdGhlIGZpbHRlcnMgb3V0c2V0cyAoaWUuIGJsdXIgYW5k
IGRyb3Atc2hhZG93KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTQwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIGEgbGF5ZXIgaGFzIGEgZmlsdGVyIHRoYXQgbW92ZXMgcGl4ZWxzLCB3ZSBuZWVk
IHRvIGFkZCBpdHMgZW50aXJlIGJvdW5kcywgaW5jbHVkaW5nIGl0cworICAgICAgICBvdXRzZXRz
IGFuZCBjaGlsZHJlbiwgdG8gdGhlIG92ZXJsYXAgbWFwLiBUaGUgZmlsdGVyIGNhbiBtb3ZlIHRo
ZSBjaGlsZHJlbidzIHBpeGVscworICAgICAgICBhbnl3aGVyZSBpbiB0aGUgbGF5ZXIsIHNvIHdl
IGNhbid0IHJlbHkgb24gdGhlIGNoaWxkcmVuJ3MgYm91bmRzLgorCisgICAgICAgIEV2ZW50dWFs
bHksIHdlIHNob3VsZCBhdm9pZCBhZGRpbmcgY2hpbGRyZW4gdG8gdGhlIG92ZXJsYXAgbWFwIGlm
IHRoZSBwYXJlbnQncyBib3VuZHMgdXNlZAorICAgICAgICBmb3Igb3ZlcmxhcCB0ZXN0aW5nIGFs
cmVhZHkgaW5jbHVkZSB0aGUgY2hpbGRyZW4uIEkndmUgYWRkZWQgYSBGSVhNRSBmb3IgdGhpcyBv
cHRpbWl6YXRpb24uCisKKyAgICAgICAgVGVzdHM6IGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbGF5
ZXItb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2Zp
bHRlcnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0ZWQtc2hhZG93Lmh0bWwKKyAg
ICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxh
eWVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92
ZXJsYXBzLWh3LXNoYWRvdy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpvdmVybGFwQm91bmRzKToKKyAgICAg
ICAgICAgIElmIG5lY2Vzc2FyeSwgcmV0dXJuIHRoZSBjYWxjdWxhdGVkIGxheWVyIGJvdW5kcywg
aW5jbHVkaW5nIHRoZSBjaGlsZHJlbi4gT3RoZXJ3aXNlLAorICAgICAgICAgICAgcmV0dXJuIHRo
ZSBsb2NhbEJvdW5kaW5nQm94LgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6Om92ZXJsYXBCb3VuZHNJbmNsdWRlQ2hpbGRyZW4pOgorICAgICAg
ICAgICAgSWYgdGhlIGxheWVyIGhhcyBhIGZpbHRlciB0aGF0IG1vdmVzIHBpeGVscywgcmV0dXJu
IHRydWUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcCk6
CisgICAgICAgICAgICBBZGQgdGhlIG92ZXJsYXBCb3VuZHMgaW5zdGVhZCBvZiB0aGUgbG9jYWxC
b3VuZGluZ0JveCB0byB0aGUgb3ZlcmxhcCBtYXAuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAg
ICAgICBVc2UgdGhlIG92ZXJsYXBCb3VuZHMgaW5zdGVhZCBvZiB0aGUgbG9jYWxCb3VuZGluZ0Jv
eCBmb3Igb3ZlcmxhcCB0ZXN0aW5nLgorCiAyMDEzLTAxLTA3ICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFN1cHBvcnQgc2l6ZV90IG11bHRpcGxp
Y2F0aW9uIGFuZCBkaXZpc2lvbiBvcGVyYXRvcnMgb24gTGF5b3V0VW5pdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA2MTc5ODgwLi5kNWZiNGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjA1LDYgKzYwNSwxMiBAQCBwdWJsaWM6
CiAgICAgLy8gUGl4ZWwgc25hcHBlZCBib3VuZGluZyBib3ggcmVsYXRpdmUgdG8gdGhlIHJvb3Qu
CiAgICAgSW50UmVjdCBhYnNvbHV0ZUJvdW5kaW5nQm94KCkgY29uc3Q7CiAKKyAgICAvLyBCb3Vu
ZHMgdXNlZCBmb3IgbGF5ZXIgb3ZlcmxhcCB0ZXN0aW5nIGluIFJlbmRlckxheWVyQ29tcG9zaXRv
ci4KKyAgICBMYXlvdXRSZWN0IG92ZXJsYXBCb3VuZHMoKSBjb25zdCB7IHJldHVybiBvdmVybGFw
Qm91bmRzSW5jbHVkZUNoaWxkcmVuKCkgPyBjYWxjdWxhdGVMYXllckJvdW5kcyh0aGlzKSA6IGxv
Y2FsQm91bmRpbmdCb3goKTsgfQorICAgIC8vIElmIHRydWUsIHRoaXMgbGF5ZXIncyBjaGlsZHJl
biBhcmUgaW5jbHVkZWQgaW4gaXRzIGJvdW5kcyBmb3Igb3ZlcmxhcCB0ZXN0aW5nLgorICAgIC8v
IFdlIGNhbid0IHJlbHkgb24gdGhlIGNoaWxkcmVuJ3MgcG9zaXRpb25zIGlmIHRoaXMgbGF5ZXIg
aGFzIGEgZmlsdGVyIHRoYXQgY291bGQgaGF2ZSBtb3ZlZCB0aGUgY2hpbGRyZW4ncyBwaXhlbHMg
YXJvdW5kLgorICAgIGJvb2wgb3ZlcmxhcEJvdW5kc0luY2x1ZGVDaGlsZHJlbigpIGNvbnN0IHsg
cmV0dXJuIGhhc0ZpbHRlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPmZpbHRlcigpLmhhc0Zp
bHRlclRoYXRNb3Zlc1BpeGVscygpOyB9CisKICAgICAvLyBDYW4gcGFzcyBvZmZzZXRGcm9tUm9v
dCBpZiBrbm93bi4KICAgICBJbnRSZWN0IGNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRl
ckxheWVyKiBhbmNlc3RvckxheWVyLCBjb25zdCBMYXlvdXRQb2ludCogb2Zmc2V0RnJvbVJvb3Qg
PSAwLCBDYWxjdWxhdGVMYXllckJvdW5kc0ZsYWdzID0gRGVmYXVsdENhbGN1bGF0ZUxheWVyQm91
bmRzRmxhZ3MpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA2ZjAxZjFhLi40Mjk3YTM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApA
QCAtNzMzLDcgKzczMyw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJs
YXBNYXAoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgUmVuZGVyTGF5ZXIqCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghYm91bmRzQ29tcHV0ZWQpIHsKLSAgICAgICAgbGF5ZXJCb3VuZHMgPSBl
bmNsb3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAuZ2VvbWV0cnlNYXAoKS5hYnNvbHV0ZVJlY3QobGF5
ZXItPmxvY2FsQm91bmRpbmdCb3goKSkpOworICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyBsYXll
cidzIG92ZXJsYXAgYm91bmRzIGluY2x1ZGUgaXRzIGNoaWxkcmVuLCB3ZSBkb24ndCBuZWVkIHRv
IGFkZCBpdHMKKyAgICAgICAgLy8gY2hpbGRyZW4ncyBib3VuZHMgdG8gdGhlIG92ZXJsYXAgbWFw
LgorICAgICAgICBsYXllckJvdW5kcyA9IGVuY2xvc2luZ0ludFJlY3Qob3ZlcmxhcE1hcC5nZW9t
ZXRyeU1hcCgpLmFic29sdXRlUmVjdChsYXllci0+b3ZlcmxhcEJvdW5kcygpKSk7CiAgICAgICAg
IC8vIEVtcHR5IHJlY3RzIG5ldmVyIGludGVyc2VjdCwgYnV0IHdlIG5lZWQgdGhlbSB0byBmb3Ig
dGhlIHB1cnBvc2VzIG9mIG92ZXJsYXAgdGVzdGluZy4KICAgICAgICAgaWYgKGxheWVyQm91bmRz
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGxheWVyQm91bmRzLnNldFNpemUoSW50U2l6ZSgxLCAx
KSk7CkBAIC04MjAsNyArODIyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICBJbnRS
ZWN0IGFic0JvdW5kczsKICAgICBpZiAob3ZlcmxhcE1hcCAmJiAhb3ZlcmxhcE1hcC0+aXNFbXB0
eSgpICYmIGNvbXBvc2l0aW5nU3RhdGUubV90ZXN0aW5nT3ZlcmxhcCkgewogICAgICAgICAvLyBJ
ZiB3ZSdyZSB0ZXN0aW5nIGZvciBvdmVybGFwLCB3ZSBvbmx5IG5lZWQgdG8gY29tcG9zaXRlIGlm
IHdlIG92ZXJsYXAgc29tZXRoaW5nIHRoYXQgaXMgYWxyZWFkeSBjb21wb3NpdGVkLgotICAgICAg
ICBhYnNCb3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCku
YWJzb2x1dGVSZWN0KGxheWVyLT5sb2NhbEJvdW5kaW5nQm94KCkpKTsKKyAgICAgICAgYWJzQm91
bmRzID0gZW5jbG9zaW5nSW50UmVjdChvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLmFic29sdXRl
UmVjdChsYXllci0+b3ZlcmxhcEJvdW5kcygpKSk7CiAKICAgICAgICAgLy8gRW1wdHkgcmVjdHMg
bmV2ZXIgaW50ZXJzZWN0LCBidXQgd2UgbmVlZCB0aGVtIHRvIGZvciB0aGUgcHVycG9zZXMgb2Yg
b3ZlcmxhcCB0ZXN0aW5nLgogICAgICAgICBpZiAoYWJzQm91bmRzLmlzRW1wdHkoKSkK
</data>
<flag name="review"
          id="199277"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="199317"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182025</attachid>
            <date>2013-01-09 17:19:43 -0800</date>
            <delta_ts>2013-01-10 09:34:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>94022-4.patch</filename>
            <type>text/plain</type>
            <size>17996</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZGYxMDcwLi4wNjRiN2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDEt
MDcgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRmls
dGVyc10gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXAgc2hvdWxkIHRha2Ug
aW50byBhY2NvdW50IHRoZSBmaWx0ZXJzIG91dHNldHMgKGllLiBibHVyIGFuZCBkcm9wLXNoYWRv
dykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3RzIHRvIGNoZWNrIHNldmVyYWwgY29tYmluYXRpb25zIG9mIHNvZnR3YXJlIGxheWVyIGFuZCBj
b21wb3NpdGVkIGxheWVyIG92ZXJsYXAgd2hlbgorICAgICAgICBmaWx0ZXIgb3V0c2V0cyBhcmUg
aW52b2x2ZWQuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9maWx0ZXJzL3N3LWxheWVyLW92ZXJs
YXBzLWh3LXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0
ZWQtc2hhZG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZmls
dGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3RlZC1zaGFkb3cuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHct
bGF5ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9maWx0ZXJz
L3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFw
cy1ody1zaGFkb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9maWx0ZXJz
L3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEz
LTAxLTA5ICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NT
IFNoYWRlcnNdIERldGFjaGVkIGlkZW50aWZpZXIgYWZ0ZXIgbWVzaCBib3ggdHlwZSBpcyBub3Qg
YXBwbGllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1s
YXllci1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YjllNzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LWxheWVyLW92ZXJsYXBzLWh3
LXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAg
KGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4MC4wMCA4MC4wMCkKKyAgICAg
ICAgICAoYW5jaG9yIDAuNjAgMC42MCkKKyAgICAgICAgICAoYm91bmRzIDEyNS4wMCAxMjUuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9maWx0ZXJzL3N3LWxheWVyLW92ZXJsYXBzLWh3LXNoYWRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMWM4NzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LWxheWVyLW92ZXJsYXBzLWh3LXNo
YWRvdy5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+CisgICAgICAgIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGEgc29mdHdh
cmUgbGF5ZXIgd2lsbCBiZSBwcm9tb3RlZCB0byBhIGNvbXBvc2l0ZWQgbGF5ZXIKKyAgICAgICAg
aWYgaXQgaW50ZXJzZWN0cyBhIGNvbXBvc2l0ZWQgbGF5ZXIncyBkcm9wIHNoYWRvdy4KKyAgICA8
L3RpdGxlPgorICAgIDwhLS0gSWYgdGhlIHRlc3QgcGFzc2VzLCB0aGUgbGlnaHQgZ3JlZW4gZHJv
cCBzaGFkb3cgc2hvdWxkIGFwcGVhciBvdmVyIHRoZSB0aGUgYmxhY2sgZGl2IHdoZXJlIHRoZXkg
aW50ZXJzZWN0LiAtLT4KKyAgICA8c3R5bGU+CisgICAgICAgICNzb2Z0d2FyZSB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKworICAgICAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgbGVmdDogMDsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
IH0KKyAgICAgICAgI2NvbXBvc2l0ZWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
YmxhY2s7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coLTI1cHggLTI1
cHggMCBncmF5KTsKKworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAg
ICAgdG9wOiAxMDVweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwNXB4OworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJjb21wb3NpdGVkIj48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJzb2Z0d2FyZSI+PC9kaXY+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
d2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpKSk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3Rl
ZC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9z
dy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMzA4ZjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LW5lc3RlZC1zaGFkb3ctb3Zl
cmxhcHMtaHctbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorKEdy
YXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAg
IChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hp
bGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMDUu
MDAgMjA1LjAwKQorICAgICAgICAgIChhbmNob3IgMC43OCAwLjc4KQorICAgICAgICAgIChib3Vu
ZHMgMjI1LjAwIDIyNS4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAoYm91bmRzIDIyNS4wMCAyMjUuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQor
ICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ct
bmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0ZWQtc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LW5lc3RlZC1zaGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVk
LXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MTNhMTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LW5l
c3RlZC1zaGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVkLXNoYWRvdy5odG1sCkBAIC0wLDAgKzEsNjgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAg
IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGEgc29mdHdhcmUgbGF5ZXIgd2lsbCBiZSBwcm9tb3Rl
ZCB0byBhIGNvbXBvc2l0ZWQgbGF5ZXIKKyAgICAgICAgaWYgaXRzIG5lc3RlZCBkcm9wIHNoYWRv
dyBpbnRlcnNlY3RzIGEgY29tcG9zaXRlZCBsYXllcidzIG5lc3RlZCBkcm9wIHNoYWRvdy4KKyAg
ICA8L3RpdGxlPgorICAgIDwhLS0gSWYgdGhlIHRlc3QgcGFzc2VzLCB0aGUgbGlnaHQgZ3JlZW4g
ZHJvcCBzaGFkb3cgc2hvdWxkIGFwcGVhciBvdmVyIHRoZSB0aGUgZ3JheSBkcm9wIHNoYWRvdyB3
aGVyZSB0aGV5IGludGVyc2VjdC4gLS0+CisgICAgPHN0eWxlPgorICAgICAgICAjc29mdHdhcmUt
cGFyZW50IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAg
ICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDI1cHggMjVweCAwIGxpZ2h0Z3JlZW4pOwor
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDA7Cisg
ICAgICAgICAgICBsZWZ0OiAwOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjc29mdHdhcmUtY2hpbGQgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIC13ZWJraXQt
ZmlsdGVyOiBkcm9wLXNoYWRvdyg1MHB4IDUwcHggMCBsaWdodGJsdWUpOworCisgICAgICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAg
ICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAgIGhl
aWdodDogNTBweDsKKyAgICAgICAgfQorICAgICAgICAjY29tcG9zaXRlZC1wYXJlbnQgeworICAg
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgICAgICAgICAtd2Via2l0LWZp
bHRlcjogZHJvcC1zaGFkb3coLTI1cHggLTI1cHggMCBncmF5KTsKKworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzMzBweDsKKyAgICAgICAgICAgIGxl
ZnQ6IDMzMHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0
OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAw
LCAwKTsKKyAgICAgICAgfQorICAgICAgICAjY29tcG9zaXRlZC1jaGlsZCB7CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGRy
b3Atc2hhZG93KC01MHB4IC01MHB4IDAgbGlnaHRibHVlKTsKKworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAtNTBweDsKKyAgICAgICAgICAgIGxlZnQ6
IC01MHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUw
cHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBp
ZD0iY29tcG9zaXRlZC1wYXJlbnQiPgorICAgICAgICA8ZGl2IGlkPSJjb21wb3NpdGVkLWNoaWxk
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJzb2Z0d2FyZS1wYXJlbnQiPgorICAg
ICAgICA8ZGl2IGlkPSJzb2Z0d2FyZS1jaGlsZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUod2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpKSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJs
YXBzLWh3LWxheWVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRl
cnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxheWVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTQxMGY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctbGF5ZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAw
LjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJv
dW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTA1LjAwIDEwNS4wMCkKKyAgICAgICAgICAoYm91
bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAoYm91bmRzIDEyNS4wMCAxMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxheWVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1o
dy1sYXllci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZTMxNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNo
YWRvdy1vdmVybGFwcy1ody1sYXllci5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAgIFRoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IGEgc29mdHdhcmUgbGF5ZXIgd2lsbCBiZSBwcm9tb3RlZCB0byBhIGNvbXBvc2l0
ZWQgbGF5ZXIKKyAgICAgICAgaWYgaXRzIGRyb3Agc2hhZG93IGludGVyc2VjdHMgYSBjb21wb3Np
dGVkIGxheWVyLgorICAgIDwvdGl0bGU+CisgICAgPCEtLSBJZiB0aGUgdGVzdCBwYXNzZXMsIHRo
ZSBsaWdodCBncmVlbiBkcm9wIHNoYWRvdyBzaG91bGQgYXBwZWFyIG92ZXIgdGhlIHRoZSBibGFj
ayBkaXYgd2hlcmUgdGhleSBpbnRlcnNlY3QuIC0tPgorICAgIDxzdHlsZT4KKyAgICAgICAgI3Nv
ZnR3YXJlIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAg
ICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KDI1cHggMjVweCAwIGxpZ2h0Z3JlZW4pOwor
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDA7Cisg
ICAgICAgICAgICBsZWZ0OiAwOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjY29tcG9zaXRlZCB7CisgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMDVweDsKKyAgICAgICAgICAgIGxlZnQ6IDEw
NXB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJj
b21wb3NpdGVkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzb2Z0d2FyZSI+PC9kaXY+CisgICAgPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUod2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpKSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJs
YXBzLWh3LXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0
ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OTAyYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3ct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMg
ODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
KGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTA1LjAwIDEwNS4wMCkKKyAgICAgICAgICAo
YW5jaG9yIDAuNjAgMC42MCkKKyAgICAgICAgICAoYm91bmRzIDEyNS4wMCAxMjUuMDApCisgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKGJvdW5kcyAxMjUuMDAgMTI1LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFk
b3cuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJs
YXBzLWh3LXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIw
MjYzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJz
L3N3LXNoYWRvdy1vdmVybGFwcy1ody1zaGFkb3cuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgICBUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBhIHNvZnR3YXJlIGxheWVyIHdpbGwgYmUgcHJvbW90ZWQgdG8gYSBj
b21wb3NpdGVkIGxheWVyCisgICAgICAgIGlmIGl0cyBkcm9wIHNoYWRvdyBpbnRlcnNlY3RzIGEg
Y29tcG9zaXRlZCBsYXllcidzIGRyb3Agc2hhZG93LgorICAgIDwvdGl0bGU+CisgICAgPCEtLSBJ
ZiB0aGUgdGVzdCBwYXNzZXMsIHRoZSBsaWdodCBncmVlbiBkcm9wIHNoYWRvdyBzaG91bGQgYXBw
ZWFyIG92ZXIgdGhlIHRoZSBncmF5IGRyb3Agc2hhZG93IHdoZXJlIHRoZXkgaW50ZXJzZWN0LiAt
LT4KKyAgICA8c3R5bGU+CisgICAgICAgICNzb2Z0d2FyZSB7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRv
dygyNXB4IDI1cHggMCBsaWdodGdyZWVuKTsKKworICAgICAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgbGVmdDogMDsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgI2NvbXBvc2l0ZWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxh
Y2s7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coLTI1cHggLTI1cHgg
MCBncmF5KTsKKworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAg
dG9wOiAxMzBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEzMHB4OworICAgICAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJjb21wb3NpdGVkIj48L2Rpdj4KKyAgICA8
ZGl2IGlkPSJzb2Z0d2FyZSI+PC9kaXY+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUod2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpKSk7CisgICAgICAgIH0KKyAg
ICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1o
dy1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNjkwNzAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9maWx0ZXJz
L3N3LWxheWVyLW92ZXJsYXBzLWh3LXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBA
QAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4g
MQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAg
ICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biA4MC4wMCA4MC4wMCkKKyAgICAgICAgICAoYW5jaG9yIDAuNjAgMC42MCkKKyAgICAgICAgICAo
Ym91bmRzIDEyNS4wMCAxMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAw
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9maWx0ZXJzL3N3
LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uN2YzNmRjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBz
LWh3LWxheWVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisoR3JhcGhpY3NMYXllcgor
ICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDEwNS4wMCAxMDUuMDApCisg
ICAgICAgICAgKGJvdW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChib3VuZHMg
MTI1LjAwIDEyNS4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4NWUzNDQuLmQyYTc3MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wMS0wNyAgTWF4IFZ1am92aWMgIDxtdnVq
b3ZpY0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBGaWx0ZXJzXSBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmFkZFRvT3ZlcmxhcE1hcCBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgdGhlIGZpbHRl
cnMgb3V0c2V0cyAoaWUuIGJsdXIgYW5kIGRyb3Atc2hhZG93KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQwMjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgbGF5ZXIgaGFzIGEgZmlsdGVyIHRo
YXQgbW92ZXMgcGl4ZWxzLCB3ZSBuZWVkIHRvIGFkZCBpdHMgZW50aXJlIGJvdW5kcywgaW5jbHVk
aW5nIGl0cworICAgICAgICBvdXRzZXRzIGFuZCBjaGlsZHJlbiwgdG8gdGhlIG92ZXJsYXAgbWFw
LiBUaGUgZmlsdGVyIGNhbiBtb3ZlIHRoZSBjaGlsZHJlbidzIHBpeGVscworICAgICAgICBhbnl3
aGVyZSBpbiB0aGUgbGF5ZXIsIHNvIHdlIGNhbid0IHJlbHkgb24gdGhlIGNoaWxkcmVuJ3MgYm91
bmRzLgorCisgICAgICAgIEV2ZW50dWFsbHksIHdlIHNob3VsZCBhdm9pZCBhZGRpbmcgY2hpbGRy
ZW4gdG8gdGhlIG92ZXJsYXAgbWFwIGlmIHRoZSBwYXJlbnQncyBib3VuZHMgdXNlZAorICAgICAg
ICBmb3Igb3ZlcmxhcCB0ZXN0aW5nIGFscmVhZHkgaW5jbHVkZSB0aGUgY2hpbGRyZW4uIEkndmUg
YWRkZWQgYSBGSVhNRSBmb3IgdGhpcyBvcHRpbWl6YXRpb24uCisKKyAgICAgICAgVGVzdHM6IGNv
bXBvc2l0aW5nL2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWwKKyAgICAg
ICAgICAgICAgIGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1o
dy1uZXN0ZWQtc2hhZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2ZpbHRlcnMv
c3ctc2hhZG93LW92ZXJsYXBzLWh3LWxheWVyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0
aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LXNoYWRvdy5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpvdmVybGFwQm91bmRzKToKKyAgICAgICAgICAgIElmIG5lY2Vzc2FyeSwgcmV0dXJuIHRoZSBj
YWxjdWxhdGVkIGxheWVyIGJvdW5kcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbi4gT3RoZXJ3aXNl
LAorICAgICAgICAgICAgcmV0dXJuIHRoZSBsb2NhbEJvdW5kaW5nQm94LgorICAgICAgICAoUmVu
ZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om92ZXJsYXBCb3VuZHNJ
bmNsdWRlQ2hpbGRyZW4pOgorICAgICAgICAgICAgSWYgdGhlIGxheWVyIGhhcyBhIGZpbHRlciB0
aGF0IG1vdmVzIHBpeGVscywgcmV0dXJuIHRydWUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmFkZFRvT3ZlcmxhcE1hcCk6CisgICAgICAgICAgICBBZGQgdGhlIG92ZXJsYXBCb3Vu
ZHMgaW5zdGVhZCBvZiB0aGUgbG9jYWxCb3VuZGluZ0JveCB0byB0aGUgb3ZlcmxhcCBtYXAuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cyk6CisgICAgICAgICAgICBVc2UgdGhlIG92ZXJsYXBCb3VuZHMgaW5zdGVh
ZCBvZiB0aGUgbG9jYWxCb3VuZGluZ0JveCBmb3Igb3ZlcmxhcCB0ZXN0aW5nLgorCiAyMDEzLTAx
LTA5ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVt
b3ZlIHVudXNlZCBpbmNsdWRlcyBmcm9tIEhUTUxUcmVlQnVpbGRlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkZjQ5MjAxLi5iYjliZjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjA0LDYgKzYwNCwxNyBAQCBwdWJsaWM6CiAg
ICAgLy8gUGl4ZWwgc25hcHBlZCBib3VuZGluZyBib3ggcmVsYXRpdmUgdG8gdGhlIHJvb3QuCiAg
ICAgSW50UmVjdCBhYnNvbHV0ZUJvdW5kaW5nQm94KCkgY29uc3Q7CiAKKyAgICAvLyBCb3VuZHMg
dXNlZCBmb3IgbGF5ZXIgb3ZlcmxhcCB0ZXN0aW5nIGluIFJlbmRlckxheWVyQ29tcG9zaXRvci4K
KyAgICBMYXlvdXRSZWN0IG92ZXJsYXBCb3VuZHMoKSBjb25zdCB7IHJldHVybiBvdmVybGFwQm91
bmRzSW5jbHVkZUNoaWxkcmVuKCkgPyBjYWxjdWxhdGVMYXllckJvdW5kcyh0aGlzKSA6IGxvY2Fs
Qm91bmRpbmdCb3goKTsgfQorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIC8vIElmIHRy
dWUsIHRoaXMgbGF5ZXIncyBjaGlsZHJlbiBhcmUgaW5jbHVkZWQgaW4gaXRzIGJvdW5kcyBmb3Ig
b3ZlcmxhcCB0ZXN0aW5nLgorICAgIC8vIFdlIGNhbid0IHJlbHkgb24gdGhlIGNoaWxkcmVuJ3Mg
cG9zaXRpb25zIGlmIHRoaXMgbGF5ZXIgaGFzIGEgZmlsdGVyIHRoYXQgY291bGQgaGF2ZSBtb3Zl
ZCB0aGUgY2hpbGRyZW4ncyBwaXhlbHMgYXJvdW5kLgorICAgIGJvb2wgb3ZlcmxhcEJvdW5kc0lu
Y2x1ZGVDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGhhc0ZpbHRlcigpICYmIHJlbmRlcmVyKCkt
PnN0eWxlKCktPmZpbHRlcigpLmhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscygpOyB9CisjZWxzZQor
ICAgIGJvb2wgb3ZlcmxhcEJvdW5kc0luY2x1ZGVDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisjZW5kaWYKKwogICAgIC8vIENhbiBwYXNzIG9mZnNldEZyb21Sb290IGlmIGtub3du
LgogICAgIEludFJlY3QgY2FsY3VsYXRlTGF5ZXJCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFu
Y2VzdG9yTGF5ZXIsIGNvbnN0IExheW91dFBvaW50KiBvZmZzZXRGcm9tUm9vdCA9IDAsIENhbGN1
bGF0ZUxheWVyQm91bmRzRmxhZ3MgPSBEZWZhdWx0Q2FsY3VsYXRlTGF5ZXJCb3VuZHNGbGFncykg
Y29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCmluZGV4IGZkZTMyOTcuLjIwYWU1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC03MzcsNyAr
NzM3LDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcChPdmVy
bGFwTWFwJiBvdmVybGFwTWFwLCBSZW5kZXJMYXllcioKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCFib3VuZHNDb21wdXRlZCkgewotICAgICAgICBsYXllckJvdW5kcyA9IGVuY2xvc2luZ0lu
dFJlY3Qob3ZlcmxhcE1hcC5nZW9tZXRyeU1hcCgpLmFic29sdXRlUmVjdChsYXllci0+bG9jYWxC
b3VuZGluZ0JveCgpKSk7CisgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGxheWVyJ3Mgb3Zlcmxh
cCBib3VuZHMgaW5jbHVkZSBpdHMgY2hpbGRyZW4sIHdlIGRvbid0IG5lZWQgdG8gYWRkIGl0cwor
ICAgICAgICAvLyBjaGlsZHJlbidzIGJvdW5kcyB0byB0aGUgb3ZlcmxhcCBtYXAuCisgICAgICAg
IGxheWVyQm91bmRzID0gZW5jbG9zaW5nSW50UmVjdChvdmVybGFwTWFwLmdlb21ldHJ5TWFwKCku
YWJzb2x1dGVSZWN0KGxheWVyLT5vdmVybGFwQm91bmRzKCkpKTsKICAgICAgICAgLy8gRW1wdHkg
cmVjdHMgbmV2ZXIgaW50ZXJzZWN0LCBidXQgd2UgbmVlZCB0aGVtIHRvIGZvciB0aGUgcHVycG9z
ZXMgb2Ygb3ZlcmxhcCB0ZXN0aW5nLgogICAgICAgICBpZiAobGF5ZXJCb3VuZHMuaXNFbXB0eSgp
KQogICAgICAgICAgICAgbGF5ZXJCb3VuZHMuc2V0U2l6ZShJbnRTaXplKDEsIDEpKTsKQEAgLTgy
NCw3ICs4MjYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgIEludFJlY3QgYWJzQm91
bmRzOwogICAgIGlmIChvdmVybGFwTWFwICYmICFvdmVybGFwTWFwLT5pc0VtcHR5KCkgJiYgY29t
cG9zaXRpbmdTdGF0ZS5tX3Rlc3RpbmdPdmVybGFwKSB7CiAgICAgICAgIC8vIElmIHdlJ3JlIHRl
c3RpbmcgZm9yIG92ZXJsYXAsIHdlIG9ubHkgbmVlZCB0byBjb21wb3NpdGUgaWYgd2Ugb3Zlcmxh
cCBzb21ldGhpbmcgdGhhdCBpcyBhbHJlYWR5IGNvbXBvc2l0ZWQuCi0gICAgICAgIGFic0JvdW5k
cyA9IGVuY2xvc2luZ0ludFJlY3Qob3ZlcmxhcE1hcC0+Z2VvbWV0cnlNYXAoKS5hYnNvbHV0ZVJl
Y3QobGF5ZXItPmxvY2FsQm91bmRpbmdCb3goKSkpOworICAgICAgICBhYnNCb3VuZHMgPSBlbmNs
b3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxheWVy
LT5vdmVybGFwQm91bmRzKCkpKTsKIAogICAgICAgICAvLyBFbXB0eSByZWN0cyBuZXZlciBpbnRl
cnNlY3QsIGJ1dCB3ZSBuZWVkIHRoZW0gdG8gZm9yIHRoZSBwdXJwb3NlcyBvZiBvdmVybGFwIHRl
c3RpbmcuCiAgICAgICAgIGlmIChhYnNCb3VuZHMuaXNFbXB0eSgpKQo=
</data>
<flag name="commit-queue"
          id="199872"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182157</attachid>
            <date>2013-01-10 09:34:22 -0800</date>
            <delta_ts>2013-01-10 10:17:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>94022-5.patch</filename>
            <type>text/plain</type>
            <size>17992</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZGYxMDcwLi5hYzdmMzg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDEt
MDcgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRmls
dGVyc10gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXAgc2hvdWxkIHRha2Ug
aW50byBhY2NvdW50IHRoZSBmaWx0ZXJzIG91dHNldHMgKGllLiBibHVyIGFuZCBkcm9wLXNoYWRv
dykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCB0ZXN0
cyB0byBjaGVjayBzZXZlcmFsIGNvbWJpbmF0aW9ucyBvZiBzb2Z0d2FyZSBsYXllciBhbmQgY29t
cG9zaXRlZCBsYXllciBvdmVybGFwIHdoZW4KKyAgICAgICAgZmlsdGVyIG91dHNldHMgYXJlIGlu
dm9sdmVkLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFw
cy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9m
aWx0ZXJzL3N3LWxheWVyLW92ZXJsYXBzLWh3LXNoYWRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjb21wb3NpdGluZy9maWx0ZXJzL3N3LW5lc3RlZC1zaGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVk
LXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2ZpbHRl
cnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0ZWQtc2hhZG93Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxh
eWVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZmlsdGVycy9z
dy1zaGFkb3ctb3ZlcmxhcHMtaHctbGF5ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9z
aXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctc2hhZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMt
aHctc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZmlsdGVycy9z
dy1zaGFkb3ctb3ZlcmxhcHMtaHctbGF5ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0w
MS0wOSAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBT
aGFkZXJzXSBEZXRhY2hlZCBpZGVudGlmaWVyIGFmdGVyIG1lc2ggYm94IHR5cGUgaXMgbm90IGFw
cGxpZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbGF5
ZXItb3ZlcmxhcHMtaHctc2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2I5ZTc1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1z
aGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gODAuMDAgODAuMDApCisgICAgICAg
ICAgKGFuY2hvciAwLjYwIDAuNjApCisgICAgICAgICAgKGJvdW5kcyAxMjUuMDAgMTI1LjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgKQorICAgICAg
KQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9m
aWx0ZXJzL3N3LWxheWVyLW92ZXJsYXBzLWh3LXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFkb3cuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFjODc5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFk
b3cuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHRpdGxlPgorICAgICAgICBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIHNvZnR3YXJl
IGxheWVyIHdpbGwgYmUgcHJvbW90ZWQgdG8gYSBjb21wb3NpdGVkIGxheWVyCisgICAgICAgIGlm
IGl0IGludGVyc2VjdHMgYSBjb21wb3NpdGVkIGxheWVyJ3MgZHJvcCBzaGFkb3cuCisgICAgPC90
aXRsZT4KKyAgICA8IS0tIElmIHRoZSB0ZXN0IHBhc3NlcywgdGhlIGxpZ2h0IGdyZWVuIGRyb3Ag
c2hhZG93IHNob3VsZCBhcHBlYXIgb3ZlciB0aGUgdGhlIGJsYWNrIGRpdiB3aGVyZSB0aGV5IGlu
dGVyc2VjdC4gLS0+CisgICAgPHN0eWxlPgorICAgICAgICAjc29mdHdhcmUgeworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAgIGxlZnQ6IDA7CisgICAgICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9
CisgICAgICAgICNjb21wb3NpdGVkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJs
YWNrOworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KC0yNXB4IC0yNXB4
IDAgZ3JheSk7CisKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAg
IHRvcDogMTA1cHg7CisgICAgICAgICAgICBsZWZ0OiAxMDVweDsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0
LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iY29tcG9zaXRlZCI+PC9kaXY+CisgICAg
PGRpdiBpZD0ic29mdHdhcmUiPjwvZGl2PgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdp
bmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KSkpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0ZWQt
c2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ct
bmVzdGVkLXNoYWRvdy1vdmVybGFwcy1ody1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDMwOGY2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJs
YXBzLWh3LW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyhHcmFw
aGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxk
cmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjA1LjAw
IDIwNS4wMCkKKyAgICAgICAgICAoYW5jaG9yIDAuNzggMC43OCkKKyAgICAgICAgICAoYm91bmRz
IDIyNS4wMCAyMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKGJvdW5kcyAyMjUuMDAgMjI1LjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAg
KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LW5l
c3RlZC1zaGFkb3ctb3ZlcmxhcHMtaHctbmVzdGVkLXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3RlZC1z
aGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTEzYTExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0
ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5lc3RlZC1zaGFkb3cuaHRtbApAQCAtMCwwICsxLDY4IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgICBU
aGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIHNvZnR3YXJlIGxheWVyIHdpbGwgYmUgcHJvbW90ZWQg
dG8gYSBjb21wb3NpdGVkIGxheWVyCisgICAgICAgIGlmIGl0cyBuZXN0ZWQgZHJvcCBzaGFkb3cg
aW50ZXJzZWN0cyBhIGNvbXBvc2l0ZWQgbGF5ZXIncyBuZXN0ZWQgZHJvcCBzaGFkb3cuCisgICAg
PC90aXRsZT4KKyAgICA8IS0tIElmIHRoZSB0ZXN0IHBhc3NlcywgdGhlIGxpZ2h0IGdyZWVuIGRy
b3Agc2hhZG93IHNob3VsZCBhcHBlYXIgb3ZlciB0aGUgdGhlIGdyYXkgZHJvcCBzaGFkb3cgd2hl
cmUgdGhleSBpbnRlcnNlY3QuIC0tPgorICAgIDxzdHlsZT4KKyAgICAgICAgI3NvZnR3YXJlLXBh
cmVudCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgICAg
IC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygyNXB4IDI1cHggMCBsaWdodGdyZWVuKTsKKwor
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAwOworICAg
ICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI3NvZnR3YXJlLWNoaWxkIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICAtd2Via2l0LWZp
bHRlcjogZHJvcC1zaGFkb3coNTBweCA1MHB4IDAgbGlnaHRibHVlKTsKKworICAgICAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAg
IGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDUwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2NvbXBvc2l0ZWQtcGFyZW50IHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworICAgICAgICAgICAgLXdlYmtpdC1maWx0
ZXI6IGRyb3Atc2hhZG93KC0yNXB4IC0yNXB4IDAgZ3JheSk7CisKKyAgICAgICAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMzMwcHg7CisgICAgICAgICAgICBsZWZ0
OiAzMzBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
MTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwg
MCk7CisgICAgICAgIH0KKyAgICAgICAgI2NvbXBvc2l0ZWQtY2hpbGQgeworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBkcm9w
LXNoYWRvdygtNTBweCAtNTBweCAwIGxpZ2h0Ymx1ZSk7CisKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogLTUwcHg7CisgICAgICAgICAgICBsZWZ0OiAt
NTBweDsKKyAgICAgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4
OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9
ImNvbXBvc2l0ZWQtcGFyZW50Ij4KKyAgICAgICAgPGRpdiBpZD0iY29tcG9zaXRlZC1jaGlsZCI+
PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ic29mdHdhcmUtcGFyZW50Ij4KKyAgICAg
ICAgPGRpdiBpZD0ic29mdHdhcmUtY2hpbGQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3Vt
ZW50KSkpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFw
cy1ody1sYXllci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJz
L3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0MTBmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctc2hhZG93LW92ZXJsYXBzLWh3LWxheWVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE5IEBACisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDgwMC4w
MCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDEwNS4wMCAxMDUuMDApCisgICAgICAgICAgKGJvdW5k
cyAxMDAuMDAgMTAwLjAwKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKGJvdW5kcyAxMjUuMDAgMTI1LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1ody1sYXllci5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHct
bGF5ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmUzMTY5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFk
b3ctb3ZlcmxhcHMtaHctbGF5ZXIuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgICBUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhhdCBhIHNvZnR3YXJlIGxheWVyIHdpbGwgYmUgcHJvbW90ZWQgdG8gYSBjb21wb3NpdGVk
IGxheWVyCisgICAgICAgIGlmIGl0cyBkcm9wIHNoYWRvdyBpbnRlcnNlY3RzIGEgY29tcG9zaXRl
ZCBsYXllci4KKyAgICA8L3RpdGxlPgorICAgIDwhLS0gSWYgdGhlIHRlc3QgcGFzc2VzLCB0aGUg
bGlnaHQgZ3JlZW4gZHJvcCBzaGFkb3cgc2hvdWxkIGFwcGVhciBvdmVyIHRoZSB0aGUgYmxhY2sg
ZGl2IHdoZXJlIHRoZXkgaW50ZXJzZWN0LiAtLT4KKyAgICA8c3R5bGU+CisgICAgICAgICNzb2Z0
d2FyZSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgICAg
IC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygyNXB4IDI1cHggMCBsaWdodGdyZWVuKTsKKwor
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAwOworICAg
ICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2NvbXBvc2l0ZWQgeworICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisKKyAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMTA1cHg7CisgICAgICAgICAgICBsZWZ0OiAxMDVw
eDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iY29t
cG9zaXRlZCI+PC9kaXY+CisgICAgPGRpdiBpZD0ic29mdHdhcmUiPjwvZGl2PgorICAgIDxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3Vt
ZW50KSkpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFw
cy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVy
cy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctc2hhZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODkwMmJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctc2hhZG93LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDgw
MC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChi
b3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDEwNS4wMCAxMDUuMDApCisgICAgICAgICAgKGFu
Y2hvciAwLjYwIDAuNjApCisgICAgICAgICAgKGJvdW5kcyAxMjUuMDAgMTI1LjAwKQorICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChib3VuZHMgMTI1LjAwIDEyNS4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctc2hhZG93
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFw
cy1ody1zaGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDI2
MzZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZmlsdGVycy9z
dy1zaGFkb3ctb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgYSBzb2Z0d2FyZSBsYXllciB3aWxsIGJlIHByb21vdGVkIHRvIGEgY29t
cG9zaXRlZCBsYXllcgorICAgICAgICBpZiBpdHMgZHJvcCBzaGFkb3cgaW50ZXJzZWN0cyBhIGNv
bXBvc2l0ZWQgbGF5ZXIncyBkcm9wIHNoYWRvdy4KKyAgICA8L3RpdGxlPgorICAgIDwhLS0gSWYg
dGhlIHRlc3QgcGFzc2VzLCB0aGUgbGlnaHQgZ3JlZW4gZHJvcCBzaGFkb3cgc2hvdWxkIGFwcGVh
ciBvdmVyIHRoZSB0aGUgZ3JheSBkcm9wIHNoYWRvdyB3aGVyZSB0aGV5IGludGVyc2VjdC4gLS0+
CisgICAgPHN0eWxlPgorICAgICAgICAjc29mdHdhcmUgeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3co
MjVweCAyNXB4IDAgbGlnaHRncmVlbik7CisKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAgIGxlZnQ6IDA7CisgICAgICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9Cisg
ICAgICAgICNjb21wb3NpdGVkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNr
OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGRyb3Atc2hhZG93KC0yNXB4IC0yNXB4IDAg
Z3JheSk7CisKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRv
cDogMTMwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMzBweDsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iY29tcG9zaXRlZCI+PC9kaXY+CisgICAgPGRp
diBpZD0ic29mdHdhcmUiPjwvZGl2PgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpbmRv
dy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KSkpOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHct
c2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZpbHRlcnMvc3ctbGF5ZXItb3ZlcmxhcHMtaHctc2hhZG93LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjY5MDcwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZmlsdGVycy9z
dy1sYXllci1vdmVybGFwcy1ody1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAK
KyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAg
KGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
ODAuMDAgODAuMDApCisgICAgICAgICAgKGFuY2hvciAwLjYwIDAuNjApCisgICAgICAgICAgKGJv
dW5kcyAxMjUuMDAgMTI1LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
KQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4w
MCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICAp
CisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctbGF5ZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZmlsdGVycy9zdy1z
aGFkb3ctb3ZlcmxhcHMtaHctbGF5ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdmMzZkYzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9maWx0ZXJzL3N3LXNoYWRvdy1vdmVybGFwcy1o
dy1sYXllci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAg
KGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxMDUuMDAgMTA1LjAwKQorICAg
ICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAoYm91bmRzIDEy
NS4wMCAxMjUuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxODVlMzQ0Li43YjE4YWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTMtMDEtMDcgIE1heCBWdWpvdmljICA8bXZ1am92
aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRmlsdGVyc10gUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjphZGRUb092ZXJsYXBNYXAgc2hvdWxkIHRha2UgaW50byBhY2NvdW50IHRoZSBmaWx0ZXJz
IG91dHNldHMgKGllLiBibHVyIGFuZCBkcm9wLXNoYWRvdykKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgIFdoZW4gYSBsYXllciBoYXMgYSBmaWx0ZXIgdGhhdCBt
b3ZlcyBwaXhlbHMsIHdlIG5lZWQgdG8gYWRkIGl0cyBlbnRpcmUgYm91bmRzLCBpbmNsdWRpbmcg
aXRzCisgICAgICAgIG91dHNldHMgYW5kIGNoaWxkcmVuLCB0byB0aGUgb3ZlcmxhcCBtYXAuIFRo
ZSBmaWx0ZXIgY2FuIG1vdmUgdGhlIGNoaWxkcmVuJ3MgcGl4ZWxzCisgICAgICAgIGFueXdoZXJl
IGluIHRoZSBsYXllciwgc28gd2UgY2FuJ3QgcmVseSBvbiB0aGUgY2hpbGRyZW4ncyBib3VuZHMu
CisKKyAgICAgICAgRXZlbnR1YWxseSwgd2Ugc2hvdWxkIGF2b2lkIGFkZGluZyBjaGlsZHJlbiB0
byB0aGUgb3ZlcmxhcCBtYXAgaWYgdGhlIHBhcmVudCdzIGJvdW5kcyB1c2VkCisgICAgICAgIGZv
ciBvdmVybGFwIHRlc3RpbmcgYWxyZWFkeSBpbmNsdWRlIHRoZSBjaGlsZHJlbi4gSSd2ZSBhZGRl
ZCBhIEZJWE1FIGZvciB0aGlzIG9wdGltaXphdGlvbi4KKworICAgICAgICBUZXN0czogY29tcG9z
aXRpbmcvZmlsdGVycy9zdy1sYXllci1vdmVybGFwcy1ody1zaGFkb3cuaHRtbAorICAgICAgICAg
ICAgICAgY29tcG9zaXRpbmcvZmlsdGVycy9zdy1uZXN0ZWQtc2hhZG93LW92ZXJsYXBzLWh3LW5l
c3RlZC1zaGFkb3cuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZmlsdGVycy9zdy1z
aGFkb3ctb3ZlcmxhcHMtaHctbGF5ZXIuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcv
ZmlsdGVycy9zdy1zaGFkb3ctb3ZlcmxhcHMtaHctc2hhZG93Lmh0bWwKKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om92
ZXJsYXBCb3VuZHMpOgorICAgICAgICAgICAgSWYgbmVjZXNzYXJ5LCByZXR1cm4gdGhlIGNhbGN1
bGF0ZWQgbGF5ZXIgYm91bmRzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuLiBPdGhlcndpc2UsCisg
ICAgICAgICAgICByZXR1cm4gdGhlIGxvY2FsQm91bmRpbmdCb3guCisgICAgICAgIChSZW5kZXJM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b3ZlcmxhcEJvdW5kc0luY2x1
ZGVDaGlsZHJlbik6CisgICAgICAgICAgICBJZiB0aGUgbGF5ZXIgaGFzIGEgZmlsdGVyIHRoYXQg
bW92ZXMgcGl4ZWxzLCByZXR1cm4gdHJ1ZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6YWRkVG9PdmVybGFwTWFwKToKKyAgICAgICAgICAgIEFkZCB0aGUgb3ZlcmxhcEJvdW5kcyBp
bnN0ZWFkIG9mIHRoZSBsb2NhbEJvdW5kaW5nQm94IHRvIHRoZSBvdmVybGFwIG1hcC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKToKKyAgICAgICAgICAgIFVzZSB0aGUgb3ZlcmxhcEJvdW5kcyBpbnN0ZWFkIG9m
IHRoZSBsb2NhbEJvdW5kaW5nQm94IGZvciBvdmVybGFwIHRlc3RpbmcuCisKIDIwMTMtMDEtMDkg
IFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUg
dW51c2VkIGluY2x1ZGVzIGZyb20gSFRNTFRyZWVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCmluZGV4IGRmNDkyMDEuLmJiOWJmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02MDQsNiArNjA0LDE3IEBAIHB1YmxpYzoKICAgICAv
LyBQaXhlbCBzbmFwcGVkIGJvdW5kaW5nIGJveCByZWxhdGl2ZSB0byB0aGUgcm9vdC4KICAgICBJ
bnRSZWN0IGFic29sdXRlQm91bmRpbmdCb3goKSBjb25zdDsKIAorICAgIC8vIEJvdW5kcyB1c2Vk
IGZvciBsYXllciBvdmVybGFwIHRlc3RpbmcgaW4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yLgorICAg
IExheW91dFJlY3Qgb3ZlcmxhcEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG92ZXJsYXBCb3VuZHNJ
bmNsdWRlQ2hpbGRyZW4oKSA/IGNhbGN1bGF0ZUxheWVyQm91bmRzKHRoaXMpIDogbG9jYWxCb3Vu
ZGluZ0JveCgpOyB9CisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgLy8gSWYgdHJ1ZSwg
dGhpcyBsYXllcidzIGNoaWxkcmVuIGFyZSBpbmNsdWRlZCBpbiBpdHMgYm91bmRzIGZvciBvdmVy
bGFwIHRlc3RpbmcuCisgICAgLy8gV2UgY2FuJ3QgcmVseSBvbiB0aGUgY2hpbGRyZW4ncyBwb3Np
dGlvbnMgaWYgdGhpcyBsYXllciBoYXMgYSBmaWx0ZXIgdGhhdCBjb3VsZCBoYXZlIG1vdmVkIHRo
ZSBjaGlsZHJlbidzIHBpeGVscyBhcm91bmQuCisgICAgYm9vbCBvdmVybGFwQm91bmRzSW5jbHVk
ZUNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gaGFzRmlsdGVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5
bGUoKS0+ZmlsdGVyKCkuaGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzKCk7IH0KKyNlbHNlCisgICAg
Ym9vbCBvdmVybGFwQm91bmRzSW5jbHVkZUNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNlbmRpZgorCiAgICAgLy8gQ2FuIHBhc3Mgb2Zmc2V0RnJvbVJvb3QgaWYga25vd24uCiAg
ICAgSW50UmVjdCBjYWxjdWxhdGVMYXllckJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0
b3JMYXllciwgY29uc3QgTGF5b3V0UG9pbnQqIG9mZnNldEZyb21Sb290ID0gMCwgQ2FsY3VsYXRl
TGF5ZXJCb3VuZHNGbGFncyA9IERlZmF1bHRDYWxjdWxhdGVMYXllckJvdW5kc0ZsYWdzKSBjb25z
dDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKaW5kZXggZmRlMzI5Ny4uMjBhZTVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTczNyw3ICs3Mzcs
OSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFwTWFwKE92ZXJsYXBN
YXAmIG92ZXJsYXBNYXAsIFJlbmRlckxheWVyKgogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
IWJvdW5kc0NvbXB1dGVkKSB7Ci0gICAgICAgIGxheWVyQm91bmRzID0gZW5jbG9zaW5nSW50UmVj
dChvdmVybGFwTWFwLmdlb21ldHJ5TWFwKCkuYWJzb2x1dGVSZWN0KGxheWVyLT5sb2NhbEJvdW5k
aW5nQm94KCkpKTsKKyAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgbGF5ZXIncyBvdmVybGFwIGJv
dW5kcyBpbmNsdWRlIGl0cyBjaGlsZHJlbiwgd2UgZG9uJ3QgbmVlZCB0byBhZGQgaXRzCisgICAg
ICAgIC8vIGNoaWxkcmVuJ3MgYm91bmRzIHRvIHRoZSBvdmVybGFwIG1hcC4KKyAgICAgICAgbGF5
ZXJCb3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KG92ZXJsYXBNYXAuZ2VvbWV0cnlNYXAoKS5hYnNv
bHV0ZVJlY3QobGF5ZXItPm92ZXJsYXBCb3VuZHMoKSkpOwogICAgICAgICAvLyBFbXB0eSByZWN0
cyBuZXZlciBpbnRlcnNlY3QsIGJ1dCB3ZSBuZWVkIHRoZW0gdG8gZm9yIHRoZSBwdXJwb3NlcyBv
ZiBvdmVybGFwIHRlc3RpbmcuCiAgICAgICAgIGlmIChsYXllckJvdW5kcy5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBsYXllckJvdW5kcy5zZXRTaXplKEludFNpemUoMSwgMSkpOwpAQCAtODI0LDcg
KzgyNiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdS
ZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgSW50UmVjdCBhYnNCb3VuZHM7
CiAgICAgaWYgKG92ZXJsYXBNYXAgJiYgIW92ZXJsYXBNYXAtPmlzRW1wdHkoKSAmJiBjb21wb3Np
dGluZ1N0YXRlLm1fdGVzdGluZ092ZXJsYXApIHsKICAgICAgICAgLy8gSWYgd2UncmUgdGVzdGlu
ZyBmb3Igb3ZlcmxhcCwgd2Ugb25seSBuZWVkIHRvIGNvbXBvc2l0ZSBpZiB3ZSBvdmVybGFwIHNv
bWV0aGluZyB0aGF0IGlzIGFscmVhZHkgY29tcG9zaXRlZC4KLSAgICAgICAgYWJzQm91bmRzID0g
ZW5jbG9zaW5nSW50UmVjdChvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLmFic29sdXRlUmVjdChs
YXllci0+bG9jYWxCb3VuZGluZ0JveCgpKSk7CisgICAgICAgIGFic0JvdW5kcyA9IGVuY2xvc2lu
Z0ludFJlY3Qob3ZlcmxhcE1hcC0+Z2VvbWV0cnlNYXAoKS5hYnNvbHV0ZVJlY3QobGF5ZXItPm92
ZXJsYXBCb3VuZHMoKSkpOwogCiAgICAgICAgIC8vIEVtcHR5IHJlY3RzIG5ldmVyIGludGVyc2Vj
dCwgYnV0IHdlIG5lZWQgdGhlbSB0byBmb3IgdGhlIHB1cnBvc2VzIG9mIG92ZXJsYXAgdGVzdGlu
Zy4KICAgICAgICAgaWYgKGFic0JvdW5kcy5pc0VtcHR5KCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>