<?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>110505</bug_id>
          
          <creation_ts>2013-02-21 12:59:56 -0800</creation_ts>
          <short_desc>Expose a list of all reasons that qualify a RenderLayer to be composited</short_desc>
          <delta_ts>2013-02-22 13:47:46 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>110559</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>838732</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-21 12:59:56 -0800</bug_when>
    <thetext>Expose a list of all reasons that qualify a RenderLayer to be compositedd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838737</commentid>
    <comment_count>1</comment_count>
      <attachid>189582</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-21 13:03:03 -0800</bug_when>
    <thetext>Created attachment 189582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838744</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-21 13:06:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/13266329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838745</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-21 13:07:30 -0800</bug_when>
    <thetext>Sounds very useful to the inspector. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838748</commentid>
    <comment_count>4</comment_count>
      <attachid>189582</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 13:10:44 -0800</bug_when>
    <thetext>Comment on attachment 189582
Patch

Attachment 189582 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16697265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838758</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-21 13:14:00 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Sounds very useful to the inspector. :)

That&apos;s what I&apos;m thinking too, and that&apos;s why I&apos;m adding it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838763</commentid>
    <comment_count>6</comment_count>
      <attachid>189582</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-21 13:23:04 -0800</bug_when>
    <thetext>Comment on attachment 189582
Patch

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1779
&gt; +    if (inCompositingMode() &amp;&amp; layer-&gt;isRootLayer())
&gt; +        reason |= CompositingReasonRoot;

As far as I can tell (sorry, I&apos;m terrible at reading diffs), this is the only case where you&apos;d have more than one reason for compositing. See below.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:-1782
&gt; +    if (reason &amp; CompositingReasonRoot)
&gt;          return &quot;root&quot;;
&gt; -

So what happens if you have this reason and another one. You&apos;ll never report &quot;root&quot; because you exit early above.

This makes me wonder why you&apos;re using a bitmask over just a regular enum?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838773</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-21 13:30:53 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 189582 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189582&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1779
&gt; &gt; +    if (inCompositingMode() &amp;&amp; layer-&gt;isRootLayer())
&gt; &gt; +        reason |= CompositingReasonRoot;
&gt; 
&gt; As far as I can tell (sorry, I&apos;m terrible at reading diffs), this is the only case where you&apos;d have more than one reason for compositing. See below.

You&apos;re looking at the wrong method, this is only related to logging. There can definitely be several reasons as reported in the new version of reasonsForCompositing(). For instance, you can have a &lt;video&gt; element with a 3D transform applied.

&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:-1782
&gt; &gt; +    if (reason &amp; CompositingReasonRoot)
&gt; &gt;          return &quot;root&quot;;
&gt; &gt; -
&gt; 
&gt; So what happens if you have this reason and another one. You&apos;ll never report &quot;root&quot; because you exit early above.
&gt; 
&gt; This makes me wonder why you&apos;re using a bitmask over just a regular enum?

The bit mask will be used for the Web Inspector to be able to several reasons a RenderLayer was composited. The logReasonsForCompsiting() method replaces the old reasonsForCompositing() and its behavior which only reports the first matching reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838778</commentid>
    <comment_count>8</comment_count>
      <attachid>189582</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-21 13:35:53 -0800</bug_when>
    <thetext>Comment on attachment 189582
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1779
&gt;&gt;&gt; +        reason |= CompositingReasonRoot;
&gt;&gt; 
&gt;&gt; As far as I can tell (sorry, I&apos;m terrible at reading diffs), this is the only case where you&apos;d have more than one reason for compositing. See below.
&gt; 
&gt; You&apos;re looking at the wrong method, this is only related to logging. There can definitely be several reasons as reported in the new version of reasonsForCompositing(). For instance, you can have a &lt;video&gt; element with a 3D transform applied.

Yep - I screwed up.

&gt;&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:-1782
&gt;&gt;&gt; -
&gt;&gt; 
&gt;&gt; So what happens if you have this reason and another one. You&apos;ll never report &quot;root&quot; because you exit early above.
&gt;&gt; 
&gt;&gt; This makes me wonder why you&apos;re using a bitmask over just a regular enum?
&gt; 
&gt; The bit mask will be used for the Web Inspector to be able to several reasons a RenderLayer was composited. The logReasonsForCompsiting() method replaces the old reasonsForCompositing() and its behavior which only reports the first matching reason.

So I still think you should fix this method to return multiple reasons. If reason has both CompositingReasonVideo and CompositingReason3DTransform then the string should have &quot;3d transform + video&quot; or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838781</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-21 13:37:47 -0800</bug_when>
    <thetext>CA has no support for non-separable modes, BTW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838782</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-21 13:39:16 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; CA has no support for non-separable modes, BTW.
Sorry, wrong bug.

What I want to say here is that I&apos;d rather not have the expense of running all the &quot;requires compositing for&quot; in order to compute those flags (tho if we only do it when the inspector needs it, that would be OK).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838784</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-21 13:41:01 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; CA has no support for non-separable modes, BTW.
&gt; Sorry, wrong bug.
&gt; 
&gt; What I want to say here is that I&apos;d rather not have the expense of running all the &quot;requires compositing for&quot; in order to compute those flags (tho if we only do it when the inspector needs it, that would be OK).

This would only be for the inspector and logging scenarios. In the case of the inspector, I intend on exposing a per-layer call into WebCore to gather this information as needed from the front-ned, so it would only be done as necessary and not upfront for all layers pushed to the front-end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838786</commentid>
    <comment_count>12</comment_count>
      <attachid>189582</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-21 13:42:58 -0800</bug_when>
    <thetext>Comment on attachment 189582
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:-1782
&gt;&gt;&gt;&gt; -
&gt;&gt;&gt; 
&gt;&gt;&gt; So what happens if you have this reason and another one. You&apos;ll never report &quot;root&quot; because you exit early above.
&gt;&gt;&gt; 
&gt;&gt;&gt; This makes me wonder why you&apos;re using a bitmask over just a regular enum?
&gt;&gt; 
&gt;&gt; The bit mask will be used for the Web Inspector to be able to several reasons a RenderLayer was composited. The logReasonsForCompsiting() method replaces the old reasonsForCompositing() and its behavior which only reports the first matching reason.
&gt; 
&gt; So I still think you should fix this method to return multiple reasons. If reason has both CompositingReasonVideo and CompositingReason3DTransform then the string should have &quot;3d transform + video&quot; or something.

It&apos;s fine for this logging to not change.

&gt; Source/WebCore/rendering/RenderLayerCompositor.h:85
&gt; +typedef unsigned CompositingReason;

CompositingReasons (plural), since this is a bitmask.

&gt; Source/WebCore/rendering/RenderLayerCompositor.h:269
&gt; +    CompositingReason reasonForCompositing(const RenderLayer*);

This should be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839249</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-21 22:36:40 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/143691</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839275</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 23:18:12 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 110559</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839555</commentid>
    <comment_count>15</comment_count>
      <attachid>189769</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-22 07:12:21 -0800</bug_when>
    <thetext>Created attachment 189769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839597</commentid>
    <comment_count>16</comment_count>
      <attachid>189769</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 08:32:45 -0800</bug_when>
    <thetext>Comment on attachment 189769
Patch

Attachment 189769 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16716012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839646</commentid>
    <comment_count>17</comment_count>
      <attachid>189781</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-22 09:16:19 -0800</bug_when>
    <thetext>Created attachment 189781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839880</commentid>
    <comment_count>18</comment_count>
      <attachid>189781</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 13:36:09 -0800</bug_when>
    <thetext>Comment on attachment 189781
Patch

Rejecting attachment 189781 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 189781, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:

fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2

Updating OpenSource
fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2
Updating OpenSource
fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Full output: http://queues.webkit.org/results/16709254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839896</commentid>
    <comment_count>19</comment_count>
      <attachid>189781</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 13:47:41 -0800</bug_when>
    <thetext>Comment on attachment 189781
Patch

Clearing flags on attachment: 189781

Committed r143787: &lt;http://trac.webkit.org/changeset/143787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839897</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 13:47:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189582</attachid>
            <date>2013-02-21 13:03:03 -0800</date>
            <delta_ts>2013-02-22 07:12:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110505-20130221125923.patch</filename>
            <type>text/plain</type>
            <size>12842</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE1ODNmZWE4MmVhMjVi
ZWJiZjZlNWYyYTA1MWQ4ODIxZTc2MzlkNC4uMjM3ZmY3MmE4ZDU0Y2E5MzRhYjcxMTQwNjdmYzA0
N2FmNTQxMTcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTIxICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGEgbGlzdCBv
ZiBhbGwgcmVhc29ucyB0aGF0IHF1YWxpZnkgYSBSZW5kZXJMYXllciB0byBiZSBjb21wb3NpdGVk
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNTA1
CisKKyAgICAgICAgRXhwb3NlIHRoZSB2YXJpb3VzIHJlYXNvbnMgdGhhdCBjYW4gcXVhbGlmeSBh
IFJlbmRlckxheWVyIHRvIGJlIGNvbXBvc2l0ZWQKKyAgICAgICAgdmlhIGEgbmV3IGJpdG1hc2sg
cmV0dXJuZWQgYnkgdGhlIHJlYXNvbkZvckNvbXBvc2l0aW5nKCkgbWV0aG9kIG9uCisgICAgICAg
IFJlbmRlckxheWVyQ29tcG9zaXRvci4gVGhpcyBtZXRob2QgYWxyZWFkeSBleGlzdGVkIGFuZCB3
YXMgdXNlZCBmb3IgbG9nZ2luZworICAgICAgICBwdXJwb3NlcywgYnV0IHRoZSBwcmV2aW91cyBm
dW5jdGlvbmFsaXR5IGlzIG5vdyBhY2Nlc3NlZCB2aWEgdGhlCisgICAgICAgIGxvZ1JlYXNvbkZv
ckNvbXBvc2l0aW5nKCkgbWV0aG9kLgorICAgICAgICAKKyAgICAgICAgVGhpcyB3aWxsIGFsbG93
IHRoZSB0aGUgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0
aW9uCisgICAgICAgIHRvIHRoZSBmcm9udC1lbmQgb24gYSBwZXItbGF5ZXIgYmFzaXMgYXMgcmVx
dWVzdGVkIGJ5IHRoZSBmcm9udC1lbmQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmxvZ0xheWVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dSZWFzb25Gb3JDb21wb3Np
dGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAg
ICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKwogMjAxMy0wMi0xOCAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE0MzE0NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMDQzNzMzMGQ3ZmNlNTFlY2RlMTI1Zjk3MjliM2Fk
YWIxMjhkZTk1Ny4uZmU2ZmRiODdiYTY2ZmVhOGFlN2FlMGE4OTZhNGJmYmExN2MwNGQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5
ZXJJbmZvKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgaW50IGRlcHRoKQogCiAgICAgTE9HKENv
bXBvc2l0aW5nLCAiJSpwICVkeCVkICUuMmZLQiAoJXMpICVzXG4iLCAxMiArIGRlcHRoICogMiwg
bGF5ZXIsIGJhY2tpbmctPmNvbXBvc2l0ZWRCb3VuZHMoKS53aWR0aCgpLCBiYWNraW5nLT5jb21w
b3NpdGVkQm91bmRzKCkuaGVpZ2h0KCksCiAgICAgICAgIGJhY2tpbmctPmJhY2tpbmdTdG9yZU1l
bW9yeUVzdGltYXRlKCkgLyAxMDI0LAotICAgICAgICByZWFzb25Gb3JDb21wb3NpdGluZyhsYXll
ciksIGxheWVyLT5uYW1lKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGxvZ1JlYXNvbkZvckNv
bXBvc2l0aW5nKGxheWVyKSwgbGF5ZXItPm5hbWUoKS51dGY4KCkuZGF0YSgpKTsKIH0KICNlbmRp
ZgogCkBAIC0xNzAwLDkgKzE3MDAsMTMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
cXVpcmVzT3duQmFja2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY28KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi1jb25zdCBjaGFyKiBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWVyKiBs
YXllcikKK0NvbXBvc2l0aW5nUmVhc29uIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uRm9y
Q29tcG9zaXRpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKQogeworICAgIENvbXBvc2l0aW5n
UmVhc29uIHJlYXNvbiA9IENvbXBvc2l0aW5nUmVhc29uTm9uZTsKKworICAgIGlmICghbGF5ZXIg
fHwgIWxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKKyAgICAgICAgcmV0dXJuIHJlYXNvbjsKKwogICAg
IFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBsYXllci0+cmVuZGVyZXIoKTsKICAgICBpZiAobGF5
ZXItPmlzUmVmbGVjdGlvbigpKSB7CiAgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPnBhcmVu
dCgpOwpAQCAtMTcxMCw3NyArMTcxNCwxNTIgQEAgY29uc3QgY2hhciogUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZWFzb25Gb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIKICAg
ICB9CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvclRyYW5zZm9ybShyZW5kZXJlcikp
Ci0gICAgICAgIHJldHVybiAiM0QgdHJhbnNmb3JtIjsKKyAgICAgICAgcmVhc29uIHw9IENvbXBv
c2l0aW5nUmVhc29uM0RUcmFuc2Zvcm07CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0Zv
clZpZGVvKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJ2aWRlbyI7CisgICAgICAgIHJlYXNv
biB8PSBDb21wb3NpdGluZ1JlYXNvblZpZGVvOwogCiAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRp
bmdGb3JDYW52YXMocmVuZGVyZXIpKQotICAgICAgICByZXR1cm4gImNhbnZhcyI7CisgICAgICAg
IHJlYXNvbiB8PSBDb21wb3NpdGluZ1JlYXNvbkNhbnZhczsKIAogICAgIGlmIChyZXF1aXJlc0Nv
bXBvc2l0aW5nRm9yUGx1Z2luKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJwbHVnaW4iOwor
ICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFzb25QbHVnaW47CiAKICAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJpZnJh
bWUiOworICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFzb25JRnJhbWU7CiAgICAgCiAg
ICAgaWYgKChjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSAmJiByZW5kZXJlci0+c3R5bGUoKS0+YmFj
a2ZhY2VWaXNpYmlsaXR5KCkgPT0gQmFja2ZhY2VWaXNpYmlsaXR5SGlkZGVuKSkKLSAgICAgICAg
cmV0dXJuICJiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW4iOworICAgICAgICByZWFzb24gfD0g
Q29tcG9zaXRpbmdSZWFzb25CYWNrZmFjZVZpc2liaWxpdHlIaWRkZW47CiAKICAgICBpZiAoY2xp
cHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKGxheWVyKSkKLSAgICAgICAgcmV0dXJuICJjbGlwcyBj
b21wb3NpdGluZyBkZXNjZW5kYW50cyI7CisgICAgICAgIHJlYXNvbiB8PSBDb21wb3NpdGluZ1Jl
YXNvbkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50czsKIAogICAgIGlmIChyZXF1aXJlc0NvbXBv
c2l0aW5nRm9yQW5pbWF0aW9uKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJhbmltYXRpb24i
OworICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFzb25BbmltYXRpb247CiAKICAgICBp
ZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvckZpbHRlcnMocmVuZGVyZXIpKQotICAgICAgICByZXR1
cm4gImZpbHRlcnMiOworICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJz
OwogCiAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihyZW5kZXJlciwgbGF5
ZXIpKQotICAgICAgICByZXR1cm4gcmVuZGVyZXItPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4
ZWRQb3NpdGlvbiA/ICJwb3NpdGlvbjogZml4ZWQiIDogInBvc2l0aW9uOiBzdGlja3kiOworICAg
ICAgICByZWFzb24gfD0gcmVuZGVyZXItPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3Np
dGlvbiA/IENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25GaXhlZCA6IENvbXBvc2l0aW5nUmVhc29u
UG9zaXRpb25TdGlja3k7CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsaW5nKGxheWVyKSkKLSAgICAgICAgcmV0dXJuICItd2Via2l0LW92ZXJmbG93LXNjcm9s
bGluZzogdG91Y2giOworICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFzb25PdmVyZmxv
d1Njcm9sbGluZ1RvdWNoOwogCiAgICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JTdGFja2luZykKLSAg
ICAgICAgcmV0dXJuICJzdGFja2luZyI7Ci0KLSAgICBpZiAobGF5ZXItPmluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0Zvck92ZXJs
YXApCi0gICAgICAgIHJldHVybiAib3ZlcmxhcCI7Ci0KLSAgICBpZiAobGF5ZXItPmluZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0Zv
ckJhY2tncm91bmRMYXllcikKLSAgICAgICAgcmV0dXJuICJuZWdhdGl2ZSB6LWluZGV4IGNoaWxk
cmVuIjsKLQotICAgIGlmIChsYXllci0+aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpID09IFJl
bmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nRm9yR3JhcGhpY2FsRWZmZWN0KSB7CisgICAg
ICAgIHJlYXNvbiB8PSBDb21wb3NpdGluZ1JlYXNvblN0YWNraW5nOworICAgIGVsc2UgaWYgKGxh
eWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdGb3JPdmVybGFwKQorICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFz
b25PdmVybGFwOworICAgIGVsc2UgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
KCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JCYWNrZ3JvdW5kTGF5ZXIp
CisgICAgICAgIHJlYXNvbiB8PSBDb21wb3NpdGluZ1JlYXNvbk5lZ2F0aXZlWkluZGV4Q2hpbGRy
ZW47CisgICAgZWxzZSBpZiAobGF5ZXItPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSA9PSBS
ZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0ZvckdyYXBoaWNhbEVmZmVjdCkgewogICAg
ICAgICBpZiAobGF5ZXItPnRyYW5zZm9ybSgpKQotICAgICAgICAgICAgcmV0dXJuICJ0cmFuc2Zv
cm0gd2l0aCBjb21wb3NpdGVkIGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIHJlYXNvbiB8PSBD
b21wb3NpdGluZ1JlYXNvblRyYW5zZm9ybVdpdGhDb21wb3NpdGVkRGVzY2VuZGFudHM7CiAKICAg
ICAgICAgaWYgKHJlbmRlcmVyLT5pc1RyYW5zcGFyZW50KCkpCi0gICAgICAgICAgICByZXR1cm4g
Im9wYWNpdHkgd2l0aCBjb21wb3NpdGVkIGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIHJlYXNv
biB8PSBDb21wb3NpdGluZ1JlYXNvbk9wYWNpdHlXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwog
CiAgICAgICAgIGlmIChyZW5kZXJlci0+aGFzTWFzaygpKQotICAgICAgICAgICAgcmV0dXJuICJt
YXNrIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7CisgICAgICAgICAgICByZWFzb24gfD0g
Q29tcG9zaXRpbmdSZWFzb25NYXNrV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAogICAgICAg
ICBpZiAocmVuZGVyZXItPmhhc1JlZmxlY3Rpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAicmVm
bGVjdGlvbiB3aXRoIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMiOworICAgICAgICAgICAgcmVhc29u
IHw9IENvbXBvc2l0aW5nUmVhc29uUmVmbGVjdGlvbldpdGhDb21wb3NpdGVkRGVzY2VuZGFudHM7
CiAKICAgICAgICAgaWYgKHJlbmRlcmVyLT5oYXNGaWx0ZXIoKSkKLSAgICAgICAgICAgIHJldHVy
biAiZmlsdGVyIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7CisgICAgICAgICAgICByZWFz
b24gfD0gQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwog
ICAgICAgICAgICAgCiAgICAgICAgIGlmIChyZW5kZXJlci0+aGFzQmxlbmRNb2RlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gImJsZW5kaW5nIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7Ci0g
ICAgfQorICAgICAgICAgICAgcmVhc29uIHw9IENvbXBvc2l0aW5nUmVhc29uQmxlbmRpbmdXaXRo
Q29tcG9zaXRlZERlc2NlbmRhbnRzOworICAgIH0gZWxzZSBpZiAobGF5ZXItPmluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0ZvclBl
cnNwZWN0aXZlKQorICAgICAgICByZWFzb24gfD0gQ29tcG9zaXRpbmdSZWFzb25QZXJzcGVjdGl2
ZTsKKyAgICBlbHNlIGlmIChsYXllci0+aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpID09IFJl
bmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nRm9yUHJlc2VydmUzRCkKKyAgICAgICAgcmVh
c29uIHw9IENvbXBvc2l0aW5nUmVhc29uUHJlc2VydmUzRDsKKworICAgIGlmIChpbkNvbXBvc2l0
aW5nTW9kZSgpICYmIGxheWVyLT5pc1Jvb3RMYXllcigpKQorICAgICAgICByZWFzb24gfD0gQ29t
cG9zaXRpbmdSZWFzb25Sb290OworCisgICAgcmV0dXJuIHJlYXNvbjsKK30KKworI2lmICFMT0df
RElTQUJMRUQKK2NvbnN0IGNoYXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nUmVhc29uRm9y
Q29tcG9zaXRpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKQoreworICAgIENvbXBvc2l0aW5n
UmVhc29uIHJlYXNvbiA9IHJlYXNvbkZvckNvbXBvc2l0aW5nKGxheWVyKTsKKworICAgIGlmICgh
cmVhc29uKQorICAgICAgICByZXR1cm4gIiI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRp
bmdSZWFzb24zRFRyYW5zZm9ybSkKKyAgICAgICAgcmV0dXJuICIzRCB0cmFuc2Zvcm0iOworCisg
ICAgaWYgKHJlYXNvbiAmIENvbXBvc2l0aW5nUmVhc29uVmlkZW8pCisgICAgICAgIHJldHVybiAi
dmlkZW8iOwogCi0gICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0g
UmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JQZXJzcGVjdGl2ZSkKKyAgICBpZiAo
cmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25DYW52YXMpCisgICAgICAgIHJldHVybiAiY2FudmFz
IjsKKworICAgIGlmIChyZWFzb24gJiBDb21wb3NpdGluZ1JlYXNvblBsdWdpbikKKyAgICAgICAg
cmV0dXJuICJwbHVnaW4iOworCisgICAgaWYgKHJlYXNvbiAmIENvbXBvc2l0aW5nUmVhc29uSUZy
YW1lKQorICAgICAgICByZXR1cm4gImlmcmFtZSI7CisgICAgCisgICAgaWYgKHJlYXNvbiAmIENv
bXBvc2l0aW5nUmVhc29uQmFja2ZhY2VWaXNpYmlsaXR5SGlkZGVuKQorICAgICAgICByZXR1cm4g
ImJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbiI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9z
aXRpbmdSZWFzb25DbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMpCisgICAgICAgIHJldHVybiAi
Y2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiOworCisgICAgaWYgKHJlYXNvbiAmIENvbXBv
c2l0aW5nUmVhc29uQW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gImFuaW1hdGlvbiI7CisKKyAg
ICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJzKQorICAgICAgICByZXR1cm4g
ImZpbHRlcnMiOworCisgICAgaWYgKHJlYXNvbiAmIENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25G
aXhlZCkKKyAgICAgICAgcmV0dXJuICJwb3NpdGlvbjogZml4ZWQiOworCisgICAgaWYgKHJlYXNv
biAmIENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25TdGlja3kpCisgICAgICAgIHJldHVybiAicG9z
aXRpb246IHN0aWNreSI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25PdmVy
Zmxvd1Njcm9sbGluZ1RvdWNoKQorICAgICAgICByZXR1cm4gIi13ZWJraXQtb3ZlcmZsb3ctc2Ny
b2xsaW5nOiB0b3VjaCI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25TdGFj
a2luZykKKyAgICAgICAgcmV0dXJuICJzdGFja2luZyI7CisKKyAgICBpZiAocmVhc29uICYgQ29t
cG9zaXRpbmdSZWFzb25PdmVybGFwKQorICAgICAgICByZXR1cm4gIm92ZXJsYXAiOworCisgICAg
aWYgKHJlYXNvbiAmIENvbXBvc2l0aW5nUmVhc29uTmVnYXRpdmVaSW5kZXhDaGlsZHJlbikKKyAg
ICAgICAgcmV0dXJuICJuZWdhdGl2ZSB6LWluZGV4IGNoaWxkcmVuIjsKKworICAgIGlmIChyZWFz
b24gJiBDb21wb3NpdGluZ1JlYXNvblRyYW5zZm9ybVdpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMp
CisgICAgICAgIHJldHVybiAidHJhbnNmb3JtIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7
CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25PcGFjaXR5V2l0aENvbXBvc2l0
ZWREZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJvcGFjaXR5IHdpdGggY29tcG9zaXRlZCBk
ZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25NYXNrV2l0
aENvbXBvc2l0ZWREZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJtYXNrIHdpdGggY29tcG9z
aXRlZCBkZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25S
ZWZsZWN0aW9uV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJyZWZs
ZWN0aW9uIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29uICYg
Q29tcG9zaXRpbmdSZWFzb25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzKQorICAgICAg
ICByZXR1cm4gImZpbHRlciB3aXRoIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMiOworICAgICAgICAg
ICAgCisgICAgaWYgKHJlYXNvbiAmIENvbXBvc2l0aW5nUmVhc29uQmxlbmRpbmdXaXRoQ29tcG9z
aXRlZERlc2NlbmRhbnRzKQorICAgICAgICByZXR1cm4gImJsZW5kaW5nIHdpdGggY29tcG9zaXRl
ZCBkZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29uICYgQ29tcG9zaXRpbmdSZWFzb25QZXJz
cGVjdGl2ZSkKICAgICAgICAgcmV0dXJuICJwZXJzcGVjdGl2ZSI7CiAKLSAgICBpZiAobGF5ZXIt
PmluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21w
b3NpdGluZ0ZvclByZXNlcnZlM0QpCisgICAgaWYgKHJlYXNvbiAmIENvbXBvc2l0aW5nUmVhc29u
UHJlc2VydmUzRCkKICAgICAgICAgcmV0dXJuICJwcmVzZXJ2ZS0zZCI7CiAKLSAgICBpZiAoaW5D
b21wb3NpdGluZ01vZGUoKSAmJiBsYXllci0+aXNSb290TGF5ZXIoKSkKKyAgICBpZiAocmVhc29u
ICYgQ29tcG9zaXRpbmdSZWFzb25Sb290KQogICAgICAgICByZXR1cm4gInJvb3QiOwotCi0gICAg
cmV0dXJuICIiOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBjYmUxZDliNmIyNzU3Y2MyNTVlY2EwMThmMzgz
NjNkYjM4N2MzZWE5Li5iOTA3M2NiYjI5ZjkyNDYyN2IzZTRjYzIwNGNmN2Q2MDA0MjQ1MjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CkBAIC01NSw2ICs1NSwzNSBAQCBlbnVtIENvbXBvc2l0aW5nVXBkYXRlVHlwZSB7CiAgICAgQ29t
cG9zaXRpbmdVcGRhdGVPbkNvbXBvc2l0ZWRTY3JvbGwKIH07CiAKK2VudW0geworICAgIENvbXBv
c2l0aW5nUmVhc29uTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAor
ICAgIENvbXBvc2l0aW5nUmVhc29uM0RUcmFuc2Zvcm0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxIDw8IDAsCisgICAgQ29tcG9zaXRpbmdSZWFzb25WaWRlbyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKKyAgICBDb21wb3NpdGluZ1JlYXNvbkNhbnZhcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAyLAorICAgIENvbXBvc2l0aW5n
UmVhc29uUGx1Z2luICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDMsCisg
ICAgQ29tcG9zaXRpbmdSZWFzb25JRnJhbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEgPDwgNCwKKyAgICBDb21wb3NpdGluZ1JlYXNvbkJhY2tmYWNlVmlzaWJpbGl0eUhpZGRl
biAgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgIENvbXBvc2l0aW5nUmVhc29uQ2xpcHNDb21w
b3NpdGluZ0Rlc2NlbmRhbnRzICAgICAgICAgICAgPSAxIDw8IDYsCisgICAgQ29tcG9zaXRpbmdS
ZWFzb25BbmltYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNywKKyAg
ICBDb21wb3NpdGluZ1JlYXNvbkZpbHRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMSA8PCA4LAorICAgIENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25GaXhlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxIDw8IDksCisgICAgQ29tcG9zaXRpbmdSZWFzb25Qb3NpdGlvblN0
aWNreSAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMTAsCisgICAgQ29tcG9zaXRpbmdS
ZWFzb25PdmVyZmxvd1Njcm9sbGluZ1RvdWNoICAgICAgICAgICAgICAgICA9IDEgPDwgMTEsCisg
ICAgQ29tcG9zaXRpbmdSZWFzb25TdGFja2luZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEgPDwgMTIsCisgICAgQ29tcG9zaXRpbmdSZWFzb25PdmVybGFwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgMTMsCisgICAgQ29tcG9zaXRpbmdSZWFzb25OZWdhdGl2
ZVpJbmRleENoaWxkcmVuICAgICAgICAgICAgICAgICA9IDEgPDwgMTQsCisgICAgQ29tcG9zaXRp
bmdSZWFzb25UcmFuc2Zvcm1XaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzICAgICA9IDEgPDwgMTUs
CisgICAgQ29tcG9zaXRpbmdSZWFzb25PcGFjaXR5V2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cyAg
ICAgICA9IDEgPDwgMTYsCisgICAgQ29tcG9zaXRpbmdSZWFzb25NYXNrV2l0aENvbXBvc2l0ZWRE
ZXNjZW5kYW50cyAgICAgICAgICA9IDEgPDwgMTcsCisgICAgQ29tcG9zaXRpbmdSZWFzb25SZWZs
ZWN0aW9uV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cyAgICA9IDEgPDwgMTgsCisgICAgQ29tcG9z
aXRpbmdSZWFzb25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzICAgICAgICA9IDEgPDwg
MTksCisgICAgQ29tcG9zaXRpbmdSZWFzb25CbGVuZGluZ1dpdGhDb21wb3NpdGVkRGVzY2VuZGFu
dHMgICAgICA9IDEgPDwgMjAsCisgICAgQ29tcG9zaXRpbmdSZWFzb25QZXJzcGVjdGl2ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMjEsCisgICAgQ29tcG9zaXRpbmdSZWFzb25Q
cmVzZXJ2ZTNEICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMjIsCisgICAgQ29t
cG9zaXRpbmdSZWFzb25Sb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEg
PDwgMjMKK307Cit0eXBlZGVmIHVuc2lnbmVkIENvbXBvc2l0aW5nUmVhc29uOworCiAvLyBSZW5k
ZXJMYXllckNvbXBvc2l0b3IgbWFuYWdlcyB0aGUgaGllcmFyY2h5IG9mCiAvLyBjb21wb3NpdGVk
IFJlbmRlckxheWVycy4gSXQgZGV0ZXJtaW5lcyB3aGljaCBSZW5kZXJMYXllcnMKIC8vIGJlY29t
ZSBjb21wb3NpdGluZywgYW5kIGNyZWF0ZXMgYW5kIG1haW50YWlucyBhIGhpZXJhcmNoeSBvZgpA
QCAtMjM3LDYgKzI2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICB2b2lkIHNldFNob3VsZFJlZXZhbHVhdGVDb21w
b3NpdGluZ0FmdGVyTGF5b3V0KCkgeyBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0
ID0gdHJ1ZTsgfQogCisgICAgQ29tcG9zaXRpbmdSZWFzb24gcmVhc29uRm9yQ29tcG9zaXRpbmco
Y29uc3QgUmVuZGVyTGF5ZXIqKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFwTWFwOwog
CkBAIC0zMzksNyArMzcwLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgIUxPR19ESVNBQkxF
RAotICAgIGNvbnN0IGNoYXIqIHJlYXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWVy
Kik7CisgICAgY29uc3QgY2hhciogbG9nUmVhc29uRm9yQ29tcG9zaXRpbmcoY29uc3QgUmVuZGVy
TGF5ZXIqKTsKICAgICB2b2lkIGxvZ0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXllciosIGludCBk
ZXB0aCk7CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189769</attachid>
            <date>2013-02-22 07:12:21 -0800</date>
            <delta_ts>2013-02-22 09:05:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110505-20130222070841.patch</filename>
            <type>text/plain</type>
            <size>12946</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk3Y2FmYmFjNjVhYmVl
ZDUyNDY5ODJkOTIxNmQ1YjJlZjU4NWM0Yy4uMTU1NDlhODJlNDRkNjk5NGJlNjVlYzRkZmJjMDY1
MzFlZjIwOWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGEgbGlzdCBv
ZiBhbGwgcmVhc29ucyB0aGF0IHF1YWxpZnkgYSBSZW5kZXJMYXllciB0byBiZSBjb21wb3NpdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA1MDUK
KworICAgICAgICBFeHBvc2UgdGhlIHZhcmlvdXMgcmVhc29ucyB0aGF0IGNhbiBxdWFsaWZ5IGEg
UmVuZGVyTGF5ZXIgdG8gYmUgY29tcG9zaXRlZAorICAgICAgICB2aWEgYSBuZXcgYml0bWFzayBy
ZXR1cm5lZCBieSB0aGUgcmVhc29uRm9yQ29tcG9zaXRpbmcoKSBtZXRob2Qgb24KKyAgICAgICAg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLiBUaGlzIG1ldGhvZCBhbHJlYWR5IGV4aXN0ZWQgYW5kIHdh
cyB1c2VkIGZvciBsb2dnaW5nCisgICAgICAgIHB1cnBvc2VzLCBidXQgdGhlIHByZXZpb3VzIGZ1
bmN0aW9uYWxpdHkgaXMgbm93IGFjY2Vzc2VkIHZpYSB0aGUKKyAgICAgICAgbG9nUmVhc29uRm9y
Q29tcG9zaXRpbmcoKSBtZXRob2QuCisKKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRoZSB0aGUg
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uCisgICAg
ICAgIHRvIHRoZSBmcm9udC1lbmQgb24gYSBwZXItbGF5ZXIgYmFzaXMgYXMgcmVxdWVzdGVkIGJ5
IHRoZSBmcm9udC1lbmQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmxvZ0xheWVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlYXNvbnNGb3JDb21wb3NpdGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nUmVhc29uc0ZvckNvbXBvc2l0aW5nKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChS
ZW5kZXJMYXllckNvbXBvc2l0b3IpOgorCiAyMDEzLTAyLTIyICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCiAgICAgICAgIEFsbG93IGNoaWxkLWZyYW1l
IGNvbnRlbnQgaW4gaGl0LXRlc3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBmMzI1YWM4NWVjMDg2NTM0MGQ3YWQyMmU5
OGQxNDZjNDcxOTAxMjdhLi4wYTJhZmE2ZGU0Y2NhNDFlNjE3MWI5MjgzNWFkMWQyM2Y1OWEwYzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcApAQCAtNTc4LDcgKzU3OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
b2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBpbnQgZGVwdGgpCiAKICAgICBM
T0coQ29tcG9zaXRpbmcsICIlKnAgJWR4JWQgJS4yZktCICglcykgJXNcbiIsIDEyICsgZGVwdGgg
KiAyLCBsYXllciwgYmFja2luZy0+Y29tcG9zaXRlZEJvdW5kcygpLndpZHRoKCksIGJhY2tpbmct
PmNvbXBvc2l0ZWRCb3VuZHMoKS5oZWlnaHQoKSwKICAgICAgICAgYmFja2luZy0+YmFja2luZ1N0
b3JlTWVtb3J5RXN0aW1hdGUoKSAvIDEwMjQsCi0gICAgICAgIHJlYXNvbkZvckNvbXBvc2l0aW5n
KGxheWVyKSwgbGF5ZXItPm5hbWUoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbG9nUmVhc29u
c0ZvckNvbXBvc2l0aW5nKGxheWVyKSwgbGF5ZXItPm5hbWUoKS51dGY4KCkuZGF0YSgpKTsKIH0K
ICNlbmRpZgogCkBAIC0xNzEzLDkgKzE3MTMsMTMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlcXVpcmVzT3duQmFja2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY28K
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi1jb25zdCBjaGFyKiBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxh
eWVyKiBsYXllcikKK0NvbXBvc2l0aW5nUmVhc29ucyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
YXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0CiB7Cisg
ICAgQ29tcG9zaXRpbmdSZWFzb25zIHJlYXNvbnMgPSBDb21wb3NpdGluZ1JlYXNvbk5vbmU7CisK
KyAgICBpZiAoIWxheWVyIHx8ICFsYXllci0+aXNDb21wb3NpdGVkKCkpCisgICAgICAgIHJldHVy
biByZWFzb25zOworCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGxheWVyLT5yZW5kZXJl
cigpOwogICAgIGlmIChsYXllci0+aXNSZWZsZWN0aW9uKCkpIHsKICAgICAgICAgcmVuZGVyZXIg
PSByZW5kZXJlci0+cGFyZW50KCk7CkBAIC0xNzIzLDc3ICsxNzI3LDE1MiBAQCBjb25zdCBjaGFy
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRl
ckxheWVyKiBsYXllcgogICAgIH0KIAogICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVHJh
bnNmb3JtKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICIzRCB0cmFuc2Zvcm0iOworICAgICAg
ICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uM0RUcmFuc2Zvcm07CiAKICAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJ2aWRl
byI7CisgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25WaWRlbzsKIAogICAgIGlm
IChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJu
ICJjYW52YXMiOworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uQ2FudmFzOwog
CiAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4ocmVuZGVyZXIpKQotICAgICAg
ICByZXR1cm4gInBsdWdpbiI7CisgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25Q
bHVnaW47CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKHJlbmRlcmVyKSkK
LSAgICAgICAgcmV0dXJuICJpZnJhbWUiOworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5n
UmVhc29uSUZyYW1lOwogICAgIAogICAgIGlmICgoY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkgJiYg
cmVuZGVyZXItPnN0eWxlKCktPmJhY2tmYWNlVmlzaWJpbGl0eSgpID09IEJhY2tmYWNlVmlzaWJp
bGl0eUhpZGRlbikpCi0gICAgICAgIHJldHVybiAiYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVu
IjsKKyAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkJhY2tmYWNlVmlzaWJpbGl0
eUhpZGRlbjsKIAogICAgIGlmIChjbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMobGF5ZXIpKQot
ICAgICAgICByZXR1cm4gImNsaXBzIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIjsKKyAgICAgICAg
cmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50czsK
IAogICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKHJlbmRlcmVyKSkKLSAg
ICAgICAgcmV0dXJuICJhbmltYXRpb24iOworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5n
UmVhc29uQW5pbWF0aW9uOwogCiAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGaWx0ZXJz
KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJmaWx0ZXJzIjsKKyAgICAgICAgcmVhc29ucyB8
PSBDb21wb3NpdGluZ1JlYXNvbkZpbHRlcnM7CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclBvc2l0aW9uKHJlbmRlcmVyLCBsYXllcikpCi0gICAgICAgIHJldHVybiByZW5kZXJlci0+
c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uID8gInBvc2l0aW9uOiBmaXhlZCIg
OiAicG9zaXRpb246IHN0aWNreSI7CisgICAgICAgIHJlYXNvbnMgfD0gcmVuZGVyZXItPnN0eWxl
KCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiA/IENvbXBvc2l0aW5nUmVhc29uUG9zaXRp
b25GaXhlZCA6IENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25TdGlja3k7CiAKICAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKGxheWVyKSkKLSAgICAgICAgcmV0
dXJuICItd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2giOworICAgICAgICByZWFzb25z
IHw9IENvbXBvc2l0aW5nUmVhc29uT3ZlcmZsb3dTY3JvbGxpbmdUb3VjaDsKIAogICAgIGlmIChs
YXllci0+aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpID09IFJlbmRlckxheWVyOjpJbmRpcmVj
dENvbXBvc2l0aW5nRm9yU3RhY2tpbmcpCi0gICAgICAgIHJldHVybiAic3RhY2tpbmciOwotCi0g
ICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6
OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JPdmVybGFwKQotICAgICAgICByZXR1cm4gIm92ZXJsYXAi
OwotCi0gICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVy
TGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JCYWNrZ3JvdW5kTGF5ZXIpCi0gICAgICAgIHJl
dHVybiAibmVnYXRpdmUgei1pbmRleCBjaGlsZHJlbiI7Ci0KLSAgICBpZiAobGF5ZXItPmluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGlu
Z0ZvckdyYXBoaWNhbEVmZmVjdCkgeworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVh
c29uU3RhY2tpbmc7CisgICAgZWxzZSBpZiAobGF5ZXItPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0Zvck92ZXJsYXApCisgICAg
ICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25PdmVybGFwOworICAgIGVsc2UgaWYgKGxh
eWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdGb3JCYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9z
aXRpbmdSZWFzb25OZWdhdGl2ZVpJbmRleENoaWxkcmVuOworICAgIGVsc2UgaWYgKGxheWVyLT5p
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9z
aXRpbmdGb3JHcmFwaGljYWxFZmZlY3QpIHsKICAgICAgICAgaWYgKGxheWVyLT50cmFuc2Zvcm0o
KSkKLSAgICAgICAgICAgIHJldHVybiAidHJhbnNmb3JtIHdpdGggY29tcG9zaXRlZCBkZXNjZW5k
YW50cyI7CisgICAgICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uVHJhbnNmb3Jt
V2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAogICAgICAgICBpZiAocmVuZGVyZXItPmlzVHJh
bnNwYXJlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiAib3BhY2l0eSB3aXRoIGNvbXBvc2l0ZWQg
ZGVzY2VuZGFudHMiOworICAgICAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbk9w
YWNpdHlXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwogCiAgICAgICAgIGlmIChyZW5kZXJlci0+
aGFzTWFzaygpKQotICAgICAgICAgICAgcmV0dXJuICJtYXNrIHdpdGggY29tcG9zaXRlZCBkZXNj
ZW5kYW50cyI7CisgICAgICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uTWFza1dp
dGhDb21wb3NpdGVkRGVzY2VuZGFudHM7CiAKICAgICAgICAgaWYgKHJlbmRlcmVyLT5oYXNSZWZs
ZWN0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gInJlZmxlY3Rpb24gd2l0aCBjb21wb3NpdGVk
IGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25S
ZWZsZWN0aW9uV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAogICAgICAgICBpZiAocmVuZGVy
ZXItPmhhc0ZpbHRlcigpKQotICAgICAgICAgICAgcmV0dXJuICJmaWx0ZXIgd2l0aCBjb21wb3Np
dGVkIGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFz
b25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwogICAgICAgICAgICAgCiAgICAgICAg
IGlmIChyZW5kZXJlci0+aGFzQmxlbmRNb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4gImJsZW5k
aW5nIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7Ci0gICAgfQorICAgICAgICAgICAgcmVh
c29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkJsZW5kaW5nV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50
czsKKyAgICB9IGVsc2UgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0g
UmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JQZXJzcGVjdGl2ZSkKKyAgICAgICAg
cmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvblBlcnNwZWN0aXZlOworICAgIGVsc2UgaWYgKGxh
eWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdGb3JQcmVzZXJ2ZTNEKQorICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5n
UmVhc29uUHJlc2VydmUzRDsKKworICAgIGlmIChpbkNvbXBvc2l0aW5nTW9kZSgpICYmIGxheWVy
LT5pc1Jvb3RMYXllcigpKQorICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uUm9v
dDsKKworICAgIHJldHVybiByZWFzb25zOworfQorCisjaWYgIUxPR19ESVNBQkxFRAorY29uc3Qg
Y2hhciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dSZWFzb25zRm9yQ29tcG9zaXRpbmcoY29u
c3QgUmVuZGVyTGF5ZXIqIGxheWVyKQoreworICAgIENvbXBvc2l0aW5nUmVhc29ucyByZWFzb25z
ID0gcmVhc29uc0ZvckNvbXBvc2l0aW5nKGxheWVyKTsKKworICAgIGlmICghcmVhc29ucykKKyAg
ICAgICAgcmV0dXJuICIiOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvbjNE
VHJhbnNmb3JtKQorICAgICAgICByZXR1cm4gIjNEIHRyYW5zZm9ybSI7CisKKyAgICBpZiAocmVh
c29ucyAmIENvbXBvc2l0aW5nUmVhc29uVmlkZW8pCisgICAgICAgIHJldHVybiAidmlkZW8iOwog
Ci0gICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5
ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JQZXJzcGVjdGl2ZSkKKyAgICBpZiAocmVhc29ucyAm
IENvbXBvc2l0aW5nUmVhc29uQ2FudmFzKQorICAgICAgICByZXR1cm4gImNhbnZhcyI7CisKKyAg
ICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uUGx1Z2luKQorICAgICAgICByZXR1cm4g
InBsdWdpbiI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uSUZyYW1lKQor
ICAgICAgICByZXR1cm4gImlmcmFtZSI7CisgICAgCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3Np
dGluZ1JlYXNvbkJhY2tmYWNlVmlzaWJpbGl0eUhpZGRlbikKKyAgICAgICAgcmV0dXJuICJiYWNr
ZmFjZS12aXNpYmlsaXR5OiBoaWRkZW4iOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGlu
Z1JlYXNvbkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJjbGlw
cyBjb21wb3NpdGluZyBkZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0
aW5nUmVhc29uQW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gImFuaW1hdGlvbiI7CisKKyAgICBp
ZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uRmlsdGVycykKKyAgICAgICAgcmV0dXJuICJm
aWx0ZXJzIjsKKworICAgIGlmIChyZWFzb25zICYgQ29tcG9zaXRpbmdSZWFzb25Qb3NpdGlvbkZp
eGVkKQorICAgICAgICByZXR1cm4gInBvc2l0aW9uOiBmaXhlZCI7CisKKyAgICBpZiAocmVhc29u
cyAmIENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25TdGlja3kpCisgICAgICAgIHJldHVybiAicG9z
aXRpb246IHN0aWNreSI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uT3Zl
cmZsb3dTY3JvbGxpbmdUb3VjaCkKKyAgICAgICAgcmV0dXJuICItd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZzogdG91Y2giOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblN0
YWNraW5nKQorICAgICAgICByZXR1cm4gInN0YWNraW5nIjsKKworICAgIGlmIChyZWFzb25zICYg
Q29tcG9zaXRpbmdSZWFzb25PdmVybGFwKQorICAgICAgICByZXR1cm4gIm92ZXJsYXAiOworCisg
ICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvbk5lZ2F0aXZlWkluZGV4Q2hpbGRyZW4p
CisgICAgICAgIHJldHVybiAibmVnYXRpdmUgei1pbmRleCBjaGlsZHJlbiI7CisKKyAgICBpZiAo
cmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uVHJhbnNmb3JtV2l0aENvbXBvc2l0ZWREZXNjZW5k
YW50cykKKyAgICAgICAgcmV0dXJuICJ0cmFuc2Zvcm0gd2l0aCBjb21wb3NpdGVkIGRlc2NlbmRh
bnRzIjsKKworICAgIGlmIChyZWFzb25zICYgQ29tcG9zaXRpbmdSZWFzb25PcGFjaXR5V2l0aENv
bXBvc2l0ZWREZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJvcGFjaXR5IHdpdGggY29tcG9z
aXRlZCBkZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29u
TWFza1dpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMpCisgICAgICAgIHJldHVybiAibWFzayB3aXRo
IGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMiOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGlu
Z1JlYXNvblJlZmxlY3Rpb25XaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzKQorICAgICAgICByZXR1
cm4gInJlZmxlY3Rpb24gd2l0aCBjb21wb3NpdGVkIGRlc2NlbmRhbnRzIjsKKworICAgIGlmIChy
ZWFzb25zICYgQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRz
KQorICAgICAgICByZXR1cm4gImZpbHRlciB3aXRoIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMiOwor
ICAgICAgICAgICAgCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvbkJsZW5kaW5n
V2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJibGVuZGluZyB3aXRo
IGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMiOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGlu
Z1JlYXNvblBlcnNwZWN0aXZlKQogICAgICAgICByZXR1cm4gInBlcnNwZWN0aXZlIjsKIAotICAg
IGlmIChsYXllci0+aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpID09IFJlbmRlckxheWVyOjpJ
bmRpcmVjdENvbXBvc2l0aW5nRm9yUHJlc2VydmUzRCkKKyAgICBpZiAocmVhc29ucyAmIENvbXBv
c2l0aW5nUmVhc29uUHJlc2VydmUzRCkKICAgICAgICAgcmV0dXJuICJwcmVzZXJ2ZS0zZCI7CiAK
LSAgICBpZiAoaW5Db21wb3NpdGluZ01vZGUoKSAmJiBsYXllci0+aXNSb290TGF5ZXIoKSkKKyAg
ICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uUm9vdCkKICAgICAgICAgcmV0dXJuICJy
b290IjsKLQotICAgIHJldHVybiAiIjsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggYzZmNGNhODZjY2JkOGIz
M2JkNDdjMzgyNTNlNDNmNTM5OWJkNmIxMi4uMjkzYWI5ODg1M2YzNTFhYTY3ZTU3ZTViM2Y3NDhh
MDgyMTg4OThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaApAQCAtNTUsNiArNTUsMzUgQEAgZW51bSBDb21wb3NpdGluZ1VwZGF0ZVR5
cGUgewogICAgIENvbXBvc2l0aW5nVXBkYXRlT25Db21wb3NpdGVkU2Nyb2xsCiB9OwogCitlbnVt
IHsKKyAgICBDb21wb3NpdGluZ1JlYXNvbk5vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMCwKKyAgICBDb21wb3NpdGluZ1JlYXNvbjNEVHJhbnNmb3JtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIENvbXBvc2l0aW5nUmVhc29uVmlkZW8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEsCisgICAgQ29tcG9zaXRpbmdS
ZWFzb25DYW52YXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMiwKKyAg
ICBDb21wb3NpdGluZ1JlYXNvblBsdWdpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMSA8PCAzLAorICAgIENvbXBvc2l0aW5nUmVhc29uSUZyYW1lICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxIDw8IDQsCisgICAgQ29tcG9zaXRpbmdSZWFzb25CYWNrZmFjZVZp
c2liaWxpdHlIaWRkZW4gICAgICAgICAgICAgICA9IDEgPDwgNSwKKyAgICBDb21wb3NpdGluZ1Jl
YXNvbkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cyAgICAgICAgICAgID0gMSA8PCA2LAorICAg
IENvbXBvc2l0aW5nUmVhc29uQW5pbWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxIDw8IDcsCisgICAgQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEgPDwgOCwKKyAgICBDb21wb3NpdGluZ1JlYXNvblBvc2l0aW9uRml4
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA5LAorICAgIENvbXBvc2l0aW5nUmVh
c29uUG9zaXRpb25TdGlja3kgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEwLAorICAg
IENvbXBvc2l0aW5nUmVhc29uT3ZlcmZsb3dTY3JvbGxpbmdUb3VjaCAgICAgICAgICAgICAgICAg
PSAxIDw8IDExLAorICAgIENvbXBvc2l0aW5nUmVhc29uU3RhY2tpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxIDw8IDEyLAorICAgIENvbXBvc2l0aW5nUmVhc29uT3ZlcmxhcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEzLAorICAgIENvbXBvc2l0aW5n
UmVhc29uTmVnYXRpdmVaSW5kZXhDaGlsZHJlbiAgICAgICAgICAgICAgICAgPSAxIDw8IDE0LAor
ICAgIENvbXBvc2l0aW5nUmVhc29uVHJhbnNmb3JtV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cyAg
ICAgPSAxIDw8IDE1LAorICAgIENvbXBvc2l0aW5nUmVhc29uT3BhY2l0eVdpdGhDb21wb3NpdGVk
RGVzY2VuZGFudHMgICAgICAgPSAxIDw8IDE2LAorICAgIENvbXBvc2l0aW5nUmVhc29uTWFza1dp
dGhDb21wb3NpdGVkRGVzY2VuZGFudHMgICAgICAgICAgPSAxIDw8IDE3LAorICAgIENvbXBvc2l0
aW5nUmVhc29uUmVmbGVjdGlvbldpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMgICAgPSAxIDw8IDE4
LAorICAgIENvbXBvc2l0aW5nUmVhc29uRmlsdGVyV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cyAg
ICAgICAgPSAxIDw8IDE5LAorICAgIENvbXBvc2l0aW5nUmVhc29uQmxlbmRpbmdXaXRoQ29tcG9z
aXRlZERlc2NlbmRhbnRzICAgICAgPSAxIDw8IDIwLAorICAgIENvbXBvc2l0aW5nUmVhc29uUGVy
c3BlY3RpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDIxLAorICAgIENvbXBv
c2l0aW5nUmVhc29uUHJlc2VydmUzRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8
IDIyLAorICAgIENvbXBvc2l0aW5nUmVhc29uUm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxIDw8IDIzCit9OwordHlwZWRlZiB1bnNpZ25lZCBDb21wb3NpdGluZ1JlYXNv
bnM7CisKIC8vIFJlbmRlckxheWVyQ29tcG9zaXRvciBtYW5hZ2VzIHRoZSBoaWVyYXJjaHkgb2YK
IC8vIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXJzLiBJdCBkZXRlcm1pbmVzIHdoaWNoIFJlbmRlckxh
eWVycwogLy8gYmVjb21lIGNvbXBvc2l0aW5nLCBhbmQgY3JlYXRlcyBhbmQgbWFpbnRhaW5zIGEg
aGllcmFyY2h5IG9mCkBAIC0yMzcsNiArMjY2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hv
dWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKSB7IG1fcmVldmFsdWF0ZUNvbXBv
c2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CiAKICAgICBib29sIHZpZXdIYXNUcmFuc3BhcmVu
dEJhY2tncm91bmQoQ29sb3IqIGJhY2tncm91bmRDb2xvciA9IDApIGNvbnN0OworCisgICAgQ29t
cG9zaXRpbmdSZWFzb25zIHJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciop
IGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFwTWFwOwpAQCAtMzQxLDcg
KzM3Miw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICBjb25z
dCBjaGFyKiByZWFzb25Gb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciopOworICAgIGNv
bnN0IGNoYXIqIGxvZ1JlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciopOwog
ICAgIHZvaWQgbG9nTGF5ZXJJbmZvKGNvbnN0IFJlbmRlckxheWVyKiwgaW50IGRlcHRoKTsKICNl
bmRpZgogCg==
</data>
<flag name="commit-queue"
          id="210296"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189781</attachid>
            <date>2013-02-22 09:16:19 -0800</date>
            <delta_ts>2013-02-22 13:47:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110505-20130222091237.patch</filename>
            <type>text/plain</type>
            <size>12892</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk3Y2FmYmFjNjVhYmVl
ZDUyNDY5ODJkOTIxNmQ1YjJlZjU4NWM0Yy4uMTU1NDlhODJlNDRkNjk5NGJlNjVlYzRkZmJjMDY1
MzFlZjIwOWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGEgbGlzdCBv
ZiBhbGwgcmVhc29ucyB0aGF0IHF1YWxpZnkgYSBSZW5kZXJMYXllciB0byBiZSBjb21wb3NpdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA1MDUK
KworICAgICAgICBFeHBvc2UgdGhlIHZhcmlvdXMgcmVhc29ucyB0aGF0IGNhbiBxdWFsaWZ5IGEg
UmVuZGVyTGF5ZXIgdG8gYmUgY29tcG9zaXRlZAorICAgICAgICB2aWEgYSBuZXcgYml0bWFzayBy
ZXR1cm5lZCBieSB0aGUgcmVhc29uRm9yQ29tcG9zaXRpbmcoKSBtZXRob2Qgb24KKyAgICAgICAg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLiBUaGlzIG1ldGhvZCBhbHJlYWR5IGV4aXN0ZWQgYW5kIHdh
cyB1c2VkIGZvciBsb2dnaW5nCisgICAgICAgIHB1cnBvc2VzLCBidXQgdGhlIHByZXZpb3VzIGZ1
bmN0aW9uYWxpdHkgaXMgbm93IGFjY2Vzc2VkIHZpYSB0aGUKKyAgICAgICAgbG9nUmVhc29uRm9y
Q29tcG9zaXRpbmcoKSBtZXRob2QuCisKKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRoZSB0aGUg
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uCisgICAg
ICAgIHRvIHRoZSBmcm9udC1lbmQgb24gYSBwZXItbGF5ZXIgYmFzaXMgYXMgcmVxdWVzdGVkIGJ5
IHRoZSBmcm9udC1lbmQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmxvZ0xheWVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlYXNvbnNGb3JDb21wb3NpdGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nUmVhc29uc0ZvckNvbXBvc2l0aW5nKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChS
ZW5kZXJMYXllckNvbXBvc2l0b3IpOgorCiAyMDEzLTAyLTIyICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCiAgICAgICAgIEFsbG93IGNoaWxkLWZyYW1l
IGNvbnRlbnQgaW4gaGl0LXRlc3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBmMzI1YWM4NWVjMDg2NTM0MGQ3YWQyMmU5
OGQxNDZjNDcxOTAxMjdhLi5hMTAzN2MxMmMxZjJhMmU0Yzg1MjIzZjNhNWIwNGY3ZjJmNzU0MDQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcApAQCAtNTc4LDcgKzU3OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
b2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBpbnQgZGVwdGgpCiAKICAgICBM
T0coQ29tcG9zaXRpbmcsICIlKnAgJWR4JWQgJS4yZktCICglcykgJXNcbiIsIDEyICsgZGVwdGgg
KiAyLCBsYXllciwgYmFja2luZy0+Y29tcG9zaXRlZEJvdW5kcygpLndpZHRoKCksIGJhY2tpbmct
PmNvbXBvc2l0ZWRCb3VuZHMoKS5oZWlnaHQoKSwKICAgICAgICAgYmFja2luZy0+YmFja2luZ1N0
b3JlTWVtb3J5RXN0aW1hdGUoKSAvIDEwMjQsCi0gICAgICAgIHJlYXNvbkZvckNvbXBvc2l0aW5n
KGxheWVyKSwgbGF5ZXItPm5hbWUoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbG9nUmVhc29u
c0ZvckNvbXBvc2l0aW5nKGxheWVyKSwgbGF5ZXItPm5hbWUoKS51dGY4KCkuZGF0YSgpKTsKIH0K
ICNlbmRpZgogCkBAIC0xNzEzLDkgKzE3MTMsMTMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlcXVpcmVzT3duQmFja2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY28K
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECi1jb25zdCBjaGFyKiBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxh
eWVyKiBsYXllcikKK0NvbXBvc2l0aW5nUmVhc29ucyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
YXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0CiB7Cisg
ICAgQ29tcG9zaXRpbmdSZWFzb25zIHJlYXNvbnMgPSBDb21wb3NpdGluZ1JlYXNvbk5vbmU7CisK
KyAgICBpZiAoIWxheWVyIHx8ICFsYXllci0+aXNDb21wb3NpdGVkKCkpCisgICAgICAgIHJldHVy
biByZWFzb25zOworCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGxheWVyLT5yZW5kZXJl
cigpOwogICAgIGlmIChsYXllci0+aXNSZWZsZWN0aW9uKCkpIHsKICAgICAgICAgcmVuZGVyZXIg
PSByZW5kZXJlci0+cGFyZW50KCk7CkBAIC0xNzIzLDc0ICsxNzI3LDE0OCBAQCBjb25zdCBjaGFy
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbkZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRl
ckxheWVyKiBsYXllcgogICAgIH0KIAogICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVHJh
bnNmb3JtKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICIzRCB0cmFuc2Zvcm0iOworICAgICAg
ICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uM0RUcmFuc2Zvcm07CiAKICAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJ2aWRl
byI7CisgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25WaWRlbzsKIAogICAgIGlm
IChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJu
ICJjYW52YXMiOworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uQ2FudmFzOwog
CiAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4ocmVuZGVyZXIpKQotICAgICAg
ICByZXR1cm4gInBsdWdpbiI7CisgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25Q
bHVnaW47CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKHJlbmRlcmVyKSkK
LSAgICAgICAgcmV0dXJuICJpZnJhbWUiOworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5n
UmVhc29uSUZyYW1lOwogICAgIAogICAgIGlmICgoY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkgJiYg
cmVuZGVyZXItPnN0eWxlKCktPmJhY2tmYWNlVmlzaWJpbGl0eSgpID09IEJhY2tmYWNlVmlzaWJp
bGl0eUhpZGRlbikpCi0gICAgICAgIHJldHVybiAiYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVu
IjsKKyAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkJhY2tmYWNlVmlzaWJpbGl0
eUhpZGRlbjsKIAogICAgIGlmIChjbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMobGF5ZXIpKQot
ICAgICAgICByZXR1cm4gImNsaXBzIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIjsKKyAgICAgICAg
cmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50czsK
IAogICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKHJlbmRlcmVyKSkKLSAg
ICAgICAgcmV0dXJuICJhbmltYXRpb24iOworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5n
UmVhc29uQW5pbWF0aW9uOwogCiAgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGaWx0ZXJz
KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuICJmaWx0ZXJzIjsKKyAgICAgICAgcmVhc29ucyB8
PSBDb21wb3NpdGluZ1JlYXNvbkZpbHRlcnM7CiAKICAgICBpZiAocmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclBvc2l0aW9uKHJlbmRlcmVyLCBsYXllcikpCi0gICAgICAgIHJldHVybiByZW5kZXJlci0+
c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uID8gInBvc2l0aW9uOiBmaXhlZCIg
OiAicG9zaXRpb246IHN0aWNreSI7CisgICAgICAgIHJlYXNvbnMgfD0gcmVuZGVyZXItPnN0eWxl
KCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiA/IENvbXBvc2l0aW5nUmVhc29uUG9zaXRp
b25GaXhlZCA6IENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25TdGlja3k7CiAKICAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKGxheWVyKSkKLSAgICAgICAgcmV0
dXJuICItd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2giOworICAgICAgICByZWFzb25z
IHw9IENvbXBvc2l0aW5nUmVhc29uT3ZlcmZsb3dTY3JvbGxpbmdUb3VjaDsKIAogICAgIGlmIChs
YXllci0+aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpID09IFJlbmRlckxheWVyOjpJbmRpcmVj
dENvbXBvc2l0aW5nRm9yU3RhY2tpbmcpCi0gICAgICAgIHJldHVybiAic3RhY2tpbmciOwotCi0g
ICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6
OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JPdmVybGFwKQotICAgICAgICByZXR1cm4gIm92ZXJsYXAi
OwotCi0gICAgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVy
TGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JCYWNrZ3JvdW5kTGF5ZXIpCi0gICAgICAgIHJl
dHVybiAibmVnYXRpdmUgei1pbmRleCBjaGlsZHJlbiI7Ci0KLSAgICBpZiAobGF5ZXItPmluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGlu
Z0ZvckdyYXBoaWNhbEVmZmVjdCkgeworICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVh
c29uU3RhY2tpbmc7CisgICAgZWxzZSBpZiAobGF5ZXItPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24oKSA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0Zvck92ZXJsYXApCisgICAg
ICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25PdmVybGFwOworICAgIGVsc2UgaWYgKGxh
eWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdGb3JCYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9z
aXRpbmdSZWFzb25OZWdhdGl2ZVpJbmRleENoaWxkcmVuOworICAgIGVsc2UgaWYgKGxheWVyLT5p
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9z
aXRpbmdGb3JHcmFwaGljYWxFZmZlY3QpIHsKICAgICAgICAgaWYgKGxheWVyLT50cmFuc2Zvcm0o
KSkKLSAgICAgICAgICAgIHJldHVybiAidHJhbnNmb3JtIHdpdGggY29tcG9zaXRlZCBkZXNjZW5k
YW50cyI7CisgICAgICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uVHJhbnNmb3Jt
V2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAogICAgICAgICBpZiAocmVuZGVyZXItPmlzVHJh
bnNwYXJlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiAib3BhY2l0eSB3aXRoIGNvbXBvc2l0ZWQg
ZGVzY2VuZGFudHMiOworICAgICAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbk9w
YWNpdHlXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwogCiAgICAgICAgIGlmIChyZW5kZXJlci0+
aGFzTWFzaygpKQotICAgICAgICAgICAgcmV0dXJuICJtYXNrIHdpdGggY29tcG9zaXRlZCBkZXNj
ZW5kYW50cyI7CisgICAgICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uTWFza1dp
dGhDb21wb3NpdGVkRGVzY2VuZGFudHM7CiAKICAgICAgICAgaWYgKHJlbmRlcmVyLT5oYXNSZWZs
ZWN0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gInJlZmxlY3Rpb24gd2l0aCBjb21wb3NpdGVk
IGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25S
ZWZsZWN0aW9uV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAogICAgICAgICBpZiAocmVuZGVy
ZXItPmhhc0ZpbHRlcigpKQotICAgICAgICAgICAgcmV0dXJuICJmaWx0ZXIgd2l0aCBjb21wb3Np
dGVkIGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFz
b25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwogICAgICAgICAgICAgCiAgICAgICAg
IGlmIChyZW5kZXJlci0+aGFzQmxlbmRNb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4gImJsZW5k
aW5nIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50cyI7Ci0gICAgfQorICAgICAgICAgICAgcmVh
c29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkJsZW5kaW5nV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50
czsKKyAgICB9IGVsc2UgaWYgKGxheWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0g
UmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdGb3JQZXJzcGVjdGl2ZSkKKyAgICAgICAg
cmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvblBlcnNwZWN0aXZlOworICAgIGVsc2UgaWYgKGxh
eWVyLT5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdGb3JQcmVzZXJ2ZTNEKQorICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5n
UmVhc29uUHJlc2VydmUzRDsKKworICAgIGlmIChpbkNvbXBvc2l0aW5nTW9kZSgpICYmIGxheWVy
LT5pc1Jvb3RMYXllcigpKQorICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uUm9v
dDsKKworICAgIHJldHVybiByZWFzb25zOworfQorCisjaWYgIUxPR19ESVNBQkxFRAorY29uc3Qg
Y2hhciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsb2dSZWFzb25zRm9yQ29tcG9zaXRpbmcoY29u
c3QgUmVuZGVyTGF5ZXIqIGxheWVyKQoreworICAgIENvbXBvc2l0aW5nUmVhc29ucyByZWFzb25z
ID0gcmVhc29uc0ZvckNvbXBvc2l0aW5nKGxheWVyKTsKKworICAgIGlmIChyZWFzb25zICYgQ29t
cG9zaXRpbmdSZWFzb24zRFRyYW5zZm9ybSkKKyAgICAgICAgcmV0dXJuICIzRCB0cmFuc2Zvcm0i
OworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblZpZGVvKQorICAgICAgICBy
ZXR1cm4gInZpZGVvIjsKIAotICAgIGlmIChsYXllci0+aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
bigpID09IFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nRm9yUGVyc3BlY3RpdmUpCisg
ICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvbkNhbnZhcykKKyAgICAgICAgcmV0dXJu
ICJjYW52YXMiOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblBsdWdpbikK
KyAgICAgICAgcmV0dXJuICJwbHVnaW4iOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGlu
Z1JlYXNvbklGcmFtZSkKKyAgICAgICAgcmV0dXJuICJpZnJhbWUiOworICAgIAorICAgIGlmIChy
ZWFzb25zICYgQ29tcG9zaXRpbmdSZWFzb25CYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4pCisgICAg
ICAgIHJldHVybiAiYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuIjsKKworICAgIGlmIChyZWFz
b25zICYgQ29tcG9zaXRpbmdSZWFzb25DbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMpCisgICAg
ICAgIHJldHVybiAiY2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiOworCisgICAgaWYgKHJl
YXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvbkFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuICJhbmlt
YXRpb24iOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvbkZpbHRlcnMpCisg
ICAgICAgIHJldHVybiAiZmlsdGVycyI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5n
UmVhc29uUG9zaXRpb25GaXhlZCkKKyAgICAgICAgcmV0dXJuICJwb3NpdGlvbjogZml4ZWQiOwor
CisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblBvc2l0aW9uU3RpY2t5KQorICAg
ICAgICByZXR1cm4gInBvc2l0aW9uOiBzdGlja3kiOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21w
b3NpdGluZ1JlYXNvbk92ZXJmbG93U2Nyb2xsaW5nVG91Y2gpCisgICAgICAgIHJldHVybiAiLXdl
YmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoIjsKKworICAgIGlmIChyZWFzb25zICYgQ29t
cG9zaXRpbmdSZWFzb25TdGFja2luZykKKyAgICAgICAgcmV0dXJuICJzdGFja2luZyI7CisKKyAg
ICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uT3ZlcmxhcCkKKyAgICAgICAgcmV0dXJu
ICJvdmVybGFwIjsKKworICAgIGlmIChyZWFzb25zICYgQ29tcG9zaXRpbmdSZWFzb25OZWdhdGl2
ZVpJbmRleENoaWxkcmVuKQorICAgICAgICByZXR1cm4gIm5lZ2F0aXZlIHotaW5kZXggY2hpbGRy
ZW4iOworCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblRyYW5zZm9ybVdpdGhD
b21wb3NpdGVkRGVzY2VuZGFudHMpCisgICAgICAgIHJldHVybiAidHJhbnNmb3JtIHdpdGggY29t
cG9zaXRlZCBkZXNjZW5kYW50cyI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVh
c29uT3BhY2l0eVdpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMpCisgICAgICAgIHJldHVybiAib3Bh
Y2l0eSB3aXRoIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMiOworCisgICAgaWYgKHJlYXNvbnMgJiBD
b21wb3NpdGluZ1JlYXNvbk1hc2tXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzKQorICAgICAgICBy
ZXR1cm4gIm1hc2sgd2l0aCBjb21wb3NpdGVkIGRlc2NlbmRhbnRzIjsKKworICAgIGlmIChyZWFz
b25zICYgQ29tcG9zaXRpbmdSZWFzb25SZWZsZWN0aW9uV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50
cykKKyAgICAgICAgcmV0dXJuICJyZWZsZWN0aW9uIHdpdGggY29tcG9zaXRlZCBkZXNjZW5kYW50
cyI7CisKKyAgICBpZiAocmVhc29ucyAmIENvbXBvc2l0aW5nUmVhc29uRmlsdGVyV2l0aENvbXBv
c2l0ZWREZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuICJmaWx0ZXIgd2l0aCBjb21wb3NpdGVk
IGRlc2NlbmRhbnRzIjsKKyAgICAgICAgICAgIAorICAgIGlmIChyZWFzb25zICYgQ29tcG9zaXRp
bmdSZWFzb25CbGVuZGluZ1dpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMpCisgICAgICAgIHJldHVy
biAiYmxlbmRpbmcgd2l0aCBjb21wb3NpdGVkIGRlc2NlbmRhbnRzIjsKKworICAgIGlmIChyZWFz
b25zICYgQ29tcG9zaXRpbmdSZWFzb25QZXJzcGVjdGl2ZSkKICAgICAgICAgcmV0dXJuICJwZXJz
cGVjdGl2ZSI7CiAKLSAgICBpZiAobGF5ZXItPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSA9
PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ0ZvclByZXNlcnZlM0QpCisgICAgaWYg
KHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblByZXNlcnZlM0QpCiAgICAgICAgIHJldHVybiAi
cHJlc2VydmUtM2QiOwogCi0gICAgaWYgKGluQ29tcG9zaXRpbmdNb2RlKCkgJiYgbGF5ZXItPmlz
Um9vdExheWVyKCkpCisgICAgaWYgKHJlYXNvbnMgJiBDb21wb3NpdGluZ1JlYXNvblJvb3QpCiAg
ICAgICAgIHJldHVybiAicm9vdCI7CiAKICAgICByZXR1cm4gIiI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggYzZmNGNhODZjY2Jk
OGIzM2JkNDdjMzgyNTNlNDNmNTM5OWJkNmIxMi4uMjkzYWI5ODg1M2YzNTFhYTY3ZTU3ZTViM2Y3
NDhhMDgyMTg4OThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaApAQCAtNTUsNiArNTUsMzUgQEAgZW51bSBDb21wb3NpdGluZ1VwZGF0
ZVR5cGUgewogICAgIENvbXBvc2l0aW5nVXBkYXRlT25Db21wb3NpdGVkU2Nyb2xsCiB9OwogCitl
bnVtIHsKKyAgICBDb21wb3NpdGluZ1JlYXNvbk5vbmUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMCwKKyAgICBDb21wb3NpdGluZ1JlYXNvbjNEVHJhbnNmb3JtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIENvbXBvc2l0aW5nUmVhc29uVmlkZW8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEsCisgICAgQ29tcG9zaXRp
bmdSZWFzb25DYW52YXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMiwK
KyAgICBDb21wb3NpdGluZ1JlYXNvblBsdWdpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMSA8PCAzLAorICAgIENvbXBvc2l0aW5nUmVhc29uSUZyYW1lICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxIDw8IDQsCisgICAgQ29tcG9zaXRpbmdSZWFzb25CYWNrZmFj
ZVZpc2liaWxpdHlIaWRkZW4gICAgICAgICAgICAgICA9IDEgPDwgNSwKKyAgICBDb21wb3NpdGlu
Z1JlYXNvbkNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cyAgICAgICAgICAgID0gMSA8PCA2LAor
ICAgIENvbXBvc2l0aW5nUmVhc29uQW5pbWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxIDw8IDcsCisgICAgQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgOCwKKyAgICBDb21wb3NpdGluZ1JlYXNvblBvc2l0aW9u
Rml4ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA5LAorICAgIENvbXBvc2l0aW5n
UmVhc29uUG9zaXRpb25TdGlja3kgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEwLAor
ICAgIENvbXBvc2l0aW5nUmVhc29uT3ZlcmZsb3dTY3JvbGxpbmdUb3VjaCAgICAgICAgICAgICAg
ICAgPSAxIDw8IDExLAorICAgIENvbXBvc2l0aW5nUmVhc29uU3RhY2tpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxIDw8IDEyLAorICAgIENvbXBvc2l0aW5nUmVhc29uT3Zlcmxh
cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEzLAorICAgIENvbXBvc2l0
aW5nUmVhc29uTmVnYXRpdmVaSW5kZXhDaGlsZHJlbiAgICAgICAgICAgICAgICAgPSAxIDw8IDE0
LAorICAgIENvbXBvc2l0aW5nUmVhc29uVHJhbnNmb3JtV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50
cyAgICAgPSAxIDw8IDE1LAorICAgIENvbXBvc2l0aW5nUmVhc29uT3BhY2l0eVdpdGhDb21wb3Np
dGVkRGVzY2VuZGFudHMgICAgICAgPSAxIDw8IDE2LAorICAgIENvbXBvc2l0aW5nUmVhc29uTWFz
a1dpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMgICAgICAgICAgPSAxIDw8IDE3LAorICAgIENvbXBv
c2l0aW5nUmVhc29uUmVmbGVjdGlvbldpdGhDb21wb3NpdGVkRGVzY2VuZGFudHMgICAgPSAxIDw8
IDE4LAorICAgIENvbXBvc2l0aW5nUmVhc29uRmlsdGVyV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50
cyAgICAgICAgPSAxIDw8IDE5LAorICAgIENvbXBvc2l0aW5nUmVhc29uQmxlbmRpbmdXaXRoQ29t
cG9zaXRlZERlc2NlbmRhbnRzICAgICAgPSAxIDw8IDIwLAorICAgIENvbXBvc2l0aW5nUmVhc29u
UGVyc3BlY3RpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDIxLAorICAgIENv
bXBvc2l0aW5nUmVhc29uUHJlc2VydmUzRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
IDw8IDIyLAorICAgIENvbXBvc2l0aW5nUmVhc29uUm9vdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDIzCit9OwordHlwZWRlZiB1bnNpZ25lZCBDb21wb3NpdGluZ1Jl
YXNvbnM7CisKIC8vIFJlbmRlckxheWVyQ29tcG9zaXRvciBtYW5hZ2VzIHRoZSBoaWVyYXJjaHkg
b2YKIC8vIGNvbXBvc2l0ZWQgUmVuZGVyTGF5ZXJzLiBJdCBkZXRlcm1pbmVzIHdoaWNoIFJlbmRl
ckxheWVycwogLy8gYmVjb21lIGNvbXBvc2l0aW5nLCBhbmQgY3JlYXRlcyBhbmQgbWFpbnRhaW5z
IGEgaGllcmFyY2h5IG9mCkBAIC0yMzcsNiArMjY2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0
U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKSB7IG1fcmVldmFsdWF0ZUNv
bXBvc2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CiAKICAgICBib29sIHZpZXdIYXNUcmFuc3Bh
cmVudEJhY2tncm91bmQoQ29sb3IqIGJhY2tncm91bmRDb2xvciA9IDApIGNvbnN0OworCisgICAg
Q29tcG9zaXRpbmdSZWFzb25zIHJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXll
ciopIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFwTWFwOwpAQCAtMzQx
LDcgKzM3Miw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmICFMT0dfRElTQUJMRUQKLSAgICBj
b25zdCBjaGFyKiByZWFzb25Gb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciopOworICAg
IGNvbnN0IGNoYXIqIGxvZ1JlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciop
OwogICAgIHZvaWQgbG9nTGF5ZXJJbmZvKGNvbnN0IFJlbmRlckxheWVyKiwgaW50IGRlcHRoKTsK
ICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>