<?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>78473</bug_id>
          
          <creation_ts>2012-02-13 01:16:10 -0800</creation_ts>
          <short_desc>ShadowRoot needs innerHTML</short_desc>
          <delta_ts>2012-02-29 13:17:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63601</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555104</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 01:16:10 -0800</bug_when>
    <thetext>Currently ShadowRoot does not have innerHTML API.
We should have this.

See spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558030</commentid>
    <comment_count>1</comment_count>
      <attachid>127343</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-16 02:53:06 -0800</bug_when>
    <thetext>Created attachment 127343
WIP

I wish to implement this. Attaching WIP for the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558038</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-16 03:05:37 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=127343) [details]
&gt; WIP
&gt; 
&gt; I wish to implement this. Attaching WIP for the same.
Great!!!

Could you consider to extract existing implementation and share it with this?
Having two similar code tend to have a trouble in future change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559054</commentid>
    <comment_count>3</comment_count>
      <attachid>127555</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-17 02:05:46 -0800</bug_when>
    <thetext>Created attachment 127555
Patch

Update patch as per Morita&apos;s suggestion to share common code between HTMLElement &amp; ShadowRoot. Moved code to markup as its relevant code and can be re-factored to reside there. Can u review once?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559067</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-17 02:27:48 -0800</bug_when>
    <thetext>You need to write tests when adding APIs. Could you write Layout tests for new APIs?

(In reply to comment #3)
&gt; Created an attachment (id=127555) [details]
&gt; Patch
&gt; 
&gt; Update patch as per Morita&apos;s suggestion to share common code between HTMLElement &amp; ShadowRoot. Moved code to markup as its relevant code and can be re-factored to reside there. Can u review once?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559130</commentid>
    <comment_count>5</comment_count>
      <attachid>127573</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-17 05:12:42 -0800</bug_when>
    <thetext>Created attachment 127573
Patch with layout tests

Added test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560626</commentid>
    <comment_count>6</comment_count>
      <attachid>127573</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-20 21:25:03 -0800</bug_when>
    <thetext>Comment on attachment 127573
Patch with layout tests

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

&gt; LayoutTests/fast/dom/shadow/shadow-root-innerHTML.html:20
&gt; +root = new WebKitShadowRoot(div);

&apos;new WebKitShadowRoot()&apos; is enabled only if SHADOW_DOM flag is enabled. Actually this flag is currently enabled in chromium-port.
So you add this test in skipped lists.
See LayoutTests/platform/&lt;port&gt;/Skipped and add test name in it. &lt;port&gt; will be &apos;efl&apos;, &apos;gtk&apos;, &apos;qt&apos;, &apos;mac&apos;, &apos;win&apos;, &apos;wincairo&apos;, and &apos;wk2&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560665</commentid>
    <comment_count>7</comment_count>
      <attachid>127573</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 22:18:35 -0800</bug_when>
    <thetext>Comment on attachment 127573
Patch with layout tests

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

&gt; Source/WebCore/dom/ShadowRoot.cpp:156
&gt; +        replaceChildrenWithFragment(host(), fragment.release(), ec);

No, this is not what we need. we need to inject fragment to this ShadowRoot, not the host.

&gt; LayoutTests/fast/dom/shadow/shadow-root-innerHTML.html:24
&gt; +shouldBeDefined(&quot;root.innerHTML&quot;);

This is not enough. We need to test
- the resulted string of innerHTML after setting innerHTML.
- the resulted DOM tree after setting innerHTML
- the innerHTML value for existing shadow DOM tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560759</commentid>
    <comment_count>8</comment_count>
      <attachid>127944</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-21 02:07:07 -0800</bug_when>
    <thetext>Created attachment 127944
Updated Patch

Updated patch with fixed test case. Added test case to Skipped for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561308</commentid>
    <comment_count>9</comment_count>
      <attachid>127944</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-21 15:55:16 -0800</bug_when>
    <thetext>Comment on attachment 127944
Updated Patch

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

&gt; Source/WebCore/dom/ShadowRoot.cpp:157
&gt; +        replaceChildrenWithFragment(toElement(this), fragment.release(), ec);

Does this really work?

&gt; LayoutTests/fast/dom/shadow/shadow-root-innerHTML.html:36
&gt; +

I&apos;m confused. Why is div2 available even after setting another innerHTML?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561671</commentid>
    <comment_count>10</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-21 23:37:09 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 127944 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127944&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRoot.cpp:157
&gt; &gt; +        replaceChildrenWithFragment(toElement(this), fragment.release(), ec);
&gt; 
&gt; Does this really work?
&gt; 
I am assuming this works as DocumentFragment is derived from ContainerNode.

&gt; &gt; LayoutTests/fast/dom/shadow/shadow-root-innerHTML.html:36
&gt; &gt; +
&gt; 
&gt; I&apos;m confused. Why is div2 available even after setting another innerHTML?

Its only to show that it resides in the dom tree of the ShadowRoot. After setting innerHTML, the children gets replaced with the fragment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561817</commentid>
    <comment_count>11</comment_count>
      <attachid>127944</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-22 03:45:28 -0800</bug_when>
    <thetext>Comment on attachment 127944
Updated Patch

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

&gt;&gt;&gt; Source/WebCore/dom/ShadowRoot.cpp:157
&gt;&gt;&gt; +        replaceChildrenWithFragment(toElement(this), fragment.release(), ec);
&gt;&gt; 
&gt;&gt; Does this really work?
&gt; 
&gt; I am assuming this works as DocumentFragment is derived from ContainerNode.

Even so this is beyond fragile. It only happens to work because currently replaceChildrenWithFragment uses ContainerNode methods only. I suggest making the parameter a ContainerNode* and do away with toElement(). Then any changes to to replaceChildrenWithFragment will break at compile time rather than runtime.

&gt; Source/WebCore/editing/markup.cpp:940
&gt; +PassRefPtr&lt;DocumentFragment&gt; createFragmentFromSource(const String&amp; markup, Element* element, ExceptionCode&amp; ec)

editing/ doesn&apos;t seem the right place to me for these methods. IMHO they&apos;d better be moved to dom/ - either into ContainerNode or, better yet, into a separate file.

&gt;&gt;&gt; LayoutTests/fast/dom/shadow/shadow-root-innerHTML.html:36
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; I&apos;m confused. Why is div2 available even after setting another innerHTML?
&gt; 
&gt; Its only to show that it resides in the dom tree of the ShadowRoot. After setting innerHTML, the children gets replaced with the fragment.

I have to say I&apos;m likewise confused - as you say, it should get replaced and no longer be in the tree. So why is it still accessible via getElementById?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562578</commentid>
    <comment_count>12</comment_count>
      <attachid>127944</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-22 16:58:28 -0800</bug_when>
    <thetext>Comment on attachment 127944
Updated Patch

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

&gt;&gt; Source/WebCore/editing/markup.cpp:940
&gt;&gt; +PassRefPtr&lt;DocumentFragment&gt; createFragmentFromSource(const String&amp; markup, Element* element, ExceptionCode&amp; ec)
&gt; 
&gt; editing/ doesn&apos;t seem the right place to me for these methods. IMHO they&apos;d better be moved to dom/ - either into ContainerNode or, better yet, into a separate file.

I think this is OK for this time if we have a bug to move this to appropriate place.

&gt;&gt;&gt;&gt; LayoutTests/fast/dom/shadow/shadow-root-innerHTML.html:36
&gt;&gt;&gt;&gt; +
&gt;&gt;&gt; 
&gt;&gt;&gt; I&apos;m confused. Why is div2 available even after setting another innerHTML?
&gt;&gt; 
&gt;&gt; Its only to show that it resides in the dom tree of the ShadowRoot. After setting innerHTML, the children gets replaced with the fragment.
&gt; 
&gt; I have to say I&apos;m likewise confused - as you say, it should get replaced and no longer be in the tree. So why is it still accessible via getElementById?

I tried this locally and it triggered an assertion failure on the debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563000</commentid>
    <comment_count>13</comment_count>
      <attachid>128447</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-23 02:54:02 -0800</bug_when>
    <thetext>Created attachment 128447
Updated Patch

updated replaceChildrenWithFragment to use ContainerNode. Added few more use cases in test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563756</commentid>
    <comment_count>14</comment_count>
      <attachid>128447</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-23 17:42:16 -0800</bug_when>
    <thetext>Comment on attachment 128447
Updated Patch

Almost looks good! 

Could you add another test case which ensures that setting a HTML fragment not only results
a innerHTML value change, but also actually creates DOM nodes?
we can test it even without (currently broken) getElementId() or something.
querySelector() or just traversing the tree by firstChild etc. will be sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563975</commentid>
    <comment_count>15</comment_count>
      <attachid>128662</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-23 23:15:01 -0800</bug_when>
    <thetext>Created attachment 128662
Updated Patch

Added test case to check actual dom tree getting created after setting innerHTML fragment to ShadowRoot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564135</commentid>
    <comment_count>16</comment_count>
      <attachid>128662</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-24 02:32:52 -0800</bug_when>
    <thetext>Comment on attachment 128662
Updated Patch

Looks good! let&apos;s land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564142</commentid>
    <comment_count>17</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-24 02:44:09 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 128662 [details])
&gt; Looks good! let&apos;s land this.

Thanks Morrita for immediate review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564193</commentid>
    <comment_count>18</comment_count>
      <attachid>128662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 04:35:45 -0800</bug_when>
    <thetext>Comment on attachment 128662
Updated Patch

Rejecting attachment 128662 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;-...&quot; exit_code: 2

Last 500 characters of output:
.html
patching file LayoutTests/platform/gtk/Skipped
patching file LayoutTests/platform/mac/Skipped
patching file LayoutTests/platform/qt/Skipped
Hunk #1 succeeded at 166 (offset 1 line).
patching file LayoutTests/platform/win/Skipped
patching file LayoutTests/platform/wincairo/Skipped
patching file LayoutTests/platform/wk2/Skipped

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Hajime Mor...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11603939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564269</commentid>
    <comment_count>19</comment_count>
      <attachid>128662</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-24 06:14:00 -0800</bug_when>
    <thetext>Comment on attachment 128662
Updated Patch

Aah..Morrita can u make c+ again? Guess commit bot failed. Retrying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565236</commentid>
    <comment_count>20</comment_count>
      <attachid>128662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-26 17:12:55 -0800</bug_when>
    <thetext>Comment on attachment 128662
Updated Patch

Rejecting attachment 128662 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;-...&quot; exit_code: 2

Last 500 characters of output:
le LayoutTests/platform/gtk/Skipped.rej
patching file LayoutTests/platform/mac/Skipped
patching file LayoutTests/platform/qt/Skipped
Hunk #1 succeeded at 167 with fuzz 1 (offset 2 lines).
patching file LayoutTests/platform/win/Skipped
patching file LayoutTests/platform/wincairo/Skipped
patching file LayoutTests/platform/wk2/Skipped

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Hajime Mor...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11627819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565288</commentid>
    <comment_count>21</comment_count>
      <attachid>128662</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-26 20:45:27 -0800</bug_when>
    <thetext>Comment on attachment 128662
Updated Patch

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

Tried this again. And found that this doesn&apos;t work.
Please test this using debug build so that you can see the assertion failure.

&gt; Source/WebCore/dom/ShadowRoot.cpp:154
&gt; +    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentFromSource(markup, toElement(this), ec);

You cannot use toElement() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566619</commentid>
    <comment_count>22</comment_count>
      <attachid>129239</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-28 06:50:27 -0800</bug_when>
    <thetext>Created attachment 129239
Updated Patch

For creation of DocumentFragmet I can use host() as HTMLDocumentParser currently take Element as reference to create HTMLTree. The injected fragment will be replaced on actual ShadowRoot only. Tested on debug build. Morrita can u review once? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567413</commentid>
    <comment_count>23</comment_count>
      <attachid>129397</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-28 23:18:12 -0800</bug_when>
    <thetext>Created attachment 129397
Updated Patch

Guess the patch didn&apos;t made it. Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567425</commentid>
    <comment_count>24</comment_count>
      <attachid>129397</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-28 23:37:49 -0800</bug_when>
    <thetext>Comment on attachment 129397
Updated Patch

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

&gt; Source/WebCore/editing/markup.h:30
&gt; +#include &quot;ExceptionCode.h&quot;

You can just typedef int ExceptionCode. instead of including this.
Same for ContainerNode.h.
Less includes are better.

&gt; LayoutTests/platform/mac/Skipped:426
&gt; +fast/dom/shadow

Please don do this unless you are a maintainer of this port. 
There some test which can run without ENABLE_SHADOW_DOM under shadow/
We should&apos;ve splited these from one which needs API. But it&apos;s another story.

&gt; LayoutTests/platform/qt/Skipped:162
&gt; +fast/dom/shadow

Ditto.

&gt; LayoutTests/platform/win/Skipped:1452
&gt; +fast/dom/shadow

Ditto.

&gt; LayoutTests/platform/wincairo/Skipped:1968
&gt;  

Ditto.

&gt; LayoutTests/platform/wk2/Skipped:1066
&gt; +fast/dom/shadow

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567454</commentid>
    <comment_count>25</comment_count>
      <attachid>129404</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-29 00:22:00 -0800</bug_when>
    <thetext>Created attachment 129404
Updated Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567456</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 00:25:19 -0800</bug_when>
    <thetext>Attachment 129404 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/editing/markup.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567472</commentid>
    <comment_count>27</comment_count>
      <attachid>129404</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-29 00:47:42 -0800</bug_when>
    <thetext>Comment on attachment 129404
Updated Patch

Looks good! thanks for your cooperation. It&apos;s time to land...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567539</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 02:43:17 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 129404:

css3/filters/effect-invert-hw.html bug 79639 (author: cmarrin@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567541</commentid>
    <comment_count>29</comment_count>
      <attachid>129404</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 02:47:03 -0800</bug_when>
    <thetext>Comment on attachment 129404
Updated Patch

Rejecting attachment 129404 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;-...&quot; exit_code: 2

Last 500 characters of output:
webkit.org/repository/webkit&apos;: could not connect to server (http://svn.webkit.org) at /usr/lib/git-core/git-svn line 2295

Died at Tools/Scripts/update-webkit line 164.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 9
Updating OpenSource
RA layer request failed: OPTIONS of &apos;http://svn.webkit.org/repository/webkit&apos;: could not connect to server (http://svn.webkit.org) at /usr/lib/git-core/git-svn line 2295

Died at Tools/Scripts/update-webkit line 164.

Full output: http://queues.webkit.org/results/11695257</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567542</commentid>
    <comment_count>30</comment_count>
      <attachid>129404</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-29 02:52:37 -0800</bug_when>
    <thetext>Comment on attachment 129404
Updated Patch

svn.webkit.org was down :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567861</commentid>
    <comment_count>31</comment_count>
      <attachid>129404</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 13:17:36 -0800</bug_when>
    <thetext>Comment on attachment 129404
Updated Patch

Clearing flags on attachment: 129404

Committed r109251: &lt;http://trac.webkit.org/changeset/109251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567862</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 13:17:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127343</attachid>
            <date>2012-02-16 02:53:06 -0800</date>
            <delta_ts>2012-02-17 02:05:46 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>78473.patch</filename>
            <type>text/plain</type>
            <size>3854</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzkxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAyLTE2ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZHMgaW5uZXJIVE1MLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzg0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRhdGlvbiBmb3IgU2hhZG93Um9vdCdzIGlubmVySFRNTCBhdHRy
aWJ1dGUKKworICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmNsb25lTm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OmlubmVySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dS
b290OjpzZXRJbm5lckhUTUwpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAg
IChTaGFkb3dSb290KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5pZGw6CisKIDIwMTItMDIt
MTYgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgPHN0eWxlIHNjb3BlZD46IEltcGxlbWVudCBzY29wZWQgc2VsZWN0b3IgbWF0Y2hpbmcgaW4g
dGhlIHNsb3cgcGF0aApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkocmV2aXNpb24g
MTA3ODk1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxDb250ZW50U2VsZWN0b3IuaCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlICJOb2RlUmFy
ZURhdGEuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNs
dWRlICJtYXJrdXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzEsNiArMTMzLDQx
IEBAIFBhc3NSZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlKGIKICAgICByZXR1cm4g
MDsKIH0KIAorU3RyaW5nIFNoYWRvd1Jvb3Q6OmlubmVySFRNTCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGNyZWF0ZU1hcmt1cCh0aGlzLCBDaGlsZHJlbk9ubHkpOworfQorCit2b2lkIFNoYWRvd1Jv
b3Q6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgRWxlbWVudCogZWxlbWVudCA9IGhvc3QoKTsKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBob3N0KCktPmRvY3VtZW50KCk7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKworICAgIGlmIChk
b2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAgZnJhZ21lbnQtPnBhcnNlSFRNTCht
YXJrdXAsIGVsZW1lbnQpOworICAgIGVsc2UKKyAgICAgICAgZnJhZ21lbnQtPnBhcnNlWE1MKG1h
cmt1cCwgZWxlbWVudCk7CisKKyAgICBpZiAoZnJhZ21lbnQpIHsKKyAgICAgICAgaWYgICghZnJh
Z21lbnQtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRy
ZW4oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnJhZ21l
bnQuZ2V0KCktPmZpcnN0Q2hpbGQoKS0+aXNUZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICB0b1Rl
eHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21lbnQtPmZpcnN0
Q2hpbGQoKSktPmRhdGEoKSwgZWMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIGlmIChlbGVtZW50LT5maXJzdENoaWxkKCkgJiYgIWVsZW1lbnQtPmZpcnN0Q2hpbGQo
KS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgZWxlbWVudC0+cmVwbGFjZUNoaWxkKGZy
YWdtZW50LCBlbGVtZW50LT5maXJzdENoaWxkKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgZWxl
bWVudC0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQpOworICAgIH0KK30KKwogYm9vbCBTaGFkb3dSb290
OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0
eXBlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHJldmlzaW9uIDEwNzg5NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYg
KzcxLDkgQEAgcHVibGljOgogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNo
YWRvd0hvc3QoKTsgfQogCisgICAgU3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OworICAgIHZvaWQg
c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIEhUTUxD
b250ZW50U2VsZWN0b3IqIHNlbGVjdG9yKCkgY29uc3Q7CiAgICAgSFRNTENvbnRlbnRTZWxlY3Rv
ciogZW5zdXJlU2VsZWN0b3IoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAko
cmV2aXNpb24gMTA3ODk1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIENv
bnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uCiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFn
bWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CisKKyAgICAg
ICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1M
CisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgRWxl
bWVudCBnZXRFbGVtZW50QnlJZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgZWxlbWVudElkKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY2xhc3NOYW1lKTsK
ICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ05hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127555</attachid>
            <date>2012-02-17 02:05:46 -0800</date>
            <delta_ts>2012-02-17 05:12:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78473.patch</filename>
            <type>text/plain</type>
            <size>10826</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODA1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAyLTE3ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3Qu
aWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUZyYWdtZW50RnJvbU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09u
ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAx
Mi0wMi0xNyAgWW9zaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W0Zvcm1zXSBJbnRlZ3JhdGUgSW5wdXRUeXBlOjpkaXNwYXRjaENoYW5nZUV2ZW50SW5SZXNwb25z
ZVRvU2V0VmFsdWUgaW50byBJbnB1dFR5cGU6OnNldFZhbHVlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCShyZXZpc2lvbiAxMDgwMjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJT
aGFkb3dSb290LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgpAQCAtMzYsNiArMzcs
NyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAibWFya3VwLmgiCiAKICNpZiBFTkFCTEUoU0hB
RE9XX0RPTSkKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC0xNDIsNiAr
MTQ0LDE4IEBAIFBhc3NSZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlKGIKICAgICBy
ZXR1cm4gMDsKIH0KIAorU3RyaW5nIFNoYWRvd1Jvb3Q6OmlubmVySFRNTCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGNyZWF0ZU1hcmt1cCh0aGlzLCBDaGlsZHJlbk9ubHkpOworfQorCit2b2lkIFNo
YWRvd1Jvb3Q6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRl
RnJhZ21lbnRGcm9tU291cmNlKG1hcmt1cCwgaG9zdCgpLCBlYyk7CisgICAgaWYgKGZyYWdtZW50
KQorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoaG9zdCgpLCBmcmFnbWVudC5y
ZWxlYXNlKCksIGVjKTsKK30KKwogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5v
ZGVUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmgJKHJldmlzaW9uIDEwODAyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDkgQEAgcHVibGljOgogCiAg
ICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQogCisgICAg
U3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OworICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVj
dG9yKCkgY29uc3Q7CiAgICAgSFRNTENvbnRlbnRTZWxlY3RvciogZW5zdXJlU2VsZWN0b3IoKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAkocmV2aXNpb24gMTA4MDI5KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMywxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0
aW9uCiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CisKKyAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCisgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElkKTsKICAg
ICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgY2xhc3NOYW1lKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0
RWxlbWVudHNCeVRhZ05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHRhZ05hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkocmV2aXNpb24g
MTA4MDI5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1
ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgpAQCAtOTM3LDYgKzkzOCw4NSBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtCiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KIAorUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoY29uc3Qg
U3RyaW5nJiBtYXJrdXAsIEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50OworCisgICAgZnJhZ21lbnQgPSBEb2N1bWVudEZy
YWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1l
bnQoKSkgeworICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgZWxlbWVudCk7Cisg
ICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBib29sIHdhc1ZhbGlkID0gZnJh
Z21lbnQtPnBhcnNlWE1MKG1hcmt1cCwgZWxlbWVudCk7CisgICAgaWYgKCF3YXNWYWxpZCkgewor
ICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKK30KKworc3RhdGljIGlubGluZSBib29s
IGhhc09uZUNoaWxkKENvbnRhaW5lck5vZGUqIG5vZGUpCit7CisgICAgTm9kZSogZmlyc3RDaGls
ZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsKKyAgICByZXR1cm4gZmlyc3RDaGlsZCAmJiAhZmlyc3RD
aGlsZC0+bmV4dFNpYmxpbmcoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhhc09uZVRleHRD
aGlsZChDb250YWluZXJOb2RlKiBub2RlKQoreworICAgIHJldHVybiBoYXNPbmVDaGlsZChub2Rl
KSAmJiBub2RlLT5maXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKK30KKwordm9pZCByZXBsYWNl
Q2hpbGRyZW5XaXRoRnJhZ21lbnQoRWxlbWVudCogc291cmNlRWxlbWVudCwgUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSFRN
TEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHNvdXJjZUVsZW1lbnQpOworI2lmIEVO
QUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRh
dGlvbihlbGVtZW50KTsKKyNlbmRpZgorCisgICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgp
KSB7CisgICAgICAgIGVsZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpICYmIGhhc09uZVRleHRD
aGlsZChmcmFnbWVudC5nZXQoKSkpIHsKKyAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hp
bGQoKSktPnNldERhdGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVj
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50
KSkgeworICAgICAgICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGVsZW1lbnQtPmZp
cnN0Q2hpbGQoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZWxlbWVudC0+
cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMp
OworfQorCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KEVsZW1lbnQqIHNvdXJjZUVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSFRNTEVs
ZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHNvdXJjZUVsZW1lbnQpOworI2lmIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlv
bihlbGVtZW50KTsKKyNlbmRpZgorCisgICAgaWYgKGhhc09uZVRleHRDaGlsZChlbGVtZW50KSkg
eworICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0ZXh0LCBl
Yyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8VGV4dD4gdGV4dE5vZGUg
PSBUZXh0OjpjcmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7CisKKyAgICBpZiAoaGFz
T25lQ2hpbGQoZWxlbWVudCkpIHsKKyAgICAgICAgZWxlbWVudC0+cmVwbGFjZUNoaWxkKHRleHRO
b2RlLnJlbGVhc2UoKSwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOworICAgIGVsZW1lbnQt
PmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOworfQorCiBTdHJpbmcgY3JlYXRl
RnVsbE1hcmt1cChjb25zdCBOb2RlKiBub2RlKQogewogICAgIGlmICghbm9kZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuaAkocmV2aXNpb24gMTA4MDI5KQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBtYXJrdXBfaAogI2RlZmluZSBtYXJrdXBfaAogCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIkhU
TUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Nyw5ICs0OCwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1
cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBG
cmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQoRG9jdW1lbnQqLCBjb25zdCBT
dHJpbmcmIG1hcmt1cCwgdW5zaWduZWQgZnJhZ21lbnRTdGFydCwgdW5zaWduZWQgZnJhZ21lbnRF
bmQsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsK
ICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU5vZGVz
KERvY3VtZW50KiwgY29uc3QgVmVjdG9yPE5vZGUqPiYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYsIEVsZW1l
bnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGlzUGxhaW5UZXh0TWFya3VwKE5vZGUg
Km5vZGUpOwogCisgICAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoRWxlbWVudCos
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CisKICAgICBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiwKICAgICAg
ICAgVmVjdG9yPE5vZGUqPiogPSAwLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5u
b3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2Us
IEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzKTsKICAgICBTdHJpbmcgY3JlYXRlTWFy
a3VwKGNvbnN0IE5vZGUqLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxOb2Rl
Kj4qID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwODAyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDUsODQgKzM0NSw2
IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QKICAgICByZXR1cm4gY3Jl
YXRlTWFya3VwKHRoaXMpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lQ2hpbGQoQ29u
dGFpbmVyTm9kZSogbm9kZSkKLXsKLSAgICBOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmlyc3RD
aGlsZCgpOwotICAgIHJldHVybiBmaXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0U2libGlu
ZygpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5lck5v
ZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUtPmZpcnN0
Q2hpbGQoKS0+aXNUZXh0Tm9kZSgpOwotfQotCi1zdGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5X
aXRoRnJhZ21lbnQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShNVVRBVElP
Tl9PQlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihlbGVtZW50
KTsKLSNlbmRpZgotCi0gICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAg
IGVsZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVu
dC5nZXQoKSkpIHsKLSAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNldERh
dGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50KSkgewotICAgICAg
ICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSwg
ZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRy
ZW4oKTsKLSAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwotfQotCi1zdGF0
aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCogZWxlbWVudCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSNpZiBFTkFCTEUoTVVUQVRJ
T05fT0JTRVJWRVJTKQotICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oZWxlbWVu
dCk7Ci0jZW5kaWYKLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVudCkpIHsKLSAgICAg
ICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEodGV4dCwgZWMpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0gVGV4dDo6
Y3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCksIHRleHQpOwotCi0gICAgaWYgKGhhc09uZUNoaWxk
KGVsZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZCh0ZXh0Tm9kZS5yZWxl
YXNlKCksIGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBlbGVtZW50LT5hcHBlbmRD
aGlsZCh0ZXh0Tm9kZS5yZWxlYXNlKCksIGVjKTsKLX0KLQotLy8gV2UgbWF5IHdhbnQgdG8gbW92
ZSBhIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpbnRvIERvY3VtZW50RnJhZ21lbnQuaC9jcHAK
LXN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVNv
dXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRFbGVtZW50
LT5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudDsKLQot
ICAgIGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBp
ZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZnJhZ21lbnQtPnBhcnNl
SFRNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50Owot
ICAgIH0KLQotICAgIGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCBj
b250ZXh0RWxlbWVudCk7Ci0gICAgaWYgKCF3YXNWYWxpZCkgewotICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGZyYWdt
ZW50OwotfQotCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBo
dG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgdGhpcywgZWMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127573</attachid>
            <date>2012-02-17 05:12:42 -0800</date>
            <delta_ts>2012-02-21 02:07:07 -0800</delta_ts>
            <desc>Patch with layout tests</desc>
            <filename>78473.patch</filename>
            <type>text/plain</type>
            <size>13153</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODA2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTE3ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUZyYWdtZW50RnJvbU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhh
c09uZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAg
IChXZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6
CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwog
MjAxMi0wMi0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogY29sb3IgcGlja2VyIGRvZXMgbm90IGFsbG93IGNoYW5naW5nIHRo
ZSBjb2xvci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAJKHJldmlzaW9uIDEwODA1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29u
dGVudFNlbGVjdG9yLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdExp
c3QuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRl
ICJtYXJrdXAuaCIKIAogI2lmIEVOQUJMRShTSEFET1dfRE9NKQogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKQEAgLTE0Miw2ICsxNDQsMTggQEAgUGFzc1JlZlB0cjxOb2RlPiBT
aGFkb3dSb290OjpjbG9uZU5vZGUoYgogICAgIHJldHVybiAwOwogfQogCitTdHJpbmcgU2hhZG93
Um9vdDo6aW5uZXJIVE1MKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlTWFya3VwKHRoaXMs
IENoaWxkcmVuT25seSk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UobWFya3VwLCBo
b3N0KCksIGVjKTsKKyAgICBpZiAoZnJhZ21lbnQpCisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldp
dGhGcmFnbWVudChob3N0KCksIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworfQorCiBib29sIFNo
YWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKIHsKICAgICBz
d2l0Y2ggKHR5cGUpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAkocmV2aXNpb24gMTA4
MDU5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNzEsNiArNzEsOSBAQCBwdWJsaWM6CiAKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3QgeyBy
ZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAKKyAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworCiAg
ICAgSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IoKSBjb25zdDsKICAgICBIVE1MQ29udGVu
dFNlbGVjdG9yKiBlbnN1cmVTZWxlY3RvcigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsCShyZXZpc2lvbiAxMDgwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEwIEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24KICAgICBdIFNoYWRvd1Jvb3QgOiBEb2N1
bWVudEZyYWdtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgaG9zdDsK
KworICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBp
bm5lckhUTUwKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAg
ICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBlbGVtZW50SWQpOwogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjbGFz
c05hbWUpOwogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFnTmFtZSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuY3BwCShyZXZpc2lvbiAxMDgwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
IgogI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC05MzcsNiArOTM4LDg1
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ20KICAgICByZXR1cm4g
ZnJhZ21lbnQucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNy
ZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogZWxl
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxl
bWVudC0+ZG9jdW1lbnQoKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQ7
CisKKyAgICBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgaWYgKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKSB7CisgICAgICAgIGZyYWdtZW50LT5w
YXJzZUhUTUwobWFya3VwLCBlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OworICAg
IH0KKworICAgIGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCBlbGVt
ZW50KTsKKyAgICBpZiAoIXdhc1ZhbGlkKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFz
ZSgpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lQ2hpbGQoQ29udGFpbmVyTm9kZSog
bm9kZSkKK3sKKyAgICBOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOworICAg
IHJldHVybiBmaXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0U2libGluZygpOworfQorCitz
dGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5lck5vZGUqIG5vZGUpCit7
CisgICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUtPmZpcnN0Q2hpbGQoKS0+aXNU
ZXh0Tm9kZSgpOworfQorCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChFbGVtZW50
KiBzb3VyY2VFbGVtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVs
ZW1lbnQoc291cmNlRWxlbWVudCk7CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAg
ICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGVsZW1lbnQpOworI2VuZGlmCisKKyAg
ICBpZiAoIWZyYWdtZW50LT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgZWxlbWVudC0+cmVtb3Zl
Q2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChoYXNPbmVUZXh0
Q2hpbGQoZWxlbWVudCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50LmdldCgpKSkgeworICAg
ICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21l
bnQtPmZpcnN0Q2hpbGQoKSktPmRhdGEoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKGhhc09uZUNoaWxkKGVsZW1lbnQpKSB7CisgICAgICAgIGVsZW1lbnQtPnJlcGxh
Y2VDaGlsZChmcmFnbWVudCwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOworICAgIGVsZW1l
bnQtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7Cit9CisKK3ZvaWQgcmVwbGFjZUNoaWxkcmVu
V2l0aFRleHQoRWxlbWVudCogc291cmNlRWxlbWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1l
bnQoc291cmNlRWxlbWVudCk7CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAgICBD
aGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGVsZW1lbnQpOworI2VuZGlmCisKKyAgICBp
ZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpKSB7CisgICAgICAgIHRvVGV4dChlbGVtZW50LT5m
aXJzdENoaWxkKCkpLT5zZXREYXRhKHRleHQsIGVjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IFRleHQ6OmNyZWF0ZShlbGVtZW50LT5kb2N1
bWVudCgpLCB0ZXh0KTsKKworICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50KSkgeworICAgICAg
ICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBlbGVtZW50LT5maXJz
dENoaWxkKCksIGVjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVsZW1lbnQtPnJl
bW92ZUNoaWxkcmVuKCk7CisgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFz
ZSgpLCBlYyk7Cit9CisKIFN0cmluZyBjcmVhdGVGdWxsTWFya3VwKGNvbnN0IE5vZGUqIG5vZGUp
CiB7CiAgICAgaWYgKCFub2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCShyZXZpc2lv
biAxMDgwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIG1hcmt1cF9oCiAjZGVmaW5lIG1hcmt1cF9o
CiAKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTEludGVyY2hhbmdlLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KQEAgLTQ3LDkgKzQ4LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChE
b2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CiAg
ICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBX
aXRoQ29udGV4dChEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCB1bnNpZ25lZCBmcmFn
bWVudFN0YXJ0LCB1bnNpZ25lZCBmcmFnbWVudEVuZCwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXMoRG9jdW1lbnQqLCBjb25zdCBWZWN0b3I8Tm9k
ZSo+Jik7CisgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZy
b21Tb3VyY2UoY29uc3QgU3RyaW5nJiwgRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
IGJvb2wgaXNQbGFpblRleHRNYXJrdXAoTm9kZSAqbm9kZSk7CiAKKyAgICB2b2lkIHJlcGxhY2VD
aGlsZHJlbldpdGhGcmFnbWVudChFbGVtZW50KiwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoRWxl
bWVudCosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFN0cmluZyBjcmVh
dGVNYXJrdXAoY29uc3QgUmFuZ2UqLAogICAgICAgICBWZWN0b3I8Tm9kZSo+KiA9IDAsIEVBbm5v
dGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBib29sIGNv
bnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2
ZVVSTHMpOwogICAgIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSosIEVDaGlsZHJlbk9u
bHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9O
b3RSZXNvbHZlVVJMcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2
aXNpb24gMTA4MDU5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0NSw4NCArMzQ1LDYgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRl
ckhUTUwoKSBjb25zdAogICAgIHJldHVybiBjcmVhdGVNYXJrdXAodGhpcyk7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBoYXNPbmVDaGlsZChDb250YWluZXJOb2RlKiBub2RlKQotewotICAgIE5v
ZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGZpcnN0Q2hp
bGQgJiYgIWZpcnN0Q2hpbGQtPm5leHRTaWJsaW5nKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9v
bCBoYXNPbmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gaGFz
T25lQ2hpbGQobm9kZSkgJiYgbm9kZS0+Zmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7Ci19Ci0K
LXN0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChIVE1MRWxlbWVudCogZWxl
bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBDaGlsZExpc3RN
dXRhdGlvblNjb3BlIG11dGF0aW9uKGVsZW1lbnQpOwotI2VuZGlmCi0KLSAgICBpZiAoIWZyYWdt
ZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVu
dCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50LmdldCgpKSkgewotICAgICAgICB0b1RleHQo
ZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21lbnQtPmZpcnN0Q2hp
bGQoKSktPmRhdGEoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGhh
c09uZUNoaWxkKGVsZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFn
bWVudCwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGVsZW1lbnQtPmFwcGVuZENo
aWxkKGZyYWdtZW50LCBlYyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhU
ZXh0KEhUTUxFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0
TXV0YXRpb25TY29wZSBtdXRhdGlvbihlbGVtZW50KTsKLSNlbmRpZgotCi0gICAgaWYgKGhhc09u
ZVRleHRDaGlsZChlbGVtZW50KSkgewotICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGls
ZCgpKS0+c2V0RGF0YSh0ZXh0LCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSwg
dGV4dCk7Ci0KLSAgICBpZiAoaGFzT25lQ2hpbGQoZWxlbWVudCkpIHsKLSAgICAgICAgZWxlbWVu
dC0+cmVwbGFjZUNoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWxlbWVudC0+Zmlyc3RDaGlsZCgp
LCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBlbGVtZW50LT5yZW1vdmVDaGls
ZHJlbigpOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMp
OwotfQotCi0vLyBXZSBtYXkgd2FudCB0byBtb3ZlIGEgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9u
IGludG8gRG9jdW1lbnRGcmFnbWVudC5oL2NwcAotc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgbWFya3VwLCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50OwotCi0gICAgZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQo
KSkgewotICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQp
OwotICAgICAgICByZXR1cm4gZnJhZ21lbnQ7Ci0gICAgfQotCi0gICAgYm9vbCB3YXNWYWxpZCA9
IGZyYWdtZW50LT5wYXJzZVhNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICBpZiAoIXdh
c1ZhbGlkKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVy
biAwOwotICAgIH0KLSAgICByZXR1cm4gZnJhZ21lbnQ7Ci19Ci0KIHZvaWQgSFRNTEVsZW1lbnQ6
OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJv
bVNvdXJjZShodG1sLCB0aGlzLCBlYyk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgwNjMpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wMi0xNyAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKwor
ICAgICAgICBTaGFkb3dSb290IG5lZWQgaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBpbm5lckhUTUwgYXR0cmlidXRlIGZv
ciBTaGFkb3dSb290LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlu
bmVySFRNTC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMTcgIE5vZWwgR29y
ZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmViYXNl
bGluZSBKUEVHIGltYWdlIHJlc3VsdHMgYWZ0ZXIgcjEwNzM4OQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMiBAQAorVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93
IHJvb3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgJ2lubmVySFRN
TCcgaW4gaW50ZXJuYWxzLnNoYWRvd1Jvb3QgaXMgZmFsc2UKK1BBU1Mgcm9vdC5pbm5lckhUTUwg
aXMgZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5u
ZXJIVE1MLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+Cis8L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJvb3QuIik7
CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJ1bnMgb24g
RFJUIG9ubHknKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7Cityb290ID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKK3Jvb3QuaW5uZXJIVE1MID0gIkhlbGxvIjsKKwor
c2hvdWxkQmVGYWxzZSgiJ2lubmVySFRNTCcgaW4gaW50ZXJuYWxzLnNoYWRvd1Jvb3QiKTsKK3No
b3VsZEJlRGVmaW5lZCgicm9vdC5pbm5lckhUTUwiKTsKK30KK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="129740"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="129741"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127944</attachid>
            <date>2012-02-21 02:07:07 -0800</date>
            <delta_ts>2012-02-23 02:54:02 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>78473.patch</filename>
            <type>text/plain</type>
            <size>16810</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODMyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTIxICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUZyYWdtZW50RnJvbU5vZGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhh
c09uZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAg
IChXZWJDb3JlOjpyZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6
CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwog
MjAxMi0wMi0yMSAgTWF0dCBMaWxlayAgPG1ybEBhcHBsZS5jb20+CiAKICAgICAgICAgTm90IHJl
dmlld2VkLCBidWlsZCBmaXggZm9yIG5vbi1jbGllbnQtYmFzZWQgR2VvbG9jYXRpb24gYnVpbGRz
IGFmdGVyIHIxMDc5ODIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCShyZXZpc2lv
biAxMDgzMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTENvbnRlbnRTZWxlY3Rvci5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1ZGUgIlNoYWRv
d1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCisj
aW5jbHVkZSAibWFya3VwLmgiCiAKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC0xNDMsNiArMTQ1LDE4IEBAIFBhc3NSZWZQdHI8
Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlKGIKICAgICByZXR1cm4gMDsKIH0KIAorU3RyaW5n
IFNoYWRvd1Jvb3Q6OmlubmVySFRNTCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNyZWF0ZU1hcmt1
cCh0aGlzLCBDaGlsZHJlbk9ubHkpOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldElubmVySFRN
TChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKG1h
cmt1cCwgdG9FbGVtZW50KHRoaXMpLCBlYyk7CisgICAgaWYgKGZyYWdtZW50KQorICAgICAgICBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodG9FbGVtZW50KHRoaXMpLCBmcmFnbWVudC5yZWxl
YXNlKCksIGVjKTsKK30KKwogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVU
eXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmgJKHJldmlzaW9uIDEwODMyNikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDkgQEAgcHVibGljOgogCiAgICAg
RWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQogCisgICAgU3Ry
aW5nIGlubmVySFRNTCgpIGNvbnN0OworICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9y
KCkgY29uc3Q7CiAgICAgSFRNTENvbnRlbnRTZWxlY3RvciogZW5zdXJlU2VsZWN0b3IoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAkocmV2aXNpb24gMTA4MzI2KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
MywxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9u
CiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CisKKyAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCisgICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZChpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElkKTsKICAgICAg
ICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgY2xhc3NOYW1lKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxl
bWVudHNCeVRhZ05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IHRhZ05hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkocmV2aXNpb24gMTA4
MzI2KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1
ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUg
IkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
VHlwZS5oIgpAQCAtOTM2LDYgKzkzNyw4NSBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNyZWF0ZUZyYWdtCiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KIAorUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoY29uc3QgU3Ry
aW5nJiBtYXJrdXAsIEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50OworCisgICAgZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQo
KSkgeworICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgZWxlbWVudCk7CisgICAg
ICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBib29sIHdhc1ZhbGlkID0gZnJhZ21l
bnQtPnBhcnNlWE1MKG1hcmt1cCwgZWxlbWVudCk7CisgICAgaWYgKCF3YXNWYWxpZCkgeworICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cisg
ICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhh
c09uZUNoaWxkKENvbnRhaW5lck5vZGUqIG5vZGUpCit7CisgICAgTm9kZSogZmlyc3RDaGlsZCA9
IG5vZGUtPmZpcnN0Q2hpbGQoKTsKKyAgICByZXR1cm4gZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGls
ZC0+bmV4dFNpYmxpbmcoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhhc09uZVRleHRDaGls
ZChDb250YWluZXJOb2RlKiBub2RlKQoreworICAgIHJldHVybiBoYXNPbmVDaGlsZChub2RlKSAm
JiBub2RlLT5maXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKK30KKwordm9pZCByZXBsYWNlQ2hp
bGRyZW5XaXRoRnJhZ21lbnQoRWxlbWVudCogc291cmNlRWxlbWVudCwgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSFRNTEVs
ZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHNvdXJjZUVsZW1lbnQpOworI2lmIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlv
bihlbGVtZW50KTsKKyNlbmRpZgorCisgICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7
CisgICAgICAgIGVsZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpICYmIGhhc09uZVRleHRDaGls
ZChmcmFnbWVudC5nZXQoKSkpIHsKKyAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQo
KSktPnNldERhdGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50KSkg
eworICAgICAgICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGVsZW1lbnQtPmZpcnN0
Q2hpbGQoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZWxlbWVudC0+cmVt
b3ZlQ2hpbGRyZW4oKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwor
fQorCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KEVsZW1lbnQqIHNvdXJjZUVsZW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSFRNTEVsZW1l
bnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHNvdXJjZUVsZW1lbnQpOworI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCisgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihl
bGVtZW50KTsKKyNlbmRpZgorCisgICAgaWYgKGhhc09uZVRleHRDaGlsZChlbGVtZW50KSkgewor
ICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0ZXh0LCBlYyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBU
ZXh0OjpjcmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7CisKKyAgICBpZiAoaGFzT25l
Q2hpbGQoZWxlbWVudCkpIHsKKyAgICAgICAgZWxlbWVudC0+cmVwbGFjZUNoaWxkKHRleHROb2Rl
LnJlbGVhc2UoKSwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOworICAgIGVsZW1lbnQtPmFw
cGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOworfQorCiBTdHJpbmcgY3JlYXRlRnVs
bE1hcmt1cChjb25zdCBOb2RlKiBub2RlKQogewogICAgIGlmICghbm9kZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuaAkocmV2aXNpb24gMTA4MzI2KQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBt
YXJrdXBfaAogI2RlZmluZSBtYXJrdXBfaAogCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIkhUTUxJ
bnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Nyw5ICs0OCwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBj
cmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwg
Y29uc3QgU3RyaW5nJiBiYXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFn
bWVudFNjcmlwdGluZ0FsbG93ZWQpOwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Y3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQoRG9jdW1lbnQqLCBjb25zdCBTdHJp
bmcmIG1hcmt1cCwgdW5zaWduZWQgZnJhZ21lbnRTdGFydCwgdW5zaWduZWQgZnJhZ21lbnRFbmQs
IGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAg
ICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU5vZGVzKERv
Y3VtZW50KiwgY29uc3QgVmVjdG9yPE5vZGUqPiYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGlzUGxhaW5UZXh0TWFya3VwKE5vZGUgKm5v
ZGUpOwogCisgICAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoRWxlbWVudCosIFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJl
cGxhY2VDaGlsZHJlbldpdGhUZXh0KEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJik7CisKICAgICBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiwKICAgICAgICAg
VmVjdG9yPE5vZGUqPiogPSAwLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVB
YnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzKTsKICAgICBTdHJpbmcgY3JlYXRlTWFya3Vw
KGNvbnN0IE5vZGUqLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxOb2RlKj4q
ID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwODMyNikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDUsODQgKzM0NSw2IEBA
IFN0cmluZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QKICAgICByZXR1cm4gY3JlYXRl
TWFya3VwKHRoaXMpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lQ2hpbGQoQ29udGFp
bmVyTm9kZSogbm9kZSkKLXsKLSAgICBOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmlyc3RDaGls
ZCgpOwotICAgIHJldHVybiBmaXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0U2libGluZygp
OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5lck5vZGUq
IG5vZGUpCi17Ci0gICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUtPmZpcnN0Q2hp
bGQoKS0+aXNUZXh0Tm9kZSgpOwotfQotCi1zdGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRo
RnJhZ21lbnQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihlbGVtZW50KTsK
LSNlbmRpZgotCi0gICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGVs
ZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVudC5n
ZXQoKSkpIHsKLSAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEo
dG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50KSkgewotICAgICAgICBl
bGVtZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSwgZWMp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4o
KTsKLSAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwotfQotCi1zdGF0aWMg
dm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCogZWxlbWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSNpZiBFTkFCTEUoTVVUQVRJT05f
T0JTRVJWRVJTKQotICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oZWxlbWVudCk7
Ci0jZW5kaWYKLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVudCkpIHsKLSAgICAgICAg
dG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEodGV4dCwgZWMpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0gVGV4dDo6Y3Jl
YXRlKGVsZW1lbnQtPmRvY3VtZW50KCksIHRleHQpOwotCi0gICAgaWYgKGhhc09uZUNoaWxkKGVs
ZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZCh0ZXh0Tm9kZS5yZWxlYXNl
KCksIGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBlbGVtZW50LT5hcHBlbmRDaGls
ZCh0ZXh0Tm9kZS5yZWxlYXNlKCksIGVjKTsKLX0KLQotLy8gV2UgbWF5IHdhbnQgdG8gbW92ZSBh
IHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpbnRvIERvY3VtZW50RnJhZ21lbnQuaC9jcHAKLXN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJj
ZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRFbGVtZW50LT5k
b2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudDsKLQotICAg
IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBpZiAo
ZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZnJhZ21lbnQtPnBhcnNlSFRN
TChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50OwotICAg
IH0KLQotICAgIGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCBjb250
ZXh0RWxlbWVudCk7Ci0gICAgaWYgKCF3YXNWYWxpZCkgewotICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGZyYWdtZW50
OwotfQotCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1s
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgdGhpcywgZWMpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTA4MzI2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMjEgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxr
YXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2hhZG93Um9vdCBuZWVkIGlubmVySFRN
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgaW5uZXJIVE1MIGF0dHJpYnV0ZSBmb3IgU2hhZG93Um9vdC4KKworICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTAyLTIxICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCwgdXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zIHRv
IHJlZmxlY3QgcmVjZW50IGZsYWtpbmVzcy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWlubmVySFRNTC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAK
K1RoaXMgdGVzdHMgdGhlIGlubmVySFRNTCBwcm9wZXJ0eSBvZiBhIHNoYWRvdyByb290LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTICdpbm5lckhUTUwnIGluIGludGVy
bmFscy5zaGFkb3dSb290IGlzIGZhbHNlCitQQVNTIHJvb3QuaW5uZXJIVE1MIGlzIGRlZmluZWQu
CitQQVNTIHJvb3QuaW5uZXJIVE1MIGlzICdIZWxsbycKK1BBU1Mgcm9vdC5nZXRFbGVtZW50QnlJ
ZCgnZGl2MicpIGlzIGRpdjIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtaW5uZXJIVE1MLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+Cis8L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJv
b3QuIik7CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJ1
bnMgb24gRFJUIG9ubHknKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworaG9zdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsK
K3Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKwordmFyIGRpdjEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RpdjEuc2V0QXR0cmlidXRlKCJpZCIsICJkaXYxIik7
Cityb290LmFwcGVuZENoaWxkKGRpdjEpOworCit2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworZGl2Mi5zZXRBdHRyaWJ1dGUoImlkIiwgImRpdjIiKTsKK3Jvb3QuYXBw
ZW5kQ2hpbGQoZGl2Mik7CisKK3Jvb3QuaW5uZXJIVE1MID0gIkhlbGxvIjsKKworc2hvdWxkQmVG
YWxzZSgiJ2lubmVySFRNTCcgaW4gaW50ZXJuYWxzLnNoYWRvd1Jvb3QiKTsKK3Nob3VsZEJlRGVm
aW5lZCgicm9vdC5pbm5lckhUTUwiKTsKK3Nob3VsZEJlKCJyb290LmlubmVySFRNTCIsICInSGVs
bG8nIik7CitzaG91bGRCZSgicm9vdC5nZXRFbGVtZW50QnlJZCgnZGl2MicpIiwgImRpdjIiKTsK
KworfQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiAxMDgz
MjYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtMzYxLDYgKzM2MSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3
Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogCiAjIENT
UyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0Lm9yZy9iLzU3
MzEyCiBmYXN0L3JlZ2lvbnMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lv
biAxMDgzMjYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBj
b3B5KQpAQCAtNDI2LDYgKzQyNiw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1h
cGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtbmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAog
CiAjIEpTQyBkb2VzIG5vdCBzdXBwb3J0IHNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbiAo
aHR0cDovL3dlYmtpdC5vcmcvYi82MTU0MCkKIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRX
b3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAko
cmV2aXNpb24gMTA4MzI2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29y
a2luZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtbmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwu
aHRtbAogCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCShyZXZpc2lvbiAxMDgzMjYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAkod29ya2luZyBjb3B5KQpAQCAtMTQ1Nyw2ICsxNDU3LDcgQEAgZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlu
bmVySFRNTC5odG1sCiAKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJsZWQuIGh0
dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW5jYWlyby9Ta2lwcGVkCShyZXZpc2lvbiAxMDgzMjYpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xOTY5LDYgKzE5Njks
NyBAQCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0
YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCitmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIAogIyBDU1MgUmVnaW9ucyBzdXBw
b3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81NzMxMgogZmFzdC9yZWdp
b25zCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNpb24gMTA4MzI2KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEwODQs
NiArMTA4NCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwK
K2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogCiAjIFdUUiBuZWVk
cyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZXZlbnRTZW5kZXIuY29udGludW91c01vdXNlU2Nyb2xs
QnkKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDE3Cg==
</data>
<flag name="review"
          id="130203"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="130204"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128447</attachid>
            <date>2012-02-23 02:54:02 -0800</date>
            <delta_ts>2012-02-23 23:15:01 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>78473.patch</filename>
            <type>text/plain</type>
            <size>17192</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODYwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTIzICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnVybFRvTWFya3VwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZUNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNo
aWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMi0yMiAg
WXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTA4NjAyLgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAko
cmV2aXNpb24gMTA4NjA3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgog
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKQEAgLTM3LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgorI2luY2x1ZGUgIm1hcmt1cC5oIgogCiAjaWYgRU5BQkxFKFNIQURPV19ET00pCiAjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtMTQ0LDYgKzE0NiwxOCBAQCBQYXNz
UmVmUHRyPE5vZGU+IFNoYWRvd1Jvb3Q6OmNsb25lTm9kZShiCiAgICAgcmV0dXJuIDA7CiB9CiAK
K1N0cmluZyBTaGFkb3dSb290Ojppbm5lckhUTUwoKSBjb25zdAoreworICAgIHJldHVybiBjcmVh
dGVNYXJrdXAodGhpcywgQ2hpbGRyZW5Pbmx5KTsKK30KKwordm9pZCBTaGFkb3dSb290OjpzZXRJ
bm5lckhUTUwoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbVNv
dXJjZShtYXJrdXAsIHRvRWxlbWVudCh0aGlzKSwgZWMpOworICAgIGlmIChmcmFnbWVudCkKKyAg
ICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2Uo
KSwgZWMpOworfQorCiBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUg
dHlwZSkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaAkocmV2aXNpb24gMTA4NjA3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsOSBAQCBwdWJsaWM6CiAKICAgICBFbGVt
ZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAKKyAgICBTdHJpbmcg
aW5uZXJIVE1MKCkgY29uc3Q7CisgICAgdm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOworCiAgICAgU2hhZG93Um9vdCogeW91bmdlclNoYWRvd1Jvb3QoKSB7
IHJldHVybiBwcmV2KCk7IH0KICAgICBTaGFkb3dSb290KiBvbGRlclNoYWRvd1Jvb3QoKSB7IHJl
dHVybiBuZXh0KCk7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAkocmV2aXNp
b24gMTA4NjA3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMywxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIENvbnN0cnVj
dG9yUmFpc2VzRXhjZXB0aW9uCiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CisKKyAgICAgICAgYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCisgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgRWxlbWVudCBn
ZXRFbGVtZW50QnlJZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
ZWxlbWVudElkKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY2xhc3NOYW1lKTsKICAgICAg
ICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ05hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAkocmV2aXNpb24gMTA4NjA3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3
b3Jkcy5oIgorI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJE
ZWxldGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtOTkwLDQgKzk5MSw4MCBAQCBTdHJpbmcgdXJs
VG9NYXJrdXAoY29uc3QgS1VSTCYgdXJsLCBjb25zCiAgICAgcmV0dXJuIG1hcmt1cC50b1N0cmlu
ZygpOwogfQogCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRFbGVt
ZW50LT5kb2N1bWVudCgpOworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9
IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisKKyAgICBpZiAoZG9jdW1lbnQt
PmlzSFRNTERvY3VtZW50KCkpIHsKKyAgICAgICAgZnJhZ21lbnQtPnBhcnNlSFRNTChtYXJrdXAs
IGNvbnRleHRFbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OworICAgIH0KKworICAg
IGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCBjb250ZXh0RWxlbWVu
dCk7CisgICAgaWYgKCF3YXNWYWxpZCkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2Uo
KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhhc09uZUNoaWxkKENvbnRhaW5lck5vZGUqIG5v
ZGUpCit7CisgICAgTm9kZSogZmlyc3RDaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsKKyAgICBy
ZXR1cm4gZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKTsKK30KKworc3Rh
dGljIGlubGluZSBib29sIGhhc09uZVRleHRDaGlsZChDb250YWluZXJOb2RlKiBub2RlKQorewor
ICAgIHJldHVybiBoYXNPbmVDaGlsZChub2RlKSAmJiBub2RlLT5maXJzdENoaWxkKCktPmlzVGV4
dE5vZGUoKTsKK30KKwordm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVy
Tm9kZSogY29udGFpbmVyTm9kZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
KyAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lck5vZGUpOworI2Vu
ZGlmCisKKyAgICBpZiAoIWZyYWdtZW50LT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgY29udGFp
bmVyTm9kZS0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4dENoaWxkKGZy
YWdtZW50LmdldCgpKSkgeworICAgICAgICB0b1RleHQoY29udGFpbmVyTm9kZS0+Zmlyc3RDaGls
ZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSktPmRhdGEoKSwgZWMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5l
ck5vZGUpKSB7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwg
Y29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBjb250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOworICAgIGNvbnRhaW5lck5v
ZGUtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7Cit9CisKK3ZvaWQgcmVwbGFjZUNoaWxkcmVu
V2l0aFRleHQoQ29udGFpbmVyTm9kZSogY29udGFpbmVyTm9kZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQor
ICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29udGFpbmVyTm9kZSk7CisjZW5k
aWYKKworICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkpIHsKKyAgICAgICAg
dG9UZXh0KGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEodGV4dCwgZWMpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0gVGV4
dDo6Y3JlYXRlKGNvbnRhaW5lck5vZGUtPmRvY3VtZW50KCksIHRleHQpOworCisgICAgaWYgKGhh
c09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxh
Y2VDaGlsZCh0ZXh0Tm9kZS5yZWxlYXNlKCksIGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwg
ZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29udGFpbmVyTm9kZS0+cmVtb3Zl
Q2hpbGRyZW4oKTsKKyAgICBjb250YWluZXJOb2RlLT5hcHBlbmRDaGlsZCh0ZXh0Tm9kZS5yZWxl
YXNlKCksIGVjKTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCShyZXZpc2lv
biAxMDg2MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIG1hcmt1cF9oCiAjZGVmaW5lIG1hcmt1cF9o
CiAKKyNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIkhU
TUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Nyw5ICs0OSwx
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1
cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBG
cmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQoRG9jdW1lbnQqLCBjb25zdCBT
dHJpbmcmIG1hcmt1cCwgdW5zaWduZWQgZnJhZ21lbnRTdGFydCwgdW5zaWduZWQgZnJhZ21lbnRF
bmQsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsK
ICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU5vZGVz
KERvY3VtZW50KiwgY29uc3QgVmVjdG9yPE5vZGUqPiYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYsIEVsZW1l
bnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGlzUGxhaW5UZXh0TWFya3VwKE5vZGUg
Km5vZGUpOwogCisgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBieSBIVE1MRWxlbWVudCAm
IFNoYWRvd1Jvb3QgdG8gcmVwbGFjZSB0aGUgY2hpbGRyZW4gd2l0aCByZXNwZWN0ZWQgZnJhZ21l
bnQvdGV4dC4KKyAgICB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJO
b2RlKiwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSosIGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFu
Z2UqLAogICAgICAgICBWZWN0b3I8Tm9kZSo+KiA9IDAsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdl
ID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGlu
ZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMpOwogICAgIFN0cmlu
ZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSosIEVDaGlsZHJlbk9ubHkgPSBJbmNsdWRlTm9kZSwg
VmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcyk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTA4NjA3KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
Niw4NCArMzQ2LDYgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogICAg
IHJldHVybiBjcmVhdGVNYXJrdXAodGhpcyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNP
bmVDaGlsZChDb250YWluZXJOb2RlKiBub2RlKQotewotICAgIE5vZGUqIGZpcnN0Q2hpbGQgPSBu
b2RlLT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGZpcnN0Q2hpbGQgJiYgIWZpcnN0Q2hpbGQt
Pm5leHRTaWJsaW5nKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVUZXh0Q2hpbGQo
Q29udGFpbmVyTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYg
bm9kZS0+Zmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGxh
Y2VDaGlsZHJlbldpdGhGcmFnbWVudChIVE1MRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0jaWYgRU5B
QkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0
aW9uKGVsZW1lbnQpOwotI2VuZGlmCi0KLSAgICBpZiAoIWZyYWdtZW50LT5maXJzdENoaWxkKCkp
IHsKLSAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVudCkgJiYgaGFzT25lVGV4dENo
aWxkKGZyYWdtZW50LmdldCgpKSkgewotICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGls
ZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSktPmRhdGEoKSwgZWMp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGhhc09uZUNoaWxkKGVsZW1lbnQp
KSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwgZWxlbWVudC0+Zmly
c3RDaGlsZCgpLCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBlbGVtZW50LT5y
ZW1vdmVDaGlsZHJlbigpOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7
Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KEhUTUxFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVO
QUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRh
dGlvbihlbGVtZW50KTsKLSNlbmRpZgotCi0gICAgaWYgKGhhc09uZVRleHRDaGlsZChlbGVtZW50
KSkgewotICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0ZXh0
LCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZWZQdHI8VGV4dD4gdGV4dE5v
ZGUgPSBUZXh0OjpjcmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7Ci0KLSAgICBpZiAo
aGFzT25lQ2hpbGQoZWxlbWVudCkpIHsKLSAgICAgICAgZWxlbWVudC0+cmVwbGFjZUNoaWxkKHRl
eHROb2RlLnJlbGVhc2UoKSwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGVsZW1l
bnQtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOwotfQotCi0vLyBXZSBtYXkg
d2FudCB0byBtb3ZlIGEgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGludG8gRG9jdW1lbnRGcmFn
bWVudC5oL2NwcAotc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJh
Z21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgbWFya3VwLCBFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29u
dGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50OwotCi0gICAgZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwotICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkgewotICAgICAgICBmcmFn
bWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4g
ZnJhZ21lbnQ7Ci0gICAgfQotCi0gICAgYm9vbCB3YXNWYWxpZCA9IGZyYWdtZW50LT5wYXJzZVhN
TChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICBpZiAoIXdhc1ZhbGlkKSB7Ci0gICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBy
ZXR1cm4gZnJhZ21lbnQ7Ci19Ci0KIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVySFRNTChjb25z
dCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShodG1sLCB0aGlz
LCBlYyk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDg2MDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wMi0yMyAgS2F1c3R1Ymgg
QXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBTaGFkb3dSb290
IG5lZWQgaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBpbm5lckhUTUwgYXR0cmlidXRlIGZvciBTaGFkb3dSb290LgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhU
TUwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6IEFkZGVkIHRo
ZSBzYW1lIGFzIFNoYWRvd1Jvb3QgaXQgc3VwcG9ydGVkIGJ5IENocm9taXVtIG9ubHkuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0
L1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOiBkaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOiBkaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS93azIvU2tpcHBlZDogZGl0dG8uCisKIDIwMTItMDItMjIgIFl1dGEgS2l0YW11cmEg
IDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEwODYwMi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1p
bm5lckhUTUwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMgdGhlIGlu
bmVySFRNTCBwcm9wZXJ0eSBvZiBhIHNoYWRvdyByb290LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworCitQQVNTICdpbm5lckhUTUwnIGluIGludGVybmFscy5zaGFkb3dSb290IGlz
IGZhbHNlCitQQVNTIHJvb3QuaW5uZXJIVE1MIGlzIGRlZmluZWQuCitQQVNTIHJvb3QuaW5uZXJI
VE1MIGlzICc8ZGl2IGlkPSJkaXYxIj48L2Rpdj48ZGl2IGlkPSJkaXYyIj48L2Rpdj4nCitQQVNT
IHJvb3QuaW5uZXJIVE1MIGlzICdIZWxsbycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+Cis8L2Rpdj4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEg
c2hhZG93IHJvb3QuIik7CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBkZWJ1ZygnVGhp
cyB0ZXN0IHJ1bnMgb24gRFJUIG9ubHknKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworaG9zdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChob3N0KTsKK3Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKwordmFyIGRpdjEg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RpdjEuc2V0QXR0cmlidXRlKCJpZCIs
ICJkaXYxIik7Cityb290LmFwcGVuZENoaWxkKGRpdjEpOworCit2YXIgZGl2MiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZGl2Mi5zZXRBdHRyaWJ1dGUoImlkIiwgImRpdjIiKTsK
K3Jvb3QuYXBwZW5kQ2hpbGQoZGl2Mik7CisKK3Nob3VsZEJlRmFsc2UoIidpbm5lckhUTUwnIGlu
IGludGVybmFscy5zaGFkb3dSb290Iik7CitzaG91bGRCZURlZmluZWQoInJvb3QuaW5uZXJIVE1M
Iik7CitzaG91bGRCZSgicm9vdC5pbm5lckhUTUwiLCAiJzxkaXYgaWQ9XCJkaXYxXCI+PC9kaXY+
PGRpdiBpZD1cImRpdjJcIj48L2Rpdj4nIik7CisKK3Jvb3QuaW5uZXJIVE1MID0gIkhlbGxvIjsK
K3Nob3VsZEJlKCJyb290LmlubmVySFRNTCIsICInSGVsbG8nIik7CisKK30KK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gMTA4NjA3KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw2ICszNjEsNyBA
QCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNo
ZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCitmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIAogIyBDU1MgUmVnaW9ucyBzdXBwb3J0
IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81NzMxMgogZmFzdC9yZWdpb25z
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gMTA4NjA3KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTQyNiw2ICs0
MjYsNyBAQCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
YXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCitmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIAogIyBKU0MgZG9lcyBub3Qg
c3VwcG9ydCBzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4gKGh0dHA6Ly93ZWJraXQub3Jn
L2IvNjE1NDApCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2lu
LXhoci5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDEwODYwNykK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE2
NSw2ICsxNjUsNyBAQCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1s
CitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIAogIyBDU1MgUmVn
aW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81NzMxMgog
ZmFzdC9yZWdpb25zCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gMTA4
NjA3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkK
QEAgLTE0NTgsNiArMTQ1OCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGku
aHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
bmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogCiAj
IENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0Lm9yZy9i
LzU3MzEyCiBmYXN0L3JlZ2lvbnMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tp
cHBlZAkocmV2aXNpb24gMTA4NjA3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8v
U2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTk2OSw2ICsxOTY5LDcgQEAgZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2Fi
bGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWlubmVySFRNTC5odG1sCiAKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3QgeWV0IGVuYWJs
ZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1NraXBwZWQJKHJldmlzaW9uIDEwODYwNykKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMDc4LDYgKzEwNzgsNyBAQCBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCitmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIAogIyBXVFIgbmVlZHMgYW4gaW1wbGVtZW50YXRp
b24gZm9yIGV2ZW50U2VuZGVyLmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5CiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQxNwo=
</data>
<flag name="review"
          id="130830"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="130831"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128662</attachid>
            <date>2012-02-23 23:15:01 -0800</date>
            <delta_ts>2012-02-28 06:50:27 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>78473_.patch</filename>
            <type>text/plain</type>
            <size>17737</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODczMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTIzICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnVybFRvTWFya3VwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZUNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNo
aWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMi0yMyAg
S2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBBZGQgSGFyZkJ1enpTaGFwZXJCYXNlIGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCShyZXZpc2lvbiAxMDg3MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJh
Z21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgpAQCAtMzYsNiArMzcsNyBA
QAogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0Lmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKIAogI2lmIEVOQUJM
RShTSEFET1dfRE9NKQogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTE0
Miw2ICsxNDQsMTggQEAgUGFzc1JlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGUoYgog
ICAgIHJldHVybiAwOwogfQogCitTdHJpbmcgU2hhZG93Um9vdDo6aW5uZXJIVE1MKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gY3JlYXRlTWFya3VwKHRoaXMsIENoaWxkcmVuT25seSk7Cit9CisKK3Zv
aWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYgbWFya3VwLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBj
cmVhdGVGcmFnbWVudEZyb21Tb3VyY2UobWFya3VwLCB0b0VsZW1lbnQodGhpcyksIGVjKTsKKyAg
ICBpZiAoZnJhZ21lbnQpCisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCh0aGlz
LCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKK30KKwogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5
cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHJldmlzaW9uIDEwODcyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDkgQEAg
cHVibGljOgogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVybiBzaGFkb3dIb3N0KCk7
IH0KICAgICBTaGFkb3dSb290TGlzdCogbGlzdCgpIGNvbnN0OwogCisgICAgU3RyaW5nIGlubmVy
SFRNTCgpIGNvbnN0OworICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXJTaGFkb3dSb290KCkgeyByZXR1
cm4gcHJldigpOyB9CiAgICAgU2hhZG93Um9vdCogb2xkZXJTaGFkb3dSb290KCkgeyByZXR1cm4g
bmV4dCgpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwJKHJldmlzaW9uIDEw
ODcyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMzMsNiArMzMsMTAgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25zdHJ1Y3RvclJh
aXNlc0V4Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OworCisgICAgICAgIGF0dHJpYnV0
ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAorICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAgICAgIEVsZW1lbnQgZ2V0RWxl
bWVudEJ5SWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVsZW1l
bnRJZCk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNzTmFtZSk7CiAgICAgICAgIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyB0YWdOYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJ
KHJldmlzaW9uIDEwODcyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0
b3IuaCIKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKKyNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmgiCiAjaW5jbHVkZSAiRGVsZXRl
QnV0dG9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudFR5cGUuaCIKQEAgLTk5MCw0ICs5OTEsODAgQEAgU3RyaW5nIHVybFRvTWFy
a3VwKGNvbnN0IEtVUkwmIHVybCwgY29ucwogICAgIHJldHVybiBtYXJrdXAudG9TdHJpbmcoKTsK
IH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3Vy
Y2UoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RWxlbWVudC0+
ZG9jdW1lbnQoKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1
bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAgaWYgKGRvY3VtZW50LT5pc0hU
TUxEb2N1bWVudCgpKSB7CisgICAgICAgIGZyYWdtZW50LT5wYXJzZUhUTUwobWFya3VwLCBjb250
ZXh0RWxlbWVudCk7CisgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBib29s
IHdhc1ZhbGlkID0gZnJhZ21lbnQtPnBhcnNlWE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQpOwor
ICAgIGlmICghd2FzVmFsaWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVDaGlsZChDb250YWluZXJOb2RlKiBub2RlKQor
eworICAgIE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7CisgICAgcmV0dXJu
IGZpcnN0Q2hpbGQgJiYgIWZpcnN0Q2hpbGQtPm5leHRTaWJsaW5nKCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBoYXNPbmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSogbm9kZSkKK3sKKyAgICBy
ZXR1cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYgbm9kZS0+Zmlyc3RDaGlsZCgpLT5pc1RleHROb2Rl
KCk7Cit9CisKK3ZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUq
IGNvbnRhaW5lck5vZGUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAg
Q2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKKyNlbmRpZgor
CisgICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgIGNvbnRhaW5lck5v
ZGUtPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
aGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVu
dC5nZXQoKSkpIHsKKyAgICAgICAgdG9UZXh0KGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSkt
PnNldERhdGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChoYXNPbmVDaGlsZChjb250YWluZXJOb2Rl
KSkgeworICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGNvbnRh
aW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY29udGFpbmVyTm9kZS0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBjb250YWluZXJOb2RlLT5h
cHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOworfQorCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhU
ZXh0KENvbnRhaW5lck5vZGUqIGNvbnRhaW5lck5vZGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAgICBD
aGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lck5vZGUpOworI2VuZGlmCisK
KyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpKSB7CisgICAgICAgIHRvVGV4
dChjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCkpLT5zZXREYXRhKHRleHQsIGVjKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IFRleHQ6OmNy
ZWF0ZShjb250YWluZXJOb2RlLT5kb2N1bWVudCgpLCB0ZXh0KTsKKworICAgIGlmIChoYXNPbmVD
aGlsZChjb250YWluZXJOb2RlKSkgeworICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hp
bGQodGV4dE5vZGUucmVsZWFzZSgpLCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxk
cmVuKCk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgp
LCBlYyk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAkocmV2aXNpb24gMTA4
NzI4KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBtYXJrdXBfaAogI2RlZmluZSBtYXJrdXBfaAogCisj
aW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJIVE1MSW50
ZXJjaGFuZ2UuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDcsOSArNDksMTQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3Jl
YXRlRnJhZ21lbnRGcm9tTWFya3VwKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21l
bnRTY3JpcHRpbmdBbGxvd2VkKTsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNy
ZWF0ZUZyYWdtZW50RnJvbU1hcmt1cFdpdGhDb250ZXh0KERvY3VtZW50KiwgY29uc3QgU3RyaW5n
JiBtYXJrdXAsIHVuc2lnbmVkIGZyYWdtZW50U3RhcnQsIHVuc2lnbmVkIGZyYWdtZW50RW5kLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Ob2RlcyhEb2N1
bWVudCosIGNvbnN0IFZlY3RvcjxOb2RlKj4mKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmLCBFbGVtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgYm9vbCBpc1BsYWluVGV4dE1hcmt1cChOb2RlICpub2Rl
KTsKIAorICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkgSFRNTEVsZW1lbnQgJiBTaGFk
b3dSb290IHRvIHJlcGxhY2UgdGhlIGNoaWxkcmVuIHdpdGggcmVzcGVjdGVkIGZyYWdtZW50L3Rl
eHQuCisgICAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSos
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KENvbnRhaW5lck5vZGUqLCBjb25zdCBTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJik7CisKICAgICBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiwK
ICAgICAgICAgVmVjdG9yPE5vZGUqPiogPSAwLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERv
Tm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0g
ZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzKTsKICAgICBTdHJpbmcgY3Jl
YXRlTWFya3VwKGNvbnN0IE5vZGUqLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3Rv
cjxOb2RlKj4qID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwODcyOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDMsODQg
KzM0Myw2IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QKICAgICByZXR1
cm4gY3JlYXRlTWFya3VwKHRoaXMpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lQ2hp
bGQoQ29udGFpbmVyTm9kZSogbm9kZSkKLXsKLSAgICBOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+
Zmlyc3RDaGlsZCgpOwotICAgIHJldHVybiBmaXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0
U2libGluZygpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRh
aW5lck5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUt
PmZpcnN0Q2hpbGQoKS0+aXNUZXh0Tm9kZSgpOwotfQotCi1zdGF0aWMgdm9pZCByZXBsYWNlQ2hp
bGRyZW5XaXRoRnJhZ21lbnQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihl
bGVtZW50KTsKLSNlbmRpZgotCi0gICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0g
ICAgICAgIGVsZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpICYmIGhhc09uZVRleHRDaGlsZChm
cmFnbWVudC5nZXQoKSkpIHsKLSAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSkt
PnNldERhdGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50KSkgewot
ICAgICAgICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGVsZW1lbnQtPmZpcnN0Q2hp
bGQoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZWxlbWVudC0+cmVtb3Zl
Q2hpbGRyZW4oKTsKLSAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwotfQot
Ci1zdGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSNpZiBFTkFCTEUo
TVVUQVRJT05fT0JTRVJWRVJTKQotICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24o
ZWxlbWVudCk7Ci0jZW5kaWYKLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVudCkpIHsK
LSAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEodGV4dCwgZWMp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0g
VGV4dDo6Y3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCksIHRleHQpOwotCi0gICAgaWYgKGhhc09u
ZUNoaWxkKGVsZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZCh0ZXh0Tm9k
ZS5yZWxlYXNlKCksIGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBlbGVtZW50LT5h
cHBlbmRDaGlsZCh0ZXh0Tm9kZS5yZWxlYXNlKCksIGVjKTsKLX0KLQotLy8gV2UgbWF5IHdhbnQg
dG8gbW92ZSBhIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpbnRvIERvY3VtZW50RnJhZ21lbnQu
aC9jcHAKLXN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50
RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRF
bGVtZW50LT5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dDsKLQotICAgIGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZnJhZ21lbnQt
PnBhcnNlSFRNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGZyYWdt
ZW50OwotICAgIH0KLQotICAgIGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFy
a3VwLCBjb250ZXh0RWxlbWVudCk7Ci0gICAgaWYgKCF3YXNWYWxpZCkgewotICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJu
IGZyYWdtZW50OwotfQotCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3Ry
aW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgdGhpcywgZWMp
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NzMzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDItMjMgIEthdXN0dWJoIEF0cmF3
YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2hhZG93Um9vdCBuZWVk
IGlubmVySFRNTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgaW5uZXJIVE1MIGF0dHJpYnV0ZSBmb3IgU2hhZG93Um9vdC4KKworICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBBZGRlZCB0ZXN0IGNh
c2UgaW4gU2tpcHBlZCBhcyBTaGFkb3dSb290IGlzIHN1cHBvcnRlZCBieSBDaHJvbWl1bSBvbmx5
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBkaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9Ta2lwcGVkOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDog
ZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZDogZGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6IGRpdHRvLgorCiAyMDEyLTAyLTIzICBLZW5pY2hp
IElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRpbmcgV2ViU29j
a2V0IHBlci1mcmFtZSBERUZMQVRFIGV4dGVuc2lvbgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
OCBAQAorVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJvb3Qu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgJ2lubmVySFRNTCcgaW4g
aW50ZXJuYWxzLnNoYWRvd1Jvb3QgaXMgZmFsc2UKK1BBU1Mgcm9vdC5pbm5lckhUTUwgaXMgZGVm
aW5lZC4KK1BBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJzxkaXYgaWQ9ImRpdjEiPjwvZGl2PjxkaXYg
aWQ9ImRpdjIiPjwvZGl2PicKK1BBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJ0hlbGxvJworUEFTUyBy
b290LmlubmVySFRNTCBpcyAnPHAgaWQ9InAzIj5IZWxsb1dvcmxkPC9wPicKK1BBU1Mgcm9vdC5m
aXJzdENoaWxkLm5vZGVOYW1lIGlzICdQJworUEFTUyByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rp
dicpIGlzIFtdCitQQVNTIHJvb3QuZ2V0RWxlbWVudEJ5SWQoJ3AzJykuaW5uZXJIVE1MIGlzICdI
ZWxsb1dvcmxkJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5l
ckhUTUwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj4KKzwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHRoZSBpbm5lckhUTUwgcHJvcGVydHkgb2YgYSBzaGFkb3cgcm9vdC4iKTsK
KworaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgIGRlYnVnKCdUaGlzIHRlc3QgcnVucyBvbiBE
UlQgb25seScpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitob3N0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOworcm9vdCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworCit2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworZGl2MS5zZXRBdHRyaWJ1dGUoImlkIiwgImRpdjEiKTsKK3Jvb3Qu
YXBwZW5kQ2hpbGQoZGl2MSk7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CitkaXYyLnNldEF0dHJpYnV0ZSgiaWQiLCAiZGl2MiIpOworcm9vdC5hcHBlbmRDaGls
ZChkaXYyKTsKKworc2hvdWxkQmVGYWxzZSgiJ2lubmVySFRNTCcgaW4gaW50ZXJuYWxzLnNoYWRv
d1Jvb3QiKTsKK3Nob3VsZEJlRGVmaW5lZCgicm9vdC5pbm5lckhUTUwiKTsKK3Nob3VsZEJlKCJy
b290LmlubmVySFRNTCIsICInPGRpdiBpZD1cImRpdjFcIj48L2Rpdj48ZGl2IGlkPVwiZGl2Mlwi
PjwvZGl2PiciKTsKKworcm9vdC5pbm5lckhUTUwgPSAiSGVsbG8iOworc2hvdWxkQmUoInJvb3Qu
aW5uZXJIVE1MIiwgIidIZWxsbyciKTsKKworcm9vdC5pbm5lckhUTUwgPSAiPHAgaWQ9XCJwM1wi
PkhlbGxvV29ybGQ8L3A+IjsKKworc2hvdWxkQmUoInJvb3QuaW5uZXJIVE1MIiwgIic8cCBpZD1c
InAzXCI+SGVsbG9Xb3JsZDwvcD4nIik7CitzaG91bGRCZSgicm9vdC5maXJzdENoaWxkLm5vZGVO
YW1lIiwgIidQJyIpOworc2hvdWxkQmUoInJvb3QucXVlcnlTZWxlY3RvckFsbCgnZGl2JykiLCAi
W10iKTsKK3Nob3VsZEJlKCJyb290LmdldEVsZW1lbnRCeUlkKCdwMycpLmlubmVySFRNTCIsICIn
SGVsbG9Xb3JsZCciKTsKKworfQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CShyZXZpc2lvbiAxMDg3MjgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMzYxLDYgKzM2MSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtbmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhU
TUwuaHRtbAogCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8v
d2Via2l0Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCShyZXZpc2lvbiAxMDg3MjgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAkod29ya2luZyBjb3B5KQpAQCAtNDI5LDYgKzQyOSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1p
bm5lckhUTUwuaHRtbAogCiAjIEpTQyBkb2VzIG5vdCBzdXBwb3J0IHNldElzb2xhdGVkV29ybGRT
ZWN1cml0eU9yaWdpbiAoaHR0cDovL3dlYmtpdC5vcmcvYi82MTU0MCkKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAkocmV2aXNpb24gMTA4NzI4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSw3IEBAIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNh
YmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1pbm5lckhUTUwuaHRtbAogCiAjIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFi
bGVkLiBodHRwOi8vd2Via2l0Lm9yZy9iLzU3MzEyCiBmYXN0L3JlZ2lvbnMKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCShyZXZpc2lvbiAxMDg3MjgpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTQ1OCw2ICsxNDU4LDcgQEAgZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRpc2FibGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbAorZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiAKICMgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBub3Qg
eWV0IGVuYWJsZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNTczMTIKIGZhc3QvcmVnaW9ucwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCShyZXZpc2lvbiAxMDg3MjgpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTY5LDYgKzE5NjksNyBAQCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5l
dy5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIAogIyBD
U1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81
NzMxMgogZmFzdC9yZWdpb25zCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBl
ZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNp
b24gMTA4NzI4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNzgsNiArMTA3OCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1q
cy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtbmV3Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRt
bAogCiAjIFdUUiBuZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZXZlbnRTZW5kZXIuY29udGlu
dW91c01vdXNlU2Nyb2xsQnkKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY5NDE3Cg==
</data>
<flag name="review"
          id="131112"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="131113"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129239</attachid>
            <date>2012-02-28 06:50:27 -0800</date>
            <delta_ts>2012-02-28 23:18:12 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>78743.patch</filename>
            <type>text/plain</type>
            <size>17695</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTEwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTI4ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnVybFRvTWFya3VwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZUNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNo
aWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMi0yOCAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzaG93IHJlc291cmNlIGRpdmlkZXJzIG9uIG1lbW9yeSBjb3VudGVyIGdyYXBocwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkocmV2aXNpb24gMTA5MDcwKQorKysgU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0
b3IuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNpbmNs
dWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJtYXJr
dXAuaCIKIAogI2lmIEVOQUJMRShTSEFET1dfRE9NKQogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKQEAgLTE0Miw2ICsxNDQsMTggQEAgUGFzc1JlZlB0cjxOb2RlPiBTaGFkb3dS
b290OjpjbG9uZU5vZGUoYgogICAgIHJldHVybiAwOwogfQogCitTdHJpbmcgU2hhZG93Um9vdDo6
aW5uZXJIVE1MKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlTWFya3VwKHRoaXMsIENoaWxk
cmVuT25seSk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmlu
ZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UobWFya3VwLCBob3N0KCks
IGVjKTsKKyAgICBpZiAoZnJhZ21lbnQpCisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFn
bWVudCh0aGlzLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKK30KKwogYm9vbCBTaGFkb3dSb290
OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0
eXBlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHJldmlzaW9uIDEwOTA3MCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYg
KzcyLDkgQEAgcHVibGljOgogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVybiBzaGFk
b3dIb3N0KCk7IH0KICAgICBTaGFkb3dUcmVlKiB0cmVlKCkgY29uc3Q7CiAKKyAgICBTdHJpbmcg
aW5uZXJIVE1MKCkgY29uc3Q7CisgICAgdm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOworCiAgICAgU2hhZG93Um9vdCogeW91bmdlclNoYWRvd1Jvb3QoKSBj
b25zdCB7IHJldHVybiBwcmV2KCk7IH0KICAgICBTaGFkb3dSb290KiBvbGRlclNoYWRvd1Jvb3Qo
KSBjb25zdCB7IHJldHVybiBuZXh0KCk7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbAkocmV2aXNpb24gMTA5MDcwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uCiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1l
bnRGcmFnbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CisK
KyAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5u
ZXJIVE1MCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAgICAg
ICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgZWxlbWVudElkKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY2xhc3NO
YW1lKTsKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ05hbWUpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcAkocmV2aXNpb24gMTA5MDcwKQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIK
ICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtOTkwLDQgKzk5MSw4MCBA
QCBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgS1VSTCYgdXJsLCBjb25zCiAgICAgcmV0dXJuIG1h
cmt1cC50b1N0cmluZygpOwogfQogCitQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0
ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IGNvbnRleHRFbGVtZW50LT5kb2N1bWVudCgpOworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisKKyAgICBp
ZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKKyAgICAgICAgZnJhZ21lbnQtPnBhcnNl
SFRNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50Owor
ICAgIH0KKworICAgIGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCBj
b250ZXh0RWxlbWVudCk7CisgICAgaWYgKCF3YXNWYWxpZCkgeworICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIGZyYWdt
ZW50LnJlbGVhc2UoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhhc09uZUNoaWxkKENvbnRh
aW5lck5vZGUqIG5vZGUpCit7CisgICAgTm9kZSogZmlyc3RDaGlsZCA9IG5vZGUtPmZpcnN0Q2hp
bGQoKTsKKyAgICByZXR1cm4gZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmco
KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhhc09uZVRleHRDaGlsZChDb250YWluZXJOb2Rl
KiBub2RlKQoreworICAgIHJldHVybiBoYXNPbmVDaGlsZChub2RlKSAmJiBub2RlLT5maXJzdENo
aWxkKCktPmlzVGV4dE5vZGUoKTsKK30KKwordm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21l
bnQoQ29udGFpbmVyTm9kZSogY29udGFpbmVyTm9kZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisjaWYgRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUykKKyAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5l
ck5vZGUpOworI2VuZGlmCisKKyAgICBpZiAoIWZyYWdtZW50LT5maXJzdENoaWxkKCkpIHsKKyAg
ICAgICAgY29udGFpbmVyTm9kZS0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25l
VGV4dENoaWxkKGZyYWdtZW50LmdldCgpKSkgeworICAgICAgICB0b1RleHQoY29udGFpbmVyTm9k
ZS0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkt
PmRhdGEoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGhhc09uZUNo
aWxkKGNvbnRhaW5lck5vZGUpKSB7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGls
ZChmcmFnbWVudCwgY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBjb250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOworICAg
IGNvbnRhaW5lck5vZGUtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7Cit9CisKK3ZvaWQgcmVw
bGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSogY29udGFpbmVyTm9kZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBFTkFCTEUoTVVUQVRJT05f
T0JTRVJWRVJTKQorICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29udGFpbmVy
Tm9kZSk7CisjZW5kaWYKKworICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkp
IHsKKyAgICAgICAgdG9UZXh0KGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEo
dGV4dCwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFRleHQ+IHRl
eHROb2RlID0gVGV4dDo6Y3JlYXRlKGNvbnRhaW5lck5vZGUtPmRvY3VtZW50KCksIHRleHQpOwor
CisgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7CisgICAgICAgIGNvbnRhaW5l
ck5vZGUtPnJlcGxhY2VDaGlsZCh0ZXh0Tm9kZS5yZWxlYXNlKCksIGNvbnRhaW5lck5vZGUtPmZp
cnN0Q2hpbGQoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29udGFpbmVy
Tm9kZS0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBjb250YWluZXJOb2RlLT5hcHBlbmRDaGlsZCh0
ZXh0Tm9kZS5yZWxlYXNlKCksIGVjKTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5oCShyZXZpc2lvbiAxMDkwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIG1hcmt1cF9oCiAjZGVm
aW5lIG1hcmt1cF9oCiAKKyNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgog
I2luY2x1ZGUgIkhUTUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBA
IC00Nyw5ICs0OSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRG9jdW1lbnQqLCBjb25zdCBT
dHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQoRG9jdW1l
bnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgdW5zaWduZWQgZnJhZ21lbnRTdGFydCwgdW5zaWdu
ZWQgZnJhZ21lbnRFbmQsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uKTsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdt
ZW50RnJvbU5vZGVzKERvY3VtZW50KiwgY29uc3QgVmVjdG9yPE5vZGUqPiYpOworICAgIFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0
cmluZyYsIEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGlzUGxhaW5UZXh0
TWFya3VwKE5vZGUgKm5vZGUpOwogCisgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBieSBI
VE1MRWxlbWVudCAmIFNoYWRvd1Jvb3QgdG8gcmVwbGFjZSB0aGUgY2hpbGRyZW4gd2l0aCByZXNw
ZWN0ZWQgZnJhZ21lbnQvdGV4dC4KKyAgICB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dChDb250YWluZXJOb2RlKiwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSos
IGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFN0cmluZyBjcmVhdGVNYXJr
dXAoY29uc3QgUmFuZ2UqLAogICAgICAgICBWZWN0b3I8Tm9kZSo+KiA9IDAsIEVBbm5vdGF0ZUZv
ckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBib29sIGNvbnZlcnRC
bG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMp
OwogICAgIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSosIEVDaGlsZHJlbk9ubHkgPSBJ
bmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNv
bHZlVVJMcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24g
MTA5MDcwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0Myw4NCArMzQzLDYgQEAgU3RyaW5nIEhUTUxFbGVtZW50OjpvdXRlckhUTUwo
KSBjb25zdAogICAgIHJldHVybiBjcmVhdGVNYXJrdXAodGhpcyk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCBoYXNPbmVDaGlsZChDb250YWluZXJOb2RlKiBub2RlKQotewotICAgIE5vZGUqIGZp
cnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGZpcnN0Q2hpbGQgJiYg
IWZpcnN0Q2hpbGQtPm5leHRTaWJsaW5nKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNP
bmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gaGFzT25lQ2hp
bGQobm9kZSkgJiYgbm9kZS0+Zmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7Ci19Ci0KLXN0YXRp
YyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChIVE1MRWxlbWVudCogZWxlbWVudCwg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBDaGlsZExpc3RNdXRhdGlv
blNjb3BlIG11dGF0aW9uKGVsZW1lbnQpOwotI2VuZGlmCi0KLSAgICBpZiAoIWZyYWdtZW50LT5m
aXJzdENoaWxkKCkpIHsKLSAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVudCkgJiYg
aGFzT25lVGV4dENoaWxkKGZyYWdtZW50LmdldCgpKSkgewotICAgICAgICB0b1RleHQoZWxlbWVu
dC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkt
PmRhdGEoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGhhc09uZUNo
aWxkKGVsZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwg
ZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKGZy
YWdtZW50LCBlYyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KEhU
TUxFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQotewotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0TXV0YXRp
b25TY29wZSBtdXRhdGlvbihlbGVtZW50KTsKLSNlbmRpZgotCi0gICAgaWYgKGhhc09uZVRleHRD
aGlsZChlbGVtZW50KSkgewotICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+
c2V0RGF0YSh0ZXh0LCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZWZQdHI8
VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgdGV4dCk7
Ci0KLSAgICBpZiAoaGFzT25lQ2hpbGQoZWxlbWVudCkpIHsKLSAgICAgICAgZWxlbWVudC0+cmVw
bGFjZUNoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigp
OwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOwotfQot
Ci0vLyBXZSBtYXkgd2FudCB0byBtb3ZlIGEgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGludG8g
RG9jdW1lbnRGcmFnbWVudC5oL2NwcAotc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgbWFya3VwLCBFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50OwotCi0gICAgZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwotICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkgewot
ICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQpOwotICAg
ICAgICByZXR1cm4gZnJhZ21lbnQ7Ci0gICAgfQotCi0gICAgYm9vbCB3YXNWYWxpZCA9IGZyYWdt
ZW50LT5wYXJzZVhNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICBpZiAoIXdhc1ZhbGlk
KSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLSAgICByZXR1cm4gZnJhZ21lbnQ7Ci19Ci0KIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElu
bmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJj
ZShodG1sLCB0aGlzLCBlYyk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDkxMDIpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wMi0y
OCAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBTaGFkb3dSb290IG5lZWQgaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBpbm5lckhUTUwgYXR0cmlidXRlIGZvciBTaGFk
b3dSb290LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1pbm5lckhUTUwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6IEFkZGVkIHRlc3QgY2FzZSBpbiBTa2lwcGVkIGFzIFNoYWRvd1Jvb3QgaXMgc3VwcG9ydGVk
IGJ5IENocm9taXVtIG9ubHkuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IGRpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9Ta2lwcGVkOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lw
cGVkOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDogZGl0dG8uCisKIDIw
MTItMDItMjggIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAg
ICAgICAgUmViYXNlbGluZSBHdGsgcmVzdWx0cyBhZnRlciByMTA5MDk3LgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlu
bmVySFRNTC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEg
c2hhZG93IHJvb3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgJ2lu
bmVySFRNTCcgaW4gaW50ZXJuYWxzLnNoYWRvd1Jvb3QgaXMgZmFsc2UKK1BBU1Mgcm9vdC5pbm5l
ckhUTUwgaXMgZGVmaW5lZC4KK1BBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJzxkaXYgaWQ9ImRpdjEi
PjwvZGl2PjxkaXYgaWQ9ImRpdjIiPjwvZGl2PicKK1BBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJ0hl
bGxvJworUEFTUyByb290LmlubmVySFRNTCBpcyAnPHAgaWQ9InAzIj5IZWxsb1dvcmxkPC9wPicK
K1BBU1Mgcm9vdC5maXJzdENoaWxkLm5vZGVOYW1lIGlzICdQJworUEFTUyByb290LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJ2RpdicpIGlzIFtdCitQQVNTIHJvb3QuZ2V0RWxlbWVudEJ5SWQoJ3AzJykuaW5u
ZXJIVE1MIGlzICdIZWxsb1dvcmxkJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1pbm5lckhUTUwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj4KKzwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBpbm5lckhUTUwgcHJvcGVydHkgb2YgYSBzaGFk
b3cgcm9vdC4iKTsKKworaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgIGRlYnVnKCdUaGlzIHRl
c3QgcnVucyBvbiBEUlQgb25seScpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitob3N0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhv
c3QpOworcm9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworCit2YXIgZGl2MSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZGl2MS5zZXRBdHRyaWJ1dGUoImlkIiwgImRp
djEiKTsKK3Jvb3QuYXBwZW5kQ2hpbGQoZGl2MSk7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CitkaXYyLnNldEF0dHJpYnV0ZSgiaWQiLCAiZGl2MiIpOworcm9v
dC5hcHBlbmRDaGlsZChkaXYyKTsKKworc2hvdWxkQmVGYWxzZSgiJ2lubmVySFRNTCcgaW4gaW50
ZXJuYWxzLnNoYWRvd1Jvb3QiKTsKK3Nob3VsZEJlRGVmaW5lZCgicm9vdC5pbm5lckhUTUwiKTsK
K3Nob3VsZEJlKCJyb290LmlubmVySFRNTCIsICInPGRpdiBpZD1cImRpdjFcIj48L2Rpdj48ZGl2
IGlkPVwiZGl2MlwiPjwvZGl2PiciKTsKKworcm9vdC5pbm5lckhUTUwgPSAiSGVsbG8iOworc2hv
dWxkQmUoInJvb3QuaW5uZXJIVE1MIiwgIidIZWxsbyciKTsKKworcm9vdC5pbm5lckhUTUwgPSAi
PHAgaWQ9XCJwM1wiPkhlbGxvV29ybGQ8L3A+IjsKKworc2hvdWxkQmUoInJvb3QuaW5uZXJIVE1M
IiwgIic8cCBpZD1cInAzXCI+SGVsbG9Xb3JsZDwvcD4nIik7CitzaG91bGRCZSgicm9vdC5maXJz
dENoaWxkLm5vZGVOYW1lIiwgIidQJyIpOworc2hvdWxkQmUoInJvb3QucXVlcnlTZWxlY3RvckFs
bCgnZGl2JykiLCAiW10iKTsKK3Nob3VsZEJlKCJyb290LmdldEVsZW1lbnRCeUlkKCdwMycpLmlu
bmVySFRNTCIsICInSGVsbG9Xb3JsZCciKTsKKworfQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCShyZXZpc2lvbiAxMDkwNzApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMzYwLDYgKzM2MCw3IEBAIGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS0KIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcu
aHRtbAogZmFzdC9kb20vc2hhZG93L2lmcmFtZS1zaGFkb3cuaHRtbAogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1vbi1pbWFnZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2
aXNpb24gMTA5MDcwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtp
bmcgY29weSkKQEAgLTQyOCw2ICs0MjgsNyBAQCBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYXR0YWNoZWQuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctdWwtbGkuaHRtbAogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJl
dmlzaW9uIDEwOTA3MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtp
bmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
anMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LW9uLWltYWdlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1hdHRhY2hlZC5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbAogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy11bC1saS5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShyZXZp
c2lvbiAxMDkwNzApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ1Nyw2ICsxNDU3LDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1vdXRzaWRlLQogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWF0dGFjaGVkLmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhU
TUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXVsLWxpLmh0bWwKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
Y2Fpcm8vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWly
by9Ta2lwcGVkCShyZXZpc2lvbiAxMDkwNzApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xOTY4LDYgKzE5NjgsNyBAQCBmYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAorZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
bmV3Lmh0bWwKIAogIyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDov
L3dlYmtpdC5vcmcvYi81NzMxMgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHJldmlz
aW9uIDEwOTA3MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDY4LDYgKzEwNjgsNyBAQCBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYXR0YWNoZWQuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctdWwtbGkuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129397</attachid>
            <date>2012-02-28 23:18:12 -0800</date>
            <delta_ts>2012-02-29 00:22:00 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>78743.patch</filename>
            <type>text/plain</type>
            <size>18881</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTE5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTI5ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnVybFRvTWFya3VwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZUNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNo
aWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMi0yOCAg
S2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHNpemUg
ZmllbGQgdG8gTWV0YWRhdGEgaW4gRmlsZVN5c3RlbSBBUEkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAJKHJldmlzaW9uIDEwOTE5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCkBAIC0zNiw2ICszNyw3
IEBACiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93VHJlZS5oIgog
I2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAibWFya3VwLmgiCiAKICNpZiBFTkFCTEUo
U0hBRE9XX0RPTSkKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC0xNDIs
NiArMTQ0LDE4IEBAIFBhc3NSZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlKGIKICAg
ICByZXR1cm4gMDsKIH0KIAorU3RyaW5nIFNoYWRvd1Jvb3Q6OmlubmVySFRNTCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGNyZWF0ZU1hcmt1cCh0aGlzLCBDaGlsZHJlbk9ubHkpOworfQorCit2b2lk
IFNoYWRvd1Jvb3Q6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKG1hcmt1cCwgaG9zdCgpLCBlYyk7CisgICAgaWYgKGZyYWdt
ZW50KQorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodGhpcywgZnJhZ21lbnQu
cmVsZWFzZSgpLCBlYyk7Cit9CisKIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChO
b2RlVHlwZSB0eXBlKSBjb25zdAogewogICAgIHN3aXRjaCAodHlwZSkgewpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCShyZXZpc2lvbiAxMDkxOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw5IEBAIHB1YmxpYzoKICAg
ICBFbGVtZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpOyB9CiAgICAgU2hh
ZG93VHJlZSogdHJlZSgpIGNvbnN0OwogCisgICAgU3RyaW5nIGlubmVySFRNTCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwog
ICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXJTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gcHJldigp
OyB9CiAgICAgU2hhZG93Um9vdCogb2xkZXJTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gbmV4
dCgpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwJKHJldmlzaW9uIDEwOTE5
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsMTAgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25zdHJ1Y3RvclJhaXNl
c0V4Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OworCisgICAgICAgIGF0dHJpYnV0ZSBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAorICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVu
dEJ5SWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVsZW1lbnRJ
ZCk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNzTmFtZSk7CiAgICAgICAgIE5vZGVM
aXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyB0YWdOYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJl
dmlzaW9uIDEwOTE5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3Iu
aCIKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIK
KyNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmgiCiAjaW5jbHVkZSAiRGVsZXRlQnV0
dG9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudFR5cGUuaCIKQEAgLTk5MCw0ICs5OTEsODAgQEAgU3RyaW5nIHVybFRvTWFya3Vw
KGNvbnN0IEtVUkwmIHVybCwgY29ucwogICAgIHJldHVybiBtYXJrdXAudG9TdHJpbmcoKTsKIH0K
IAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2Uo
Y29uc3QgU3RyaW5nJiBtYXJrdXAsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RWxlbWVudC0+ZG9j
dW1lbnQoKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVu
dEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAgaWYgKGRvY3VtZW50LT5pc0hUTUxE
b2N1bWVudCgpKSB7CisgICAgICAgIGZyYWdtZW50LT5wYXJzZUhUTUwobWFya3VwLCBjb250ZXh0
RWxlbWVudCk7CisgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBib29sIHdh
c1ZhbGlkID0gZnJhZ21lbnQtPnBhcnNlWE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQpOworICAg
IGlmICghd2FzVmFsaWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVDaGlsZChDb250YWluZXJOb2RlKiBub2RlKQorewor
ICAgIE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7CisgICAgcmV0dXJuIGZp
cnN0Q2hpbGQgJiYgIWZpcnN0Q2hpbGQtPm5leHRTaWJsaW5nKCk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBoYXNPbmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSogbm9kZSkKK3sKKyAgICByZXR1
cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYgbm9kZS0+Zmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7
Cit9CisKK3ZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUqIGNv
bnRhaW5lck5vZGUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgQ2hp
bGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKKyNlbmRpZgorCisg
ICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgIGNvbnRhaW5lck5vZGUt
PnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaGFz
T25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVudC5n
ZXQoKSkpIHsKKyAgICAgICAgdG9UZXh0KGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSktPnNl
dERhdGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChoYXNPbmVDaGlsZChjb250YWluZXJOb2RlKSkg
eworICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGNvbnRhaW5l
ck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Y29udGFpbmVyTm9kZS0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBjb250YWluZXJOb2RlLT5hcHBl
bmRDaGlsZChmcmFnbWVudCwgZWMpOworfQorCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0
KENvbnRhaW5lck5vZGUqIGNvbnRhaW5lck5vZGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAgICBDaGls
ZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lck5vZGUpOworI2VuZGlmCisKKyAg
ICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpKSB7CisgICAgICAgIHRvVGV4dChj
b250YWluZXJOb2RlLT5maXJzdENoaWxkKCkpLT5zZXREYXRhKHRleHQsIGVjKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IFRleHQ6OmNyZWF0
ZShjb250YWluZXJOb2RlLT5kb2N1bWVudCgpLCB0ZXh0KTsKKworICAgIGlmIChoYXNPbmVDaGls
ZChjb250YWluZXJOb2RlKSkgeworICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQo
dGV4dE5vZGUucmVsZWFzZSgpLCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVu
KCk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBl
Yyk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAkocmV2aXNpb24gMTA5MTk4
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsOCBAQAogI2lmbmRlZiBtYXJrdXBfaAogI2RlZmluZSBtYXJrdXBfaAogCisjaW5j
bHVkZSAiQ29udGFpbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJIVE1MSW50ZXJj
aGFuZ2UuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDcsOSArNDksMTQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
RnJhZ21lbnRGcm9tTWFya3VwKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIGNvbnN0
IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRT
Y3JpcHRpbmdBbGxvd2VkKTsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0
ZUZyYWdtZW50RnJvbU1hcmt1cFdpdGhDb250ZXh0KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBt
YXJrdXAsIHVuc2lnbmVkIGZyYWdtZW50U3RhcnQsIHVuc2lnbmVkIGZyYWdtZW50RW5kLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Ob2RlcyhEb2N1bWVu
dCosIGNvbnN0IFZlY3RvcjxOb2RlKj4mKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwogCiAgICAgYm9vbCBpc1BsYWluVGV4dE1hcmt1cChOb2RlICpub2RlKTsK
IAorICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkgSFRNTEVsZW1lbnQgJiBTaGFkb3dS
b290IHRvIHJlcGxhY2UgdGhlIGNoaWxkcmVuIHdpdGggcmVzcGVjdGVkIGZyYWdtZW50L3RleHQu
CisgICAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSosIFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJl
cGxhY2VDaGlsZHJlbldpdGhUZXh0KENvbnRhaW5lck5vZGUqLCBjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CisKICAgICBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiwKICAg
ICAgICAgVmVjdG9yPE5vZGUqPiogPSAwLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFs
c2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzKTsKICAgICBTdHJpbmcgY3JlYXRl
TWFya3VwKGNvbnN0IE5vZGUqLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxO
b2RlKj4qID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwOTE5OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDMsODQgKzM0
Myw2IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QKICAgICByZXR1cm4g
Y3JlYXRlTWFya3VwKHRoaXMpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lQ2hpbGQo
Q29udGFpbmVyTm9kZSogbm9kZSkKLXsKLSAgICBOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmly
c3RDaGlsZCgpOwotICAgIHJldHVybiBmaXJzdENoaWxkICYmICFmaXJzdENoaWxkLT5uZXh0U2li
bGluZygpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5l
ck5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUtPmZp
cnN0Q2hpbGQoKS0+aXNUZXh0Tm9kZSgpOwotfQotCi1zdGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRy
ZW5XaXRoRnJhZ21lbnQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShNVVRB
VElPTl9PQlNFUlZFUlMpCi0gICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihlbGVt
ZW50KTsKLSNlbmRpZgotCi0gICAgaWYgKCFmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAg
ICAgIGVsZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBpZiAoaGFzT25lVGV4dENoaWxkKGVsZW1lbnQpICYmIGhhc09uZVRleHRDaGlsZChmcmFn
bWVudC5nZXQoKSkpIHsKLSAgICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNl
dERhdGEodG9UZXh0KGZyYWdtZW50LT5maXJzdENoaWxkKCkpLT5kYXRhKCksIGVjKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVDaGlsZChlbGVtZW50KSkgewotICAg
ICAgICBlbGVtZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGVsZW1lbnQtPmZpcnN0Q2hpbGQo
KSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZWxlbWVudC0+cmVtb3ZlQ2hp
bGRyZW4oKTsKLSAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwotfQotCi1z
dGF0aWMgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChIVE1MRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSNpZiBFTkFCTEUoTVVU
QVRJT05fT0JTRVJWRVJTKQotICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oZWxl
bWVudCk7Ci0jZW5kaWYKLQotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoZWxlbWVudCkpIHsKLSAg
ICAgICAgdG9UZXh0KGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSktPnNldERhdGEodGV4dCwgZWMpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0gVGV4
dDo6Y3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCksIHRleHQpOwotCi0gICAgaWYgKGhhc09uZUNo
aWxkKGVsZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJlcGxhY2VDaGlsZCh0ZXh0Tm9kZS5y
ZWxlYXNlKCksIGVsZW1lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBlbGVtZW50LT5hcHBl
bmRDaGlsZCh0ZXh0Tm9kZS5yZWxlYXNlKCksIGVjKTsKLX0KLQotLy8gV2UgbWF5IHdhbnQgdG8g
bW92ZSBhIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpbnRvIERvY3VtZW50RnJhZ21lbnQuaC9j
cHAKLXN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRFbGVt
ZW50LT5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudDsK
LQotICAgIGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAg
ICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpIHsKLSAgICAgICAgZnJhZ21lbnQtPnBh
cnNlSFRNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50
OwotICAgIH0KLQotICAgIGJvb2wgd2FzVmFsaWQgPSBmcmFnbWVudC0+cGFyc2VYTUwobWFya3Vw
LCBjb250ZXh0RWxlbWVudCk7Ci0gICAgaWYgKCF3YXNWYWxpZCkgewotICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGZy
YWdtZW50OwotfQotCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5n
JiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgdGhpcywgZWMpOwpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTA5MTk4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDItMjkgIEthdXN0dWJoIEF0cmF3YWxr
YXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2hhZG93Um9vdCBuZWVkIGlu
bmVySFRNTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzg0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgaW5uZXJIVE1MIGF0dHJpYnV0ZSBmb3IgU2hhZG93Um9vdC4KKworICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IEFkZGVkIHRlc3QgY2FzZSBp
biBTa2lwcGVkIGFzIFNoYWRvd1Jvb3QgaXMgc3VwcG9ydGVkIGJ5IENocm9taXVtIG9ubHkuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Ta2lwcGVkOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVk
OiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDogZGl0dG8uCisKIDIwMTIt
MDItMjggIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBzaXplIGZpZWxkIHRvIE1ldGFkYXRhIGluIEZpbGVTeXN0ZW0gQVBJCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5u
ZXJIVE1MLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoZSBpbm5lckhUTUwgcHJvcGVydHkgb2YgYSBz
aGFkb3cgcm9vdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUyAnaW5u
ZXJIVE1MJyBpbiBpbnRlcm5hbHMuc2hhZG93Um9vdCBpcyBmYWxzZQorUEFTUyByb290LmlubmVy
SFRNTCBpcyBkZWZpbmVkLgorUEFTUyByb290LmlubmVySFRNTCBpcyAnPGRpdiBpZD0iZGl2MSI+
PC9kaXY+PGRpdiBpZD0iZGl2MiI+PC9kaXY+JworUEFTUyByb290LmlubmVySFRNTCBpcyAnSGVs
bG8nCitQQVNTIHJvb3QuaW5uZXJIVE1MIGlzICc8cCBpZD0icDMiPkhlbGxvV29ybGQ8L3A+Jwor
UEFTUyByb290LmZpcnN0Q2hpbGQubm9kZU5hbWUgaXMgJ1AnCitQQVNTIHJvb3QucXVlcnlTZWxl
Y3RvckFsbCgnZGl2JykgaXMgW10KK1BBU1Mgcm9vdC5nZXRFbGVtZW50QnlJZCgncDMnKS5pbm5l
ckhUTUwgaXMgJ0hlbGxvV29ybGQnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWlubmVySFRNTC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPgorPC9kaXY+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGlubmVySFRNTCBwcm9wZXJ0eSBvZiBhIHNoYWRv
dyByb290LiIpOworCitpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgZGVidWcoJ1RoaXMgdGVz
dCBydW5zIG9uIERSVCBvbmx5Jyk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2hvc3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9z
dCk7Cityb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisKK3ZhciBkaXYxID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CitkaXYxLnNldEF0dHJpYnV0ZSgiaWQiLCAiZGl2
MSIpOworcm9vdC5hcHBlbmRDaGlsZChkaXYxKTsKKwordmFyIGRpdjIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKK2RpdjIuc2V0QXR0cmlidXRlKCJpZCIsICJkaXYyIik7Cityb290
LmFwcGVuZENoaWxkKGRpdjIpOworCitzaG91bGRCZUZhbHNlKCInaW5uZXJIVE1MJyBpbiBpbnRl
cm5hbHMuc2hhZG93Um9vdCIpOworc2hvdWxkQmVEZWZpbmVkKCJyb290LmlubmVySFRNTCIpOwor
c2hvdWxkQmUoInJvb3QuaW5uZXJIVE1MIiwgIic8ZGl2IGlkPVwiZGl2MVwiPjwvZGl2PjxkaXYg
aWQ9XCJkaXYyXCI+PC9kaXY+JyIpOworCityb290LmlubmVySFRNTCA9ICJIZWxsbyI7CitzaG91
bGRCZSgicm9vdC5pbm5lckhUTUwiLCAiJ0hlbGxvJyIpOworCityb290LmlubmVySFRNTCA9ICI8
cCBpZD1cInAzXCI+SGVsbG9Xb3JsZDwvcD4iOworCitzaG91bGRCZSgicm9vdC5pbm5lckhUTUwi
LCAiJzxwIGlkPVwicDNcIj5IZWxsb1dvcmxkPC9wPiciKTsKK3Nob3VsZEJlKCJyb290LmZpcnN0
Q2hpbGQubm9kZU5hbWUiLCAiJ1AnIik7CitzaG91bGRCZSgicm9vdC5xdWVyeVNlbGVjdG9yQWxs
KCdkaXYnKSIsICJbXSIpOworc2hvdWxkQmUoInJvb3QuZ2V0RWxlbWVudEJ5SWQoJ3AzJykuaW5u
ZXJIVE1MIiwgIidIZWxsb1dvcmxkJyIpOworCit9Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQJKHJldmlzaW9uIDEwOTE5NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC00MjMsMTYgKzQyMyw3IEBAIGZhc3QvY3NzLWdy
aWQtbGF5b3V0CiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQKIAogIyBFTkFCTEUoU0hBRE9XX0RPTSkg
aXMgZGlzYWJsZWQuCi1mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWFwaS5odG1sCi1m
YXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93Lmh0bWwKLWZhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAotZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRpc2FibGUuaHRtbAotZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0
bWwKLWZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbAotZmFzdC9kb20vc2hhZG93
L3NoYWRvdy11bC1saS5odG1sCi1mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5o
dG1sCi1mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1yZW5kZXJpbmcuaHRtbAor
ZmFzdC9kb20vc2hhZG93CiAKICMgSlNDIGRvZXMgbm90IHN1cHBvcnQgc2V0SXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luIChodHRwOi8vd2Via2l0Lm9yZy9iLzYxNTQwKQogaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiAxMDkxOTcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksMTggKzE1OSw3IEBAIGZhc3QvY3Nz
LWdyaWQtbGF5b3V0CiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQKIAogIyBFTkFCTEUoU0hBRE9XX0RP
TSkgaXMgZGlzYWJsZWQuCi1mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWFwaS5odG1s
Ci1mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93Lmh0bWwKLWZh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAot
ZmFzdC9kb20vc2hhZG93L2lmcmFtZS1zaGFkb3cuaHRtbAotZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWpzLWFwaS5odG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAot
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1vbi1pbWFnZS5odG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtYXR0YWNoZWQuaHRtbAotZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5o
dG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXVsLWxpLmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9t
dWx0aXBsZS1zaGFkb3dyb290Lmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dy
b290LXJlbmRlcmluZy5odG1sCitmYXN0L2RvbS9zaGFkb3cKIAogIyBDU1MgUmVnaW9ucyBzdXBw
b3J0IG5vdCB5ZXQgZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81NzMxMgogZmFzdC9yZWdp
b25zCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gMTA5MTk3KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE0NDks
MTYgKzE0NDksNyBAQCBmYXN0L2Nzcy1ncmlkLWxheW91dAogZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
CiAKICMgRU5BQkxFKFNIQURPV19ET00pIGlzIGRpc2FibGVkLgotZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtZWxlbWVudC1hcGkuaHRtbAotZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1v
dXRzaWRlLXNoYWRvdy5odG1sCi1mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNp
ZGUtc2hhZG93LXN0eWxlLmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGku
aHRtbAotZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKLWZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
bmV3Lmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdWwtbGkuaHRtbAotZmFzdC9kb20vc2hh
ZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbAotZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNo
YWRvd3Jvb3QtcmVuZGVyaW5nLmh0bWwKK2Zhc3QvZG9tL3NoYWRvdwogCiAjIENTUyBSZWdpb25z
IHN1cHBvcnQgbm90IHlldCBlbmFibGVkLiBodHRwOi8vd2Via2l0Lm9yZy9iLzU3MzEyCiBmYXN0
L3JlZ2lvbnMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAkocmV2aXNp
b24gMTA5MTk3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAkod29y
a2luZyBjb3B5KQpAQCAtMTk2NCwxNCArMTk2NCw3IEBAIGZhc3QvY3NzLWdyaWQtbGF5b3V0CiBm
YXN0L2Nzcy9zdHlsZS1zY29wZWQKIAogIyBFTkFCTEUoU0hBRE9XX0RPTSkgaXMgZGlzYWJsZWQu
Ci1mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWFwaS5odG1sCi1mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93Lmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1qcy1hcGkuaHRtbAotZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0
bWwKLWZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCi1mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFk
b3dyb290Lmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRlcmlu
Zy5odG1sCitmYXN0L2RvbS9zaGFkb3cKIAogIyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQg
ZW5hYmxlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81NzMxMgogZmFzdC9yZWdpb25zCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNpb24gMTA5MTk3KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEwNjMsMTYgKzEwNjMsNyBA
QCBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRtbAogZmFzdC9kb20vc2hhZG93L2NyZWF0
ZS1jb250ZW50LWVsZW1lbnQuaHRtbAogCiAjIEVOQUJMRShTSEFET1dfRE9NKSBpcyBkaXNhYmxl
ZC4KLWZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwKLWZhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3cuaHRtbAotZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5odG1sCi1mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJs
ZS5odG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAotZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCi1mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXVs
LWxpLmh0bWwKLWZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwKLWZhc3Qv
ZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRlcmluZy5odG1sCitmYXN0L2RvbS9z
aGFkb3cKIAogIyBXVFIgbmVlZHMgYW4gaW1wbGVtZW50YXRpb24gZm9yIGV2ZW50U2VuZGVyLmNv
bnRpbnVvdXNNb3VzZVNjcm9sbEJ5CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02OTQxNwo=
</data>
<flag name="review"
          id="132093"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="132094"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129404</attachid>
            <date>2012-02-29 00:22:00 -0800</date>
            <delta_ts>2012-02-29 13:17:36 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>78743.patch</filename>
            <type>text/plain</type>
            <size>17611</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTIwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTI5ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3QgbmVlZCBpbm5lckhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgY29kZSBmb3Igc2hhcmluZyBjb21tb24gY29kZSBiZXR3ZWVuIEhU
TUxFbGVtZW50ICYgU2hhZG93Um9vdC4KKyAgICAgICAgSW1wbGVtZW50IGlubmVySFRNTCBhdHRy
aWJ1dGUgZm9yIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppbm5lckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnVybFRvTWFya3VwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc09uZUNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc09uZVRleHRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZUNo
aWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMi0yOCAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbUmVmYWN0b3Jp
bmddIFNoYWRvdyByZWxhdGVkIGF0dGFjaCBwYXRocyBzaG91bGQgYmUgaW4gU2hhZG93VHJlZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAJKHJldmlzaW9uIDEwOTIwMykKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVj
dG9yLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5j
bHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAibWFy
a3VwLmgiCiAKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCkBAIC0xNDIsNiArMTQ0LDE4IEBAIFBhc3NSZWZQdHI8Tm9kZT4gU2hhZG93
Um9vdDo6Y2xvbmVOb2RlKGIKICAgICByZXR1cm4gMDsKIH0KIAorU3RyaW5nIFNoYWRvd1Jvb3Q6
OmlubmVySFRNTCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNyZWF0ZU1hcmt1cCh0aGlzLCBDaGls
ZHJlbk9ubHkpOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnNldElubmVySFRNTChjb25zdCBTdHJp
bmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKG1hcmt1cCwgaG9zdCgp
LCBlYyk7CisgICAgaWYgKGZyYWdtZW50KQorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJh
Z21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7Cit9CisKIGJvb2wgU2hhZG93Um9v
dDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogewogICAgIHN3aXRjaCAo
dHlwZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCShyZXZpc2lvbiAxMDkyMDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2
ICs3MCw5IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4gc2hh
ZG93SG9zdCgpOyB9CiAgICAgU2hhZG93VHJlZSogdHJlZSgpIGNvbnN0OwogCisgICAgU3RyaW5n
IGlubmVySFRNTCgpIGNvbnN0OworICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXJTaGFkb3dSb290KCkg
Y29uc3QgeyByZXR1cm4gcHJldigpOyB9CiAgICAgU2hhZG93Um9vdCogb2xkZXJTaGFkb3dSb290
KCkgY29uc3QgeyByZXR1cm4gbmV4dCgpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5pZGwJKHJldmlzaW9uIDEwOTIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTAgQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3Vt
ZW50RnJhZ21lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0Owor
CisgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlu
bmVySFRNTAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAg
ICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlD
bGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNz
TmFtZSk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDEwOTIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTAgKzM5LDEyIEBACiAjaW5j
bHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUu
aCIKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRv
ci5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCkBAIC05
OTAsNCArOTkyLDgwIEBAIFN0cmluZyB1cmxUb01hcmt1cChjb25zdCBLVVJMJiB1cmwsIGNvbnMK
ICAgICByZXR1cm4gbWFya3VwLnRvU3RyaW5nKCk7CiB9CiAKK1Bhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgbWFya3VwLCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKworICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkgeworICAgICAgICBm
cmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQpOworICAgICAgICByZXR1
cm4gZnJhZ21lbnQ7CisgICAgfQorCisgICAgYm9vbCB3YXNWYWxpZCA9IGZyYWdtZW50LT5wYXJz
ZVhNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50KTsKKyAgICBpZiAoIXdhc1ZhbGlkKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAg
ICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaGFz
T25lQ2hpbGQoQ29udGFpbmVyTm9kZSogbm9kZSkKK3sKKyAgICBOb2RlKiBmaXJzdENoaWxkID0g
bm9kZS0+Zmlyc3RDaGlsZCgpOworICAgIHJldHVybiBmaXJzdENoaWxkICYmICFmaXJzdENoaWxk
LT5uZXh0U2libGluZygpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxk
KENvbnRhaW5lck5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYm
IG5vZGUtPmZpcnN0Q2hpbGQoKS0+aXNUZXh0Tm9kZSgpOworfQorCit2b2lkIHJlcGxhY2VDaGls
ZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlKiBjb250YWluZXJOb2RlLCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBF
TkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0
YXRpb24oY29udGFpbmVyTm9kZSk7CisjZW5kaWYKKworICAgIGlmICghZnJhZ21lbnQtPmZpcnN0
Q2hpbGQoKSkgeworICAgICAgICBjb250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGhhc09uZVRleHRDaGlsZChjb250YWluZXJO
b2RlKSAmJiBoYXNPbmVUZXh0Q2hpbGQoZnJhZ21lbnQuZ2V0KCkpKSB7CisgICAgICAgIHRvVGV4
dChjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCkpLT5zZXREYXRhKHRvVGV4dChmcmFnbWVudC0+
Zmlyc3RDaGlsZCgpKS0+ZGF0YSgpLCBlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKKyAgICAgICAgY29udGFpbmVyTm9k
ZS0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVj
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNo
aWxkcmVuKCk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsK
K30KKwordm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlKiBjb250YWlu
ZXJOb2RlLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworI2lmIEVO
QUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRh
dGlvbihjb250YWluZXJOb2RlKTsKKyNlbmRpZgorCisgICAgaWYgKGhhc09uZVRleHRDaGlsZChj
b250YWluZXJOb2RlKSkgeworICAgICAgICB0b1RleHQoY29udGFpbmVyTm9kZS0+Zmlyc3RDaGls
ZCgpKS0+c2V0RGF0YSh0ZXh0LCBlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBS
ZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoY29udGFpbmVyTm9kZS0+ZG9jdW1l
bnQoKSwgdGV4dCk7CisKKyAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKKyAg
ICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgY29u
dGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBjb250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOworICAgIGNvbnRhaW5lck5vZGUt
PmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWMpOworfQorCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmgJKHJldmlzaW9uIDEwOTIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCisgICAgY2xhc3MgQ29udGFpbmVyTm9kZTsKICAgICBjbGFzcyBEb2N1
bWVudDsKICAgICBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogICAgIGNsYXNzIEVsZW1lbnQ7CkBA
IC00MCw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBOb2RlOwogICAg
IGNsYXNzIFJhbmdlOwogCisgICAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKwogICAgIGVu
dW0gRUNoaWxkcmVuT25seSB7IEluY2x1ZGVOb2RlLCBDaGlsZHJlbk9ubHkgfTsKICAgICBlbnVt
IEVBYnNvbHV0ZVVSTHMgeyBEb05vdFJlc29sdmVVUkxzLCBSZXNvbHZlQWxsVVJMcywgUmVzb2x2
ZU5vbkxvY2FsVVJMcyB9OwogCkBAIC00Nyw5ICs1MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJr
dXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQp
OwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFy
a3VwV2l0aENvbnRleHQoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgdW5zaWduZWQg
ZnJhZ21lbnRTdGFydCwgdW5zaWduZWQgZnJhZ21lbnRFbmQsIGNvbnN0IFN0cmluZyYgYmFzZVVS
TCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU5vZGVzKERvY3VtZW50KiwgY29uc3QgVmVjdG9y
PE5vZGUqPiYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21l
bnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICBib29sIGlzUGxhaW5UZXh0TWFya3VwKE5vZGUgKm5vZGUpOwogCisgICAgLy8gVGhlc2Ug
bWV0aG9kcyBhcmUgdXNlZCBieSBIVE1MRWxlbWVudCAmIFNoYWRvd1Jvb3QgdG8gcmVwbGFjZSB0
aGUgY2hpbGRyZW4gd2l0aCByZXNwZWN0ZWQgZnJhZ21lbnQvdGV4dC4KKyAgICB2b2lkIHJlcGxh
Y2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlKiwgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0
aFRleHQoQ29udGFpbmVyTm9kZSosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwog
ICAgIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UqLAogICAgICAgICBWZWN0b3I8Tm9k
ZSo+KiA9IDAsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVy
Y2hhbmdlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJM
cyA9IERvTm90UmVzb2x2ZVVSTHMpOwogICAgIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9k
ZSosIEVDaGlsZHJlbk9ubHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJz
b2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAkocmV2aXNpb24gMTA5MjAzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Myw4NCArMzQzLDYgQEAgU3RyaW5nIEhU
TUxFbGVtZW50OjpvdXRlckhUTUwoKSBjb25zdAogICAgIHJldHVybiBjcmVhdGVNYXJrdXAodGhp
cyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVDaGlsZChDb250YWluZXJOb2RlKiBu
b2RlKQotewotICAgIE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7Ci0gICAg
cmV0dXJuIGZpcnN0Q2hpbGQgJiYgIWZpcnN0Q2hpbGQtPm5leHRTaWJsaW5nKCk7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSogbm9kZSkKLXsK
LSAgICByZXR1cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYgbm9kZS0+Zmlyc3RDaGlsZCgpLT5pc1Rl
eHROb2RlKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChI
VE1MRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
LSAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGVsZW1lbnQpOwotI2VuZGlmCi0K
LSAgICBpZiAoIWZyYWdtZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgZWxlbWVudC0+cmVt
b3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoYXNPbmVU
ZXh0Q2hpbGQoZWxlbWVudCkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50LmdldCgpKSkgewot
ICAgICAgICB0b1RleHQoZWxlbWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0b1RleHQoZnJh
Z21lbnQtPmZpcnN0Q2hpbGQoKSktPmRhdGEoKSwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaWYgKGhhc09uZUNoaWxkKGVsZW1lbnQpKSB7Ci0gICAgICAgIGVsZW1lbnQtPnJl
cGxhY2VDaGlsZChmcmFnbWVudCwgZWxlbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBlbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGVs
ZW1lbnQtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGxh
Y2VDaGlsZHJlbldpdGhUZXh0KEhUTUxFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHRl
eHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
Ci0gICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihlbGVtZW50KTsKLSNlbmRpZgot
Ci0gICAgaWYgKGhhc09uZVRleHRDaGlsZChlbGVtZW50KSkgewotICAgICAgICB0b1RleHQoZWxl
bWVudC0+Zmlyc3RDaGlsZCgpKS0+c2V0RGF0YSh0ZXh0LCBlYyk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBSZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoZWxlbWVu
dC0+ZG9jdW1lbnQoKSwgdGV4dCk7Ci0KLSAgICBpZiAoaGFzT25lQ2hpbGQoZWxlbWVudCkpIHsK
LSAgICAgICAgZWxlbWVudC0+cmVwbGFjZUNoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgZWxlbWVu
dC0+Zmlyc3RDaGlsZCgpLCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBlbGVt
ZW50LT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHROb2Rl
LnJlbGVhc2UoKSwgZWMpOwotfQotCi0vLyBXZSBtYXkgd2FudCB0byBtb3ZlIGEgdmVyc2lvbiBv
ZiB0aGlzIGZ1bmN0aW9uIGludG8gRG9jdW1lbnRGcmFnbWVudC5oL2NwcAotc3RhdGljIFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0
cmluZyYgbWFya3VwLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCk7
Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50OwotCi0gICAgZnJhZ21lbnQg
PSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGlmIChkb2N1bWVudC0+
aXNIVE1MRG9jdW1lbnQoKSkgewotICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwg
Y29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gZnJhZ21lbnQ7Ci0gICAgfQotCi0gICAg
Ym9vbCB3YXNWYWxpZCA9IGZyYWdtZW50LT5wYXJzZVhNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50
KTsKLSAgICBpZiAoIXdhc1ZhbGlkKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICByZXR1cm4gZnJhZ21lbnQ7Ci19Ci0KIHZv
aWQgSFRNTEVsZW1lbnQ6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNy
ZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShodG1sLCB0aGlzLCBlYyk7CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxMDkyMDMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wMi0yOSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1v
dG9yb2xhLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5lZWQgaW5uZXJIVE1MCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ3MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBpbm5lckhU
TUwgYXR0cmlidXRlIGZvciBTaGFkb3dSb290LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDogQWRkZWQgdGVzdCBjYXNlIGluIFNraXBwZWQgYXMgU2hh
ZG93Um9vdCBpcyBzdXBwb3J0ZWQgYnkgQ2hyb21pdW0gb25seS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2tpcHBlZDogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IGRp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6IGRpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBkaXR0by4KKwogMjAxMi0wMi0yOCAgQ3NhYmEgT3N6
dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBt
b3JuaW5nIGdhcmRlbmluZywgc2tpcCBuZXcgZmFpbGluZyB0ZXN0cy4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5l
ckhUTUwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdHMgdGhlIGlubmVySFRNTCBwcm9wZXJ0eSBvZiBhIHNo
YWRvdyByb290LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTICdpbm5l
ckhUTUwnIGluIGludGVybmFscy5zaGFkb3dSb290IGlzIGZhbHNlCitQQVNTIHJvb3QuaW5uZXJI
VE1MIGlzIGRlZmluZWQuCitQQVNTIHJvb3QuaW5uZXJIVE1MIGlzICc8ZGl2IGlkPSJkaXYxIj48
L2Rpdj48ZGl2IGlkPSJkaXYyIj48L2Rpdj4nCitQQVNTIHJvb3QuaW5uZXJIVE1MIGlzICdIZWxs
bycKK1BBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJzxwIGlkPSJwMyI+SGVsbG9Xb3JsZDwvcD4nCitQ
QVNTIHJvb3QuZmlyc3RDaGlsZC5ub2RlTmFtZSBpcyAnUCcKK1BBU1Mgcm9vdC5xdWVyeVNlbGVj
dG9yQWxsKCdkaXYnKSBpcyBbXQorUEFTUyByb290LmdldEVsZW1lbnRCeUlkKCdwMycpLmlubmVy
SFRNTCBpcyAnSGVsbG9Xb3JsZCcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtaW5uZXJIVE1MLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+Cis8L2Rpdj4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93
IHJvb3QuIik7CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0
IHJ1bnMgb24gRFJUIG9ubHknKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworaG9zdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0
KTsKK3Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKwordmFyIGRpdjEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RpdjEuc2V0QXR0cmlidXRlKCJpZCIsICJkaXYx
Iik7Cityb290LmFwcGVuZENoaWxkKGRpdjEpOworCit2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworZGl2Mi5zZXRBdHRyaWJ1dGUoImlkIiwgImRpdjIiKTsKK3Jvb3Qu
YXBwZW5kQ2hpbGQoZGl2Mik7CisKK3Nob3VsZEJlRmFsc2UoIidpbm5lckhUTUwnIGluIGludGVy
bmFscy5zaGFkb3dSb290Iik7CitzaG91bGRCZURlZmluZWQoInJvb3QuaW5uZXJIVE1MIik7Citz
aG91bGRCZSgicm9vdC5pbm5lckhUTUwiLCAiJzxkaXYgaWQ9XCJkaXYxXCI+PC9kaXY+PGRpdiBp
ZD1cImRpdjJcIj48L2Rpdj4nIik7CisKK3Jvb3QuaW5uZXJIVE1MID0gIkhlbGxvIjsKK3Nob3Vs
ZEJlKCJyb290LmlubmVySFRNTCIsICInSGVsbG8nIik7CisKK3Jvb3QuaW5uZXJIVE1MID0gIjxw
IGlkPVwicDNcIj5IZWxsb1dvcmxkPC9wPiI7CisKK3Nob3VsZEJlKCJyb290LmlubmVySFRNTCIs
ICInPHAgaWQ9XCJwM1wiPkhlbGxvV29ybGQ8L3A+JyIpOworc2hvdWxkQmUoInJvb3QuZmlyc3RD
aGlsZC5ub2RlTmFtZSIsICInUCciKTsKK3Nob3VsZEJlKCJyb290LnF1ZXJ5U2VsZWN0b3JBbGwo
J2RpdicpIiwgIltdIik7CitzaG91bGRCZSgicm9vdC5nZXRFbGVtZW50QnlJZCgncDMnKS5pbm5l
ckhUTUwiLCAiJ0hlbGxvV29ybGQnIik7CisKK30KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZAkocmV2aXNpb24gMTA5MjAzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTQyOSw2ICs0MjksNyBAQCBmYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
anMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdWwtbGkuaHRtbAogZmFzdC9kb20vc2hhZG93L211
bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZp
c2lvbiAxMDkyMDMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzAsNiArMTcwLDcgQEAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpz
LWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1vbi1pbWFnZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
YXR0YWNoZWQuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1s
CiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctdWwtbGkuaHRtbAogZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRt
bApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDEwOTIwMykKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNDU1LDYg
KzE0NTUsNyBAQCBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtCiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRt
bAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdWwtbGku
aHRtbAogZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCShyZXZpc2lvbiAxMDkyMDMpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xOTY5
LDYgKzE5NjksNyBAQCBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtCiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZGlzYWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQu
aHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1z
aGFkb3dyb290Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRl
cmluZy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNpb24gMTA5MjAz
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAg
LTEwNjksNiArMTA2OSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lk
ZS0KIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRh
Y2hlZC5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy11bC1saS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>