<?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>117265</bug_id>
          
          <creation_ts>2013-06-05 11:20:12 -0700</creation_ts>
          <short_desc>Spatial Navigation should avoid unwanted calculation while deciding focus candidate.</short_desc>
          <delta_ts>2013-08-05 06:08:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Abhijeet Kandalkar">kandalkar.abhijeet58</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kandalkar.abhijeet58</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>897483</commentid>
    <comment_count>0</comment_count>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-06-05 11:20:12 -0700</bug_when>
    <thetext>Spatial Navigation should consider only those nodes as candidate which are exactly in the focus-direction.
e.g. If we are moving down then the nodes that are above CURRENT focused node should be considered as invalid.

           1
      5          4

 Left      2       Right


           3

If &apos;2&apos; is a current focused node and focus direction is DOWN, then &apos;1&apos;,&apos;5&apos;,&apos;4&apos; should be consider as invalid since they are above(UP) the &apos;2&apos;.

Current implementation, first consider &apos;1&apos;, calculate all offsets and data needed to decide best candidate and then discard it.Similar procedure for &apos;4&apos; and &apos;5&apos;.It is better to discard them in first stage so that we can save extra calculation needed to determine best candidate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897485</commentid>
    <comment_count>1</comment_count>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-06-05 11:22:50 -0700</bug_when>
    <thetext>Working on current optimization and will update fix soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897650</commentid>
    <comment_count>2</comment_count>
      <attachid>203905</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-06-05 22:57:09 -0700</bug_when>
    <thetext>Created attachment 203905
117265.patch 

Spatial Navigation should consider only those nodes as candidate which are exactly in the focus-direction.
e.g. If we are moving down then the nodes that are above CURRENT focused node should be considered as invalid.
Added isValidCandidate() which checks whether node is exactly in the focus-direction,if it is not it start iteration
with next node and avoid extra calculation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897750</commentid>
    <comment_count>3</comment_count>
      <attachid>203905</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-06-06 06:40:47 -0700</bug_when>
    <thetext>Comment on attachment 203905
117265.patch 

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

we can test it with &quot;Internals&quot; interface: for example, as per target calculation, expose a counter that holds how many target nodes were tested before having a final target.

&gt; page/SpatialNavigation.cpp:630
&gt; +            result = true;

just return true right way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897752</commentid>
    <comment_count>4</comment_count>
      <attachid>203905</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-06-06 06:42:25 -0700</bug_when>
    <thetext>Comment on attachment 203905
117265.patch 

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

&gt; ChangeLog:12
&gt; +        Changes added is only optimization to the logic of searching best focused candidate node.All existing layout test case

Nit: Changes added *are* only *optimizations*. Space before &quot;All&quot;

&gt; ChangeLog:13
&gt; +        are working fine with this change.So, no need to add extra layout test.

Nit: space before &quot;So&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898589</commentid>
    <comment_count>5</comment_count>
      <attachid>204146</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-06-10 02:37:09 -0700</bug_when>
    <thetext>Created attachment 204146
Updated patch

Added changes as per comments given by Antonio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898590</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-10 02:38:22 -0700</bug_when>
    <thetext>Attachment 204146 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/spatial-navigation/snav-search-optimization-expected.txt&apos;, u&apos;LayoutTests/fast/spatial-navigation/snav-search-optimization.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/page/FocusController.cpp&apos;, u&apos;Source/WebCore/page/FocusController.h&apos;, u&apos;Source/WebCore/page/SpatialNavigation.cpp&apos;, u&apos;Source/WebCore/page/SpatialNavigation.h&apos;, u&apos;Source/WebCore/testing/Internals.cpp&apos;, u&apos;Source/WebCore/testing/Internals.h&apos;, u&apos;Source/WebCore/testing/Internals.idl&apos;]&quot; exit_code: 1
Source/WebCore/testing/Internals.h:97:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebCore/page/SpatialNavigation.h:145:  The parameter name &quot;candidate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 11 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>898600</commentid>
    <comment_count>7</comment_count>
      <attachid>204149</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-06-10 03:30:22 -0700</bug_when>
    <thetext>Created attachment 204149
Updated patch-1

Added changes as per comments given by Antonio and fixed webkit coding style checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898631</commentid>
    <comment_count>8</comment_count>
      <attachid>204149</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-06-10 06:25:15 -0700</bug_when>
    <thetext>Comment on attachment 204149
Updated patch-1

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

&gt; LayoutTests/fast/spatial-navigation/snav-search-optimization.html:6
&gt; +    1) DRT support for SNav enable/disable.

DRT = TestRunner now

&gt; LayoutTests/fast/spatial-navigation/snav-search-optimization.html:38
&gt; +        shouldBe(&quot;internals.numberOfProcessedNodes(document)&quot;, &quot;4&quot;);         //current focused node is 5 and navigation direction is DOWN

I think you should also test that the currently focused node is &apos;5&apos;. Same the the below checks...

&gt; Source/WebCore/testing/Internals.cpp:393
&gt; +unsigned Internals::numberOfProcessedNodes(Document* document, ExceptionCode&amp; ec) const
&gt; +{

since you are passing a &quot;document&quot; you should also have a test involving inner frame.

Specially becaused an inner frame&apos;s focusController is different from its parents.

&gt; Source/WebCore/testing/Internals.h:98
&gt; +    unsigned numberOfProcessedNodes(Document*, ExceptionCode&amp;) const;

It is a way too generic name. r- due to that.

Who is reading this code &quot;focusController-&gt;numberOfProcessedNodes&quot; will never imagine it is related to Spatial Nav.

maybe lastSpatialNavigationCandidatesCount or something like this.

&gt; Source/WebCore/page/SpatialNavigation.cpp:630
&gt; +            result = true;

return true directly here. Same for the other clauses below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907135</commentid>
    <comment_count>9</comment_count>
      <attachid>206329</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-07-09 09:17:08 -0700</bug_when>
    <thetext>Created attachment 206329
Updated patch-2

Updated changes as per comments given by Antonio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912379</commentid>
    <comment_count>10</comment_count>
      <attachid>206329</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-07-28 21:22:31 -0700</bug_when>
    <thetext>Comment on attachment 206329
Updated patch-2

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

Almost there... r- for now.

&gt; LayoutTests/fast/spatial-navigation/snav-search-optimization.html:3
&gt; +    This test ensures the optimization done in seaching logic to find best candidate focusable node with minimum iterations.

seaRching

&gt; LayoutTests/fast/spatial-navigation/snav-search-optimization.html:52
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;9&quot;); // Focused node is 2 and navigation direction is DOWN. Only 1,3,4,5,6,7,8,9,iframe are considered as valid candidate.
&gt; +        eventSender.keyDown(&quot;downArrow&quot;);
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;6&quot;); // Focused node is 5 and navigation direction is DOWN. Only 4,6,7,8,9,iframe are considered as valid candidate.
&gt; +        eventSender.keyDown(&quot;downArrow&quot;);
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;2&quot;); // Focused node is 8 and navigation direction is DOWN. Only 7,9 are considered as valid candidate.
&gt; +        eventSender.keyDown(&quot;rightArrow&quot;);
&gt; +        eventSender.keyDown(&quot;upArrow&quot;);
&gt; +        eventSender.keyDown(&quot;leftArrow&quot;);
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;9&quot;); // Focused node is 6 and navigation direction is LEFT. Only 1,2,3,4,5,7,8,9,iframe are considered as valid candidate.
&gt; +        eventSender.keyDown(&quot;leftArrow&quot;);
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;6&quot;); // Focused node is 5 and navigation direction is LEFT. Only 1,2,4,7,8,iframe are considered as valid candidate.
&gt; +        eventSender.keyDown(&quot;leftArrow&quot;);
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;2&quot;); // Focused node is 4 and navigation direction is LEFT. Only 1,7 are considered as valid candidate.
&gt; +        eventSender.keyDown(&quot;upArrow&quot;);
&gt; +        shouldBe(&quot;internals.lastSpatialNavigationCandidateCount()&quot;, &quot;5&quot;); // Focused node is 4 and navigation direction is UP. Only 1,2,3,iframe,6 are considered as valid candidate.

I am not sure if these comments are valid. I would omit them.

Additionally, why should the iframe itself be considered a focus candidate?

&gt; Source/WebCore/page/FocusController.cpp:794
&gt; +    if (focusedFrame() &amp;&amp; focusedFrame()-&gt;document()) {
&gt; +        candidateCount += focusedFrame()-&gt;document()-&gt;page()-&gt;lastSpatialNavigationCandidateCount();
&gt; +        focusedFrame()-&gt;document()-&gt;page()-&gt;setLastSpatialNavigationCandidateCount(candidateCount);
&gt; +    }

could you explain this block? maybe a comment in the code..

&gt; Source/WebCore/page/Page.h:547
&gt; +    unsigned m_lastSpatialNavigationCandidatesCount;

please add a comment like

// NOTE: Only called from Internals for testing.

&gt; Source/WebCore/page/SpatialNavigation.cpp:628
&gt; +        if (candidateRect.x() &lt; currentRect.maxX())

return candidateRect.x() &lt; currentRect.maxX();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914021</commentid>
    <comment_count>11</comment_count>
      <attachid>207984</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-01 23:18:56 -0700</bug_when>
    <thetext>Created attachment 207984
Updated patch-3

Additionally, why should the iframe itself be considered a focus candidate?

1. node-&gt;isKeyboardFocusable(event) if node is IFrame returns true.
2. If we have Iframes in html page then Navigation alogorithm considers it as focusable element.

    if (HTMLFrameOwnerElement* frameElement = frameOwnerElement(focusCandidate)) {
       // consider Iframe as container and search best candidate node in Iframe(container). 
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914091</commentid>
    <comment_count>12</comment_count>
      <attachid>208002</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-02 04:26:44 -0700</bug_when>
    <thetext>Created attachment 208002
Updated patch-4

Please refer latest &quot;Updated patch-4&quot; changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914563</commentid>
    <comment_count>13</comment_count>
      <attachid>208002</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-05 06:08:06 -0700</bug_when>
    <thetext>Comment on attachment 208002
Updated patch-4

Clearing flags on attachment: 208002

Committed r153704: &lt;http://trac.webkit.org/changeset/153704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914564</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-05 06:08:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203905</attachid>
            <date>2013-06-05 22:57:09 -0700</date>
            <delta_ts>2013-06-10 03:30:22 -0700</delta_ts>
            <desc>117265.patch </desc>
            <filename>117265.diff</filename>
            <type>text/plain</type>
            <size>3988</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTI2
MCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEzLTA2
LTA2ICBBYmhpamVldCBLYW5kYWxrYXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAg
ICAgIFNwYXRpYWwgTmF2aWdhdGlvbiBzaG91bGQgYXZvaWQgdW53YW50ZWQgY2FsY3VsYXRpb24g
d2hpbGUgZGVjaWRpbmcgZm9jdXMgY2FuZGlkYXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIHNob3VsZCBjb25zaWRl
ciBvbmx5IHRob3NlIG5vZGVzIGFzIGNhbmRpZGF0ZSB3aGljaCBhcmUgZXhhY3RseSBpbiB0aGUg
Zm9jdXMtZGlyZWN0aW9uLgorICAgICAgICBlLmcuIElmIHdlIGFyZSBtb3ZpbmcgZG93biB0aGVu
IHRoZSBub2RlcyB0aGF0IGFyZSBhYm92ZSBDVVJSRU5UIGZvY3VzZWQgbm9kZSBzaG91bGQgYmUg
Y29uc2lkZXJlZCBhcyBpbnZhbGlkLgorICAgICAgICBBZGRlZCBpc1ZhbGlkQ2FuZGlkYXRlKCkg
d2hpY2ggY2hlY2tzIHdoZXRoZXIgbm9kZSBpcyBleGFjdGx5IGluIHRoZSBmb2N1cy1kaXJlY3Rp
b24uCisKKyAgICAgICAgQ2hhbmdlcyBhZGRlZCBpcyBvbmx5IG9wdGltaXphdGlvbiB0byB0aGUg
bG9naWMgb2Ygc2VhcmNoaW5nIGJlc3QgZm9jdXNlZCBjYW5kaWRhdGUgbm9kZS5BbGwgZXhpc3Rp
bmcgbGF5b3V0IHRlc3QgY2FzZQorICAgICAgICBhcmUgd29ya2luZyBmaW5lIHdpdGggdGhpcyBj
aGFuZ2UuU28sIG5vIG5lZWQgdG8gYWRkIGV4dHJhIGxheW91dCB0ZXN0LgorCisgICAgICAgICog
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyOjpmaW5kRm9jdXNDYW5kaWRhdGVJbkNvbnRhaW5lcik6CisgICAgICAgICogcGFnZS9TcGF0
aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ2FuZGlkYXRlKToK
KyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmg6CisKIDIwMTMtMDYtMDUgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IHRoZSBzZWNvbmQg
aGFsZiBvZiByMTUxMjU3LiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZSBjYW4gcmV0dXJu
IG51bGwuCkluZGV4OiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5oCShyZXZpc2lvbiAxNTEyNTEpCisrKyBwYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsNyBAQAogYm9vbCBjYW5T
Y3JvbGxJbkRpcmVjdGlvbihjb25zdCBGcmFtZSosIEZvY3VzRGlyZWN0aW9uKTsKIGJvb2wgY2Fu
QmVTY3JvbGxlZEludG9WaWV3KEZvY3VzRGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYp
OwogYm9vbCBhcmVFbGVtZW50c09uU2FtZUxpbmUoY29uc3QgRm9jdXNDYW5kaWRhdGUmIGZpcnN0
Q2FuZGlkYXRlLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgc2Vjb25kQ2FuZGlkYXRlKTsKK2Jvb2wg
aXNWYWxpZENhbmRpZGF0ZShGb2N1c0RpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUmIGN1
cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpOwogdm9pZCBkaXN0YW5jZURhdGFGb3JO
b2RlKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3VycmVudCwgRm9jdXND
YW5kaWRhdGUmIGNhbmRpZGF0ZSk7CiBOb2RlKiBzY3JvbGxhYmxlRW5jbG9zaW5nQm94T3JQYXJl
bnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiwgTm9kZSopOwogTGF5b3V0
UmVjdCBub2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyhOb2RlKiwgYm9vbCBpZ25vcmVCb3Jk
ZXIgPSBmYWxzZSk7CkluZGV4OiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNTEyNTEpCisrKyBwYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3Nyw2ICs3NzcsOSBAQAogICAg
ICAgICBpZiAoY2FuZGlkYXRlLmlzTnVsbCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAg
ICAgICAgaWYgKCFpc1ZhbGlkQ2FuZGlkYXRlKGRpcmVjdGlvbiwgY3VycmVudCwgY2FuZGlkYXRl
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgIGNhbmRpZGF0ZS5lbmNsb3NpbmdT
Y3JvbGxhYmxlQm94ID0gY29udGFpbmVyOwogICAgICAgICB1cGRhdGVGb2N1c0NhbmRpZGF0ZUlm
TmVlZGVkKGRpcmVjdGlvbiwgY3VycmVudCwgY2FuZGlkYXRlLCBjbG9zZXN0KTsKICAgICB9Cklu
ZGV4OiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL1NwYXRp
YWxOYXZpZ2F0aW9uLmNwcAkocmV2aXNpb24gMTUxMjUxKQorKysgcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxOCw2ICs2MTgsMzUgQEAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorLyogQ29uc2lkZXIgb25seSB0aG9zZSBub2RlcyBhcyBjYW5kaWRhdGUgd2hp
Y2ggYXJlIGV4YWN0bHkgaW4gdGhlIGZvY3VzLWRpcmVjdGlvbi4KK2UuZy4gSWYgd2UgYXJlIG1v
dmluZyBkb3duIHRoZW4gdGhlIG5vZGVzIHRoYXQgYXJlIGFib3ZlIGN1cnJlbnQgZm9jdXNlZCBu
b2RlIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGludmFsaWQuICovCitib29sIGlzVmFsaWRDYW5k
aWRhdGUoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3Vy
cmVudCwgRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0ZSkKK3sKKyAgICBib29sIHJlc3VsdCA9IGZh
bHNlOworCisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
TGVmdDoKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5yZWN0LngoKSA8PSBjdXJyZW50LnJlY3QubWF4
WCgpKQorICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICBpZiAoY2FuZGlkYXRlLnJlY3QueSgpIDw9IGN1
cnJlbnQucmVjdC5tYXhZKCkpCisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIGlmIChjYW5kaWRh
dGUucmVjdC5tYXhYKCkgPj0gY3VycmVudC5yZWN0LngoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAg
ICAgICBpZiAoY2FuZGlkYXRlLnJlY3QubWF4WSgpID49IGN1cnJlbnQucmVjdC55KCkpCisgICAg
ICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
Kwogdm9pZCBkaXN0YW5jZURhdGFGb3JOb2RlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29u
c3QgRm9jdXNDYW5kaWRhdGUmIGN1cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCiB7
CiAgICAgaWYgKGFyZUVsZW1lbnRzT25TYW1lTGluZShjdXJyZW50LCBjYW5kaWRhdGUpKSB7Cg==
</data>
<flag name="review"
          id="225366"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
    <flag name="commit-queue"
          id="225367"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204146</attachid>
            <date>2013-06-10 02:37:09 -0700</date>
            <delta_ts>2013-06-10 03:30:22 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>117265.diff</filename>
            <type>text/plain</type>
            <size>13351</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9w
dGltaXphdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
c2VhcmNoLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTAgQEAKKzIJCis0CTUJNgorOAkKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9k
ZXMoZG9jdW1lbnQpIGlzIDQKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMo
ZG9jdW1lbnQpIGlzIDMKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9j
dW1lbnQpIGlzIDAKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1l
bnQpIGlzIDMKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQp
IGlzIDMKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIGlz
IDAKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFy
Y2gtb3B0aW1pemF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRp
bWl6YXRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OSBAQAorPGh0bWw+CisgIDwh
LS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgb3B0aW1pemF0aW9uIGRvbmUgaW4gc2VhY2hp
bmcgbG9naWMgdG8gZmluZCBiZXN0IGNhbmRpZGF0ZSBmb2N1c2FibGUgbm9kZSB3aXRoIG1pbmlt
dW0gaXRlcmF0aW9ucy4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBv
cnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6Cisg
ICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIuCisgICAgMikgbnVt
YmVyT2ZQcm9jZXNzZWROb2RlcygpIHJldHVybnMgdGhlIG51bWJlciBvZiBub2RlcyBhY3R1YWxs
eSBjb25zaWRlcmVkIHRvIGRldGVybWluZSBiZXN0IGNhbmRpZGF0ZSBmb2N1c2FibGUgbm9kZS4K
KyAgICAgICBhbG9uZyB0aGUgbW9zdCByZWNlbnQgbmF2aWdhdGlvbiBkaXJlY3Rpb24uIAorICAt
LT4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3BhdGlhbC1uYXZpZ2F0
aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIHJlc3VsdE1hcCA9IFsKKyAgICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAg
eworICAgICAgICBpbml0VGVzdChyZXN1bHRNYXAsIGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhZGRpdGlvbmFsVGVzdCgpCisgICAgeworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiMiIpLmZvY3VzKCk7ICAgICAgICAgLy9jdXJyZW50IGZvY3VzZWQgbm9k
ZSBpcyAyIGFuZCBuYXZpZ2F0aW9uIGRpcmVjdGlvbiBpcyBET1dOCisgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51
bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwgIjQiKTsgICAgICAgICAvL2N1cnJlbnQg
Zm9jdXNlZCBub2RlIGlzIDUgYW5kIG5hdmlnYXRpb24gZGlyZWN0aW9uIGlzIERPV04KKyAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7IAorICAgICAgICBzaG91bGRCZSgi
aW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwgIjMiKTsgICAgICAg
ICAvL2N1cnJlbnQgZm9jdXNlZCBub2RlIGlzIDggYW5kIG5hdmlnYXRpb24gZGlyZWN0aW9uIGlz
IERPV04KKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7IAorICAgICAg
ICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwg
IjAiKTsgICAgICAgICAvL2N1cnJlbnQgZm9jdXNlZCBub2RlIGlzIDUgYW5kIG5hdmlnYXRpb24g
ZGlyZWN0aW9uIGlzIFJJR0hUCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ci
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwgIjMi
KTsgICAgICAgICAvL2N1cnJlbnQgZm9jdXNlZCBub2RlIGlzIDUgYW5kIG5hdmlnYXRpb24gZGly
ZWN0aW9uIGlzIFVQICAgICAgICAgCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRB
cnJvdyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZQcm9jZXNzZWROb2Rlcyhkb2N1bWVudCkiLCAi
MyIpOyAgICAgICAgIC8vY3VycmVudCBmb2N1c2VkIG5vZGUgaXMgMiBhbmQgbmF2aWdhdGlvbiBk
aXJlY3Rpb24gaXMgVVAgCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsK
KyAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlByb2Nlc3NlZE5vZGVzKGRvY3Vt
ZW50KSIsICIwIik7ICAKKworICAgICAgICB0ZXN0Q29tcGxldGVkKCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAg
ICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJqcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJn
aW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGlu
Zz0iMiIgY2VsbHNwYWNpbmc9IjEiPgorICAgIDx0Ym9keT4KKyAgICAgICAgPHRyPgorICAgICAg
ICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7
Ij48L3RkPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMiIgaHJlZj0iYSI+MjwvYT48L3RkPgorICAgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgc3R5bGU9
InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVm
PSJhIj40PC9hPjwvdGQ+CisgICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI1IiBocmVmPSJhIj41PC9hPjwvdGQ+Cisg
ICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGlkPSI2IiBocmVmPSJhIj42PC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAg
ICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwt
YWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjgiIGhyZWY9ImEiPjg8L2E+
PC90ZD4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1h
bGlnbjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorICAgIDwv
dGFibGU+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1MTM2NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA2LTEwICBBYmhpamVldCBLYW5kYWxr
YXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNwYXRpYWwgTmF2aWdhdGlv
biBzaG91bGQgYXZvaWQgdW53YW50ZWQgY2FsY3VsYXRpb24gd2hpbGUgZGVjaWRpbmcgZm9jdXMg
Y2FuZGlkYXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE3MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgdGVzdGNhc2VzIHRvIGNvdW50IGhvdyBtYW55IHRhcmdldCBub2RlcyB3ZXJlIHRl
c3RlZCBiZWZvcmUgY2hvb3NpbmcgYSBmaW5hbCB0YXJnZXQuCisKKyAgICAgICAgKiBmYXN0L3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRp
bWl6YXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTMtMDYtMDcgIFJvZ2VyIEZvbmcgIDxyb2dlcl9m
b25nQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgaW5mbyBzaG91bGQgbmV2ZXIgYmUgY2xl
YXJlZCBiZWZvcmUgZGVsYXllZCBzY3JvbGwgaW5mb3JtYXRpb24gdXBkYXRlcy4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDE1MTM2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiAr
NDcsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFdmVudEhhbmRs
ZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0zODgsNiArMzg5LDIwIEBACiAgICAgcmV0dXJu
IHBhcmVudFRyZWVTY29wZSA/IHBhcmVudFRyZWVTY29wZS0+cm9vdE5vZGUoKSA6IDA7CiB9CiAK
K3Vuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZQcm9jZXNzZWROb2RlcyhEb2N1bWVudCogZG9j
dW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIEZvY3VzQ29udHJvbGxlciogY29udHJvbGxl
ciA9IGRvY3VtZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAgIGlmICghY29udHJv
bGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gY29udHJvbGxlci0+bnVtYmVy
T2ZQcm9jZXNzZWROb2RlcygpOworfQorCiB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGNvbnRleHRGcmFtZSA9IGZyYW1l
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDE1MTM2MykK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTk0LDYgKzk0LDkgQEAKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqLCBjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICAvL1NwYXRpYWwgTmF2aWdhdGlvbiB0ZXN0
aW5nCisgICAgdW5zaWduZWQgbnVtYmVyT2ZQcm9jZXNzZWROb2RlcyhEb2N1bWVudCosIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKKwogICAgIC8vIENTUyBBbmltYXRpb24gdGVzdGluZy4KICAgICB1
bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKICAgICBib29sIGFuaW1h
dGlvbnNBcmVTdXNwZW5kZWQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAxNTEzNjMpCisrKyBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDYgKzU0LDkgQEAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlIHRyZWVTY29wZVJvb3ROb2Rl
KE5vZGUgbm9kZSk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSBwYXJlbnRUcmVlU2NvcGUo
Tm9kZSBub2RlKTsKIAorICAgIC8vU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcKKyAgICBbUmFp
c2VzRXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIG51bWJlck9mUHJvY2Vzc2VkTm9kZXMoRG9jdW1l
bnQgZG9jdW1lbnQpOworCiAgICAgLy8gQ1NTIEFuaW1hdGlvbiB0ZXN0aW5nLgogICAgIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCBkb2N1bWVudCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNTEzNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wNi0xMCAgQWJoaWplZXQgS2FuZGFsa2Fy
ICA8YWJoaWplZXQua0BzYW1zdW5nLmNvbT4KKworICAgICAgICBTcGF0aWFsIE5hdmlnYXRpb24g
c2hvdWxkIGF2b2lkIHVud2FudGVkIGNhbGN1bGF0aW9uIHdoaWxlIGRlY2lkaW5nIGZvY3VzIGNh
bmRpZGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNzI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNwYXRpYWwgTmF2aWdhdGlvbiBzaG91bGQgY29uc2lkZXIgb25seSB0aG9zZSBub2RlcyBhcyBj
YW5kaWRhdGUgd2hpY2ggYXJlIGV4YWN0bHkgaW4gdGhlIGZvY3VzLWRpcmVjdGlvbi4KKyAgICAg
ICAgZS5nLiBJZiB3ZSBhcmUgbW92aW5nIGRvd24gdGhlbiB0aGUgbm9kZXMgdGhhdCBhcmUgYWJv
dmUgQ1VSUkVOVCBmb2N1c2VkIG5vZGUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgaW52YWxpZC4K
KyAgICAgICAgQWRkZWQgaXNWYWxpZENhbmRpZGF0ZSgpIHdoaWNoIGNoZWNrcyB3aGV0aGVyIG5v
ZGUgaXMgZXhhY3RseSBpbiB0aGUgZm9jdXMtZGlyZWN0aW9uLgorCisgICAgICAgIFRlc3Q6IGZh
c3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1
c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0Nv
bnRyb2xsZXI6OmZpbmRGb2N1c0NhbmRpZGF0ZUluQ29udGFpbmVyKToKKyAgICAgICAgKiBwYWdl
L0ZvY3VzQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpu
dW1iZXJPZlByb2Nlc3NlZE5vZGVzKToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDYW5kaWRhdGUpOgorICAgICAgICAqIHBh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om51bWJlck9mUHJvY2Vzc2VkTm9kZXMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaWRsOgorCiAyMDEzLTA2LTA5ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgTGF5b3V0IGluZm8gc2hvdWxkIG5ldmVyIGJlIGNsZWFyZWQgYmVmb3JlIGRl
bGF5ZWQgc2Nyb2xsIGluZm9ybWF0aW9uIHVwZGF0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5oCShyZXZpc2lvbiAxNTEzNjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIs
NyBAQAogYm9vbCBjYW5TY3JvbGxJbkRpcmVjdGlvbihjb25zdCBGcmFtZSosIEZvY3VzRGlyZWN0
aW9uKTsKIGJvb2wgY2FuQmVTY3JvbGxlZEludG9WaWV3KEZvY3VzRGlyZWN0aW9uLCBjb25zdCBG
b2N1c0NhbmRpZGF0ZSYpOwogYm9vbCBhcmVFbGVtZW50c09uU2FtZUxpbmUoY29uc3QgRm9jdXND
YW5kaWRhdGUmIGZpcnN0Q2FuZGlkYXRlLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgc2Vjb25kQ2Fu
ZGlkYXRlKTsKK2Jvb2wgaXNWYWxpZENhbmRpZGF0ZShGb2N1c0RpcmVjdGlvbiwgY29uc3QgRm9j
dXNDYW5kaWRhdGUmIGN1cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpOwogdm9pZCBk
aXN0YW5jZURhdGFGb3JOb2RlKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYg
Y3VycmVudCwgRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0ZSk7CiBOb2RlKiBzY3JvbGxhYmxlRW5j
bG9zaW5nQm94T3JQYXJlbnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiwg
Tm9kZSopOwogTGF5b3V0UmVjdCBub2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyhOb2RlKiwg
Ym9vbCBpZ25vcmVCb3JkZXIgPSBmYWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNTEzNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQAog
ICAgICwgbV9pc0ZvY3VzZWQoZmFsc2UpCiAgICAgLCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWUo
ZmFsc2UpCiAgICAgLCBtX2NvbnRhaW5pbmdXaW5kb3dJc1Zpc2libGUoZmFsc2UpCisgICAgLCBt
X3Byb2Nlc3NlZE5vZGVzKDApCiB7CiB9CiAKQEAgLTc2Myw2ICs3NjQsNyBAQAogICAgIGN1cnJl
bnQucmVjdCA9IHN0YXJ0aW5nUmVjdDsKICAgICBjdXJyZW50LmZvY3VzYWJsZU5vZGUgPSBmb2N1
c2VkTm9kZTsKICAgICBjdXJyZW50LnZpc2libGVOb2RlID0gZm9jdXNlZE5vZGU7CisgICAgbV9w
cm9jZXNzZWROb2RlcyA9IDA7CiAKICAgICBmb3IgKDsgZWxlbWVudDsgZWxlbWVudCA9IChlbGVt
ZW50LT5pc0ZyYW1lT3duZXJFbGVtZW50KCkgfHwgY2FuU2Nyb2xsSW5EaXJlY3Rpb24oZWxlbWVu
dCwgZGlyZWN0aW9uKSkKICAgICAgICAgPyBFbGVtZW50VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdD
aGlsZHJlbihlbGVtZW50LCBjb250YWluZXIpCkBAIC03NzcsNiArNzc5LDEwIEBACiAgICAgICAg
IGlmIChjYW5kaWRhdGUuaXNOdWxsKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAg
ICBpZiAoIWlzVmFsaWRDYW5kaWRhdGUoZGlyZWN0aW9uLCBjdXJyZW50LCBjYW5kaWRhdGUpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgbV9wcm9jZXNzZWROb2RlcysrOwogICAg
ICAgICBjYW5kaWRhdGUuZW5jbG9zaW5nU2Nyb2xsYWJsZUJveCA9IGNvbnRhaW5lcjsKICAgICAg
ICAgdXBkYXRlRm9jdXNDYW5kaWRhdGVJZk5lZWRlZChkaXJlY3Rpb24sIGN1cnJlbnQsIGNhbmRp
ZGF0ZSwgY2xvc2VzdCk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFs
TmF2aWdhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFs
TmF2aWdhdGlvbi5jcHAJKHJldmlzaW9uIDE1MTM2MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTgsNiArNjE4LDM1IEBA
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8qIENvbnNpZGVyIG9ubHkgdGhvc2Ugbm9kZXMgYXMg
Y2FuZGlkYXRlIHdoaWNoIGFyZSBleGFjdGx5IGluIHRoZSBmb2N1cy1kaXJlY3Rpb24uCitlLmcu
IElmIHdlIGFyZSBtb3ZpbmcgZG93biB0aGVuIHRoZSBub2RlcyB0aGF0IGFyZSBhYm92ZSBjdXJy
ZW50IGZvY3VzZWQgbm9kZSBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyBpbnZhbGlkLiAqLworYm9v
bCBpc1ZhbGlkQ2FuZGlkYXRlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgRm9jdXND
YW5kaWRhdGUmIGN1cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBG
b2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgIGlmIChjYW5kaWRhdGUucmVjdC54KCkgPD0gY3Vy
cmVudC5yZWN0Lm1heFgoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5y
ZWN0LnkoKSA8PSBjdXJyZW50LnJlY3QubWF4WSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gdHJ1
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAg
ICBpZiAoY2FuZGlkYXRlLnJlY3QubWF4WCgpID49IGN1cnJlbnQucmVjdC54KCkpCisgICAgICAg
ICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uRG93bjoKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5yZWN0Lm1heFkoKSA+PSBjdXJyZW50LnJl
Y3QueSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKIHZvaWQgZGlzdGFuY2VEYXRhRm9yTm9kZShGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIGNvbnN0IEZvY3VzQ2FuZGlkYXRlJiBjdXJyZW50LCBGb2N1c0NhbmRpZGF0ZSYg
Y2FuZGlkYXRlKQogewogICAgIGlmIChhcmVFbGVtZW50c09uU2FtZUxpbmUoY3VycmVudCwgY2Fu
ZGlkYXRlKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCShyZXZp
c2lvbiAxNTEzNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC04MSw2ICs4MSw3IEBACiAKICAgICB2b2lkIHNldENvbnRhaW5pbmdX
aW5kb3dJc1Zpc2libGUoYm9vbCk7CiAgICAgYm9vbCBjb250YWluaW5nV2luZG93SXNWaXNpYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9jb250YWluaW5nV2luZG93SXNWaXNpYmxlOyB9CisgICAgdW5z
aWduZWQgbnVtYmVyT2ZQcm9jZXNzZWROb2RlcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2Vk
Tm9kZXM7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIoUGFnZSop
OwpAQCAtMTE3LDcgKzExOCw3IEBACiAgICAgYm9vbCBtX2lzRm9jdXNlZDsKICAgICBib29sIG1f
aXNDaGFuZ2luZ0ZvY3VzZWRGcmFtZTsKICAgICBib29sIG1fY29udGFpbmluZ1dpbmRvd0lzVmlz
aWJsZTsKLQorICAgIHVuc2lnbmVkIG1fcHJvY2Vzc2VkTm9kZXM7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204149</attachid>
            <date>2013-06-10 03:30:22 -0700</date>
            <delta_ts>2013-07-09 09:17:08 -0700</delta_ts>
            <desc>Updated patch-1</desc>
            <filename>117265.diff</filename>
            <type>text/plain</type>
            <size>13336</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9w
dGltaXphdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
c2VhcmNoLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTAgQEAKKzIJCis0CTUJNgorOAkKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9k
ZXMoZG9jdW1lbnQpIGlzIDQKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMo
ZG9jdW1lbnQpIGlzIDMKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9j
dW1lbnQpIGlzIDAKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1l
bnQpIGlzIDMKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQp
IGlzIDMKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIGlz
IDAKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFy
Y2gtb3B0aW1pemF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRp
bWl6YXRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OSBAQAorPGh0bWw+CisgIDwh
LS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgb3B0aW1pemF0aW9uIGRvbmUgaW4gc2VhY2hp
bmcgbG9naWMgdG8gZmluZCBiZXN0IGNhbmRpZGF0ZSBmb2N1c2FibGUgbm9kZSB3aXRoIG1pbmlt
dW0gaXRlcmF0aW9ucy4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBv
cnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6Cisg
ICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIuCisgICAgMikgbnVt
YmVyT2ZQcm9jZXNzZWROb2RlcygpIHJldHVybnMgdGhlIG51bWJlciBvZiBub2RlcyBhY3R1YWxs
eSBjb25zaWRlcmVkIHRvIGRldGVybWluZSBiZXN0IGNhbmRpZGF0ZSBmb2N1c2FibGUgbm9kZS4K
KyAgICAgICBhbG9uZyB0aGUgbW9zdCByZWNlbnQgbmF2aWdhdGlvbiBkaXJlY3Rpb24uIAorICAt
LT4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3BhdGlhbC1uYXZpZ2F0
aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIHJlc3VsdE1hcCA9IFsKKyAgICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAg
eworICAgICAgICBpbml0VGVzdChyZXN1bHRNYXAsIGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhZGRpdGlvbmFsVGVzdCgpCisgICAgeworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiMiIpLmZvY3VzKCk7ICAgICAgICAgLy9jdXJyZW50IGZvY3VzZWQgbm9k
ZSBpcyAyIGFuZCBuYXZpZ2F0aW9uIGRpcmVjdGlvbiBpcyBET1dOCisgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51
bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwgIjQiKTsgICAgICAgICAvL2N1cnJlbnQg
Zm9jdXNlZCBub2RlIGlzIDUgYW5kIG5hdmlnYXRpb24gZGlyZWN0aW9uIGlzIERPV04KKyAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7IAorICAgICAgICBzaG91bGRCZSgi
aW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwgIjMiKTsgICAgICAg
ICAvL2N1cnJlbnQgZm9jdXNlZCBub2RlIGlzIDggYW5kIG5hdmlnYXRpb24gZGlyZWN0aW9uIGlz
IERPV04KKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7IAorICAgICAg
ICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwg
IjAiKTsgICAgICAgICAvL2N1cnJlbnQgZm9jdXNlZCBub2RlIGlzIDUgYW5kIG5hdmlnYXRpb24g
ZGlyZWN0aW9uIGlzIFJJR0hUCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ci
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOworICAgICAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mUHJvY2Vzc2VkTm9kZXMoZG9jdW1lbnQpIiwgIjMi
KTsgICAgICAgICAvL2N1cnJlbnQgZm9jdXNlZCBub2RlIGlzIDUgYW5kIG5hdmlnYXRpb24gZGly
ZWN0aW9uIGlzIFVQICAgICAgICAgCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRB
cnJvdyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZQcm9jZXNzZWROb2Rlcyhkb2N1bWVudCkiLCAi
MyIpOyAgICAgICAgIC8vY3VycmVudCBmb2N1c2VkIG5vZGUgaXMgMiBhbmQgbmF2aWdhdGlvbiBk
aXJlY3Rpb24gaXMgVVAgCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsK
KyAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlByb2Nlc3NlZE5vZGVzKGRvY3Vt
ZW50KSIsICIwIik7ICAKKworICAgICAgICB0ZXN0Q29tcGxldGVkKCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAg
ICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJqcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJn
aW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGlu
Zz0iMiIgY2VsbHNwYWNpbmc9IjEiPgorICAgIDx0Ym9keT4KKyAgICAgICAgPHRyPgorICAgICAg
ICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7
Ij48L3RkPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMiIgaHJlZj0iYSI+MjwvYT48L3RkPgorICAgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgc3R5bGU9
InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVm
PSJhIj40PC9hPjwvdGQ+CisgICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI1IiBocmVmPSJhIj41PC9hPjwvdGQ+Cisg
ICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGlkPSI2IiBocmVmPSJhIj42PC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAg
ICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwt
YWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjgiIGhyZWY9ImEiPjg8L2E+
PC90ZD4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1h
bGlnbjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorICAgIDwv
dGFibGU+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1MTM2NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA2LTEwICBBYmhpamVldCBLYW5kYWxr
YXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNwYXRpYWwgTmF2aWdhdGlv
biBzaG91bGQgYXZvaWQgdW53YW50ZWQgY2FsY3VsYXRpb24gd2hpbGUgZGVjaWRpbmcgZm9jdXMg
Y2FuZGlkYXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE3MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgdGVzdGNhc2VzIHRvIGNvdW50IGhvdyBtYW55IHRhcmdldCBub2RlcyB3ZXJlIHRl
c3RlZCBiZWZvcmUgY2hvb3NpbmcgYSBmaW5hbCB0YXJnZXQuCisKKyAgICAgICAgKiBmYXN0L3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRp
bWl6YXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTMtMDYtMDcgIFJvZ2VyIEZvbmcgIDxyb2dlcl9m
b25nQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgaW5mbyBzaG91bGQgbmV2ZXIgYmUgY2xl
YXJlZCBiZWZvcmUgZGVsYXllZCBzY3JvbGwgaW5mb3JtYXRpb24gdXBkYXRlcy4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDE1MTM2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiAr
NDcsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFdmVudEhhbmRs
ZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0zODgsNiArMzg5LDIwIEBACiAgICAgcmV0dXJu
IHBhcmVudFRyZWVTY29wZSA/IHBhcmVudFRyZWVTY29wZS0+cm9vdE5vZGUoKSA6IDA7CiB9CiAK
K3Vuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZQcm9jZXNzZWROb2RlcyhEb2N1bWVudCogZG9j
dW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIEZvY3VzQ29udHJvbGxlciogY29udHJvbGxl
ciA9IGRvY3VtZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAgIGlmICghY29udHJv
bGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gY29udHJvbGxlci0+bnVtYmVy
T2ZQcm9jZXNzZWROb2RlcygpOworfQorCiB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGNvbnRleHRGcmFtZSA9IGZyYW1l
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDE1MTM2MykK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTk0LDYgKzk0LDkgQEAKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqLCBjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICAvLyBTcGF0aWFsIE5hdmlnYXRpb24gdGVz
dGluZy4KKyAgICB1bnNpZ25lZCBudW1iZXJPZlByb2Nlc3NlZE5vZGVzKERvY3VtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OworCiAgICAgLy8gQ1NTIEFuaW1hdGlvbiB0ZXN0aW5nLgogICAg
IHVuc2lnbmVkIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogICAgIGJvb2wgYW5p
bWF0aW9uc0FyZVN1c3BlbmRlZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDE1MTM2MykKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NTQsNiArNTQsOSBAQAogICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUgdHJlZVNjb3BlUm9vdE5v
ZGUoTm9kZSBub2RlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlIHBhcmVudFRyZWVTY29w
ZShOb2RlIG5vZGUpOwogCisgICAgLy8gU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcKKyAgICBb
UmFpc2VzRXhjZXB0aW9uXSB1bnNpZ25lZCBsb25nIG51bWJlck9mUHJvY2Vzc2VkTm9kZXMoRG9j
dW1lbnQgZG9jdW1lbnQpOworCiAgICAgLy8gQ1NTIEFuaW1hdGlvbiB0ZXN0aW5nLgogICAgIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCBkb2N1bWVudCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTEzNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wNi0xMCAgQWJoaWplZXQgS2FuZGFs
a2FyICA8YWJoaWplZXQua0BzYW1zdW5nLmNvbT4KKworICAgICAgICBTcGF0aWFsIE5hdmlnYXRp
b24gc2hvdWxkIGF2b2lkIHVud2FudGVkIGNhbGN1bGF0aW9uIHdoaWxlIGRlY2lkaW5nIGZvY3Vz
IGNhbmRpZGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExNzI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNwYXRpYWwgTmF2aWdhdGlvbiBzaG91bGQgY29uc2lkZXIgb25seSB0aG9zZSBub2RlcyBh
cyBjYW5kaWRhdGUgd2hpY2ggYXJlIGV4YWN0bHkgaW4gdGhlIGZvY3VzLWRpcmVjdGlvbi4KKyAg
ICAgICAgZS5nLiBJZiB3ZSBhcmUgbW92aW5nIGRvd24gdGhlbiB0aGUgbm9kZXMgdGhhdCBhcmUg
YWJvdmUgQ1VSUkVOVCBmb2N1c2VkIG5vZGUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgaW52YWxp
ZC4KKyAgICAgICAgQWRkZWQgaXNWYWxpZENhbmRpZGF0ZSgpIHdoaWNoIGNoZWNrcyB3aGV0aGVy
IG5vZGUgaXMgZXhhY3RseSBpbiB0aGUgZm9jdXMtZGlyZWN0aW9uLgorCisgICAgICAgIFRlc3Q6
IGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi5odG1sCisK
KyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpGb2N1
c0NvbnRyb2xsZXI6OmZpbmRGb2N1c0NhbmRpZGF0ZUluQ29udGFpbmVyKToKKyAgICAgICAgKiBw
YWdlL0ZvY3VzQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVy
OjpudW1iZXJPZlByb2Nlc3NlZE5vZGVzKToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDYW5kaWRhdGUpOgorICAgICAgICAq
IHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om51bWJlck9mUHJvY2Vzc2VkTm9kZXMp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDEzLTA2LTA5ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgTGF5b3V0IGluZm8gc2hvdWxkIG5ldmVyIGJlIGNsZWFyZWQgYmVmb3Jl
IGRlbGF5ZWQgc2Nyb2xsIGluZm9ybWF0aW9uIHVwZGF0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCShyZXZpc2lvbiAxNTEzNjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsx
NDIsNyBAQAogYm9vbCBjYW5TY3JvbGxJbkRpcmVjdGlvbihjb25zdCBGcmFtZSosIEZvY3VzRGly
ZWN0aW9uKTsKIGJvb2wgY2FuQmVTY3JvbGxlZEludG9WaWV3KEZvY3VzRGlyZWN0aW9uLCBjb25z
dCBGb2N1c0NhbmRpZGF0ZSYpOwogYm9vbCBhcmVFbGVtZW50c09uU2FtZUxpbmUoY29uc3QgRm9j
dXNDYW5kaWRhdGUmIGZpcnN0Q2FuZGlkYXRlLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgc2Vjb25k
Q2FuZGlkYXRlKTsKK2Jvb2wgaXNWYWxpZENhbmRpZGF0ZShGb2N1c0RpcmVjdGlvbiwgY29uc3Qg
Rm9jdXNDYW5kaWRhdGUmLCBGb2N1c0NhbmRpZGF0ZSYpOwogdm9pZCBkaXN0YW5jZURhdGFGb3JO
b2RlKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3VycmVudCwgRm9jdXND
YW5kaWRhdGUmIGNhbmRpZGF0ZSk7CiBOb2RlKiBzY3JvbGxhYmxlRW5jbG9zaW5nQm94T3JQYXJl
bnRGcmFtZUZvck5vZGVJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiwgTm9kZSopOwogTGF5b3V0
UmVjdCBub2RlUmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyhOb2RlKiwgYm9vbCBpZ25vcmVCb3Jk
ZXIgPSBmYWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiAxNTEzNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQAogICAgICwgbV9pc0ZvY3Vz
ZWQoZmFsc2UpCiAgICAgLCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWUoZmFsc2UpCiAgICAgLCBt
X2NvbnRhaW5pbmdXaW5kb3dJc1Zpc2libGUoZmFsc2UpCisgICAgLCBtX3Byb2Nlc3NlZE5vZGVz
KDApCiB7CiB9CiAKQEAgLTc2Myw2ICs3NjQsNyBAQAogICAgIGN1cnJlbnQucmVjdCA9IHN0YXJ0
aW5nUmVjdDsKICAgICBjdXJyZW50LmZvY3VzYWJsZU5vZGUgPSBmb2N1c2VkTm9kZTsKICAgICBj
dXJyZW50LnZpc2libGVOb2RlID0gZm9jdXNlZE5vZGU7CisgICAgbV9wcm9jZXNzZWROb2RlcyA9
IDA7CiAKICAgICBmb3IgKDsgZWxlbWVudDsgZWxlbWVudCA9IChlbGVtZW50LT5pc0ZyYW1lT3du
ZXJFbGVtZW50KCkgfHwgY2FuU2Nyb2xsSW5EaXJlY3Rpb24oZWxlbWVudCwgZGlyZWN0aW9uKSkK
ICAgICAgICAgPyBFbGVtZW50VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbihlbGVtZW50
LCBjb250YWluZXIpCkBAIC03NzcsNiArNzc5LDEwIEBACiAgICAgICAgIGlmIChjYW5kaWRhdGUu
aXNOdWxsKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAoIWlzVmFsaWRD
YW5kaWRhdGUoZGlyZWN0aW9uLCBjdXJyZW50LCBjYW5kaWRhdGUpKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgbV9wcm9jZXNzZWROb2RlcysrOwogICAgICAgICBjYW5kaWRhdGUu
ZW5jbG9zaW5nU2Nyb2xsYWJsZUJveCA9IGNvbnRhaW5lcjsKICAgICAgICAgdXBkYXRlRm9jdXND
YW5kaWRhdGVJZk5lZWRlZChkaXJlY3Rpb24sIGN1cnJlbnQsIGNhbmRpZGF0ZSwgY2xvc2VzdCk7
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJ
KHJldmlzaW9uIDE1MTM2MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTgsNiArNjE4LDM1IEBACiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKKy8vIENvbnNpZGVyIG9ubHkgdGhvc2Ugbm9kZXMgYXMgY2FuZGlkYXRlIHdoaWNo
IGFyZSBleGFjdGx5IGluIHRoZSBmb2N1cy1kaXJlY3Rpb24uCisvLyBlLmcuIElmIHdlIGFyZSBt
b3ZpbmcgZG93biB0aGVuIHRoZSBub2RlcyB0aGF0IGFyZSBhYm92ZSBjdXJyZW50IGZvY3VzZWQg
bm9kZSBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyBpbnZhbGlkLgorYm9vbCBpc1ZhbGlkQ2FuZGlk
YXRlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUmIGN1cnJl
bnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxl
ZnQ6CisgICAgICAgIGlmIChjYW5kaWRhdGUucmVjdC54KCkgPD0gY3VycmVudC5yZWN0Lm1heFgo
KSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25VcDoKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5yZWN0LnkoKSA8PSBjdXJy
ZW50LnJlY3QubWF4WSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBpZiAoY2FuZGlkYXRl
LnJlY3QubWF4WCgpID49IGN1cnJlbnQucmVjdC54KCkpCisgICAgICAgICAgICByZXN1bHQgPSB0
cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAg
ICAgaWYgKGNhbmRpZGF0ZS5yZWN0Lm1heFkoKSA+PSBjdXJyZW50LnJlY3QueSgpKQorICAgICAg
ICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
IHZvaWQgZGlzdGFuY2VEYXRhRm9yTm9kZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0
IEZvY3VzQ2FuZGlkYXRlJiBjdXJyZW50LCBGb2N1c0NhbmRpZGF0ZSYgY2FuZGlkYXRlKQogewog
ICAgIGlmIChhcmVFbGVtZW50c09uU2FtZUxpbmUoY3VycmVudCwgY2FuZGlkYXRlKSkgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCShyZXZpc2lvbiAxNTEzNjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC04MSw2ICs4MSw3IEBACiAKICAgICB2b2lkIHNldENvbnRhaW5pbmdXaW5kb3dJc1Zpc2libGUo
Ym9vbCk7CiAgICAgYm9vbCBjb250YWluaW5nV2luZG93SXNWaXNpYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9jb250YWluaW5nV2luZG93SXNWaXNpYmxlOyB9CisgICAgdW5zaWduZWQgbnVtYmVyT2ZQ
cm9jZXNzZWROb2RlcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2VkTm9kZXM7IH0KIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIoUGFnZSopOwpAQCAtMTE3LDcgKzEx
OCw3IEBACiAgICAgYm9vbCBtX2lzRm9jdXNlZDsKICAgICBib29sIG1faXNDaGFuZ2luZ0ZvY3Vz
ZWRGcmFtZTsKICAgICBib29sIG1fY29udGFpbmluZ1dpbmRvd0lzVmlzaWJsZTsKLQorICAgIHVu
c2lnbmVkIG1fcHJvY2Vzc2VkTm9kZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="225666"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206329</attachid>
            <date>2013-07-09 09:17:08 -0700</date>
            <delta_ts>2013-08-01 23:18:56 -0700</delta_ts>
            <desc>Updated patch-2</desc>
            <filename>Updated-Patch-2.diff</filename>
            <type>text/plain</type>
            <size>15662</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9w
dGltaXphdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
c2VhcmNoLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKKzEJMgkzCis0CQorCTYKKzcJOAk5CitQQVNTIGludGVybmFscy5sYXN0U3BhdGlhbE5h
dmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlzIDkKK1BBU1MgaW50ZXJuYWxzLmxhc3RTcGF0aWFs
TmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgaXMgNgorUEFTUyBpbnRlcm5hbHMubGFzdFNwYXRp
YWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSBpcyAyCitQQVNTIGludGVybmFscy5sYXN0U3Bh
dGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlzIDkKK1BBU1MgaW50ZXJuYWxzLmxhc3RT
cGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgaXMgNgorUEFTUyBpbnRlcm5hbHMubGFz
dFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSBpcyAyCitQQVNTIGludGVybmFscy5s
YXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlzIDUKK1BBU1MgaW50ZXJuYWxz
Lmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgaXMgMgorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRpb24u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXNlYXJjaC1vcHRpbWl6YXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMSBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRl
c3QgZW5zdXJlcyB0aGUgb3B0aW1pemF0aW9uIGRvbmUgaW4gc2VhY2hpbmcgbG9naWMgdG8gZmlu
ZCBiZXN0IGNhbmRpZGF0ZSBmb2N1c2FibGUgbm9kZSB3aXRoIG1pbmltdW0gaXRlcmF0aW9ucy4K
KworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgVGVzdFJ1bm5lciBzdXBwb3J0IGZvciBT
TmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExv
YWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAiMiIuCisgICAgMikgbGFzdFNwYXRpYWxOYXZp
Z2F0aW9uQ2FuZGlkYXRlQ291bnQoKSByZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgYWN0dWFs
bHkgY29uc2lkZXJlZCB0byBkZXRlcm1pbmUgYmVzdCBjYW5kaWRhdGUgZm9jdXNhYmxlIG5vZGUs
CisgICAgICAgYWxvbmcgdGhlIG1vc3QgcmVjZW50IG5hdmlnYXRpb24gZGlyZWN0aW9uLgorICAt
LT4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3BhdGlhbC1uYXZpZ2F0
aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIHJlc3VsdE1hcCA9IFsKKyAgICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAg
eworICAgICAgICBpbml0VGVzdChyZXN1bHRNYXAsIGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhZGRpdGlvbmFsVGVzdCgpCisgICAgeworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiMiIpLmZvY3VzKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
ImRvd25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2
aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiOSIpOyAvLyBGb2N1c2VkIG5vZGUgaXMgMiBhbmQg
bmF2aWdhdGlvbiBkaXJlY3Rpb24gaXMgRE9XTi4gT25seSAxLDMsNCw1LDYsNyw4LDksaWZyYW1l
IGFyZSBjb25zaWRlcmVkIGFzIHZhbGlkIGNhbmRpZGF0ZS4KKyAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubGFzdFNw
YXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICI2Iik7IC8vIEZvY3VzZWQgbm9kZSBp
cyA1IGFuZCBuYXZpZ2F0aW9uIGRpcmVjdGlvbiBpcyBET1dOLiBPbmx5IDQsNiw3LDgsOSxpZnJh
bWUgYXJlIGNvbnNpZGVyZWQgYXMgdmFsaWQgY2FuZGlkYXRlLgorICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5sYXN0
U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIiwgIjIiKTsgLy8gRm9jdXNlZCBub2Rl
IGlzIDggYW5kIG5hdmlnYXRpb24gZGlyZWN0aW9uIGlzIERPV04uIE9ubHkgNyw5IGFyZSBjb25z
aWRlcmVkIGFzIHZhbGlkIGNhbmRpZGF0ZS4KKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
cmlnaHRBcnJvdyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICBzaG91bGRC
ZSgiaW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiOSIp
OyAvLyBGb2N1c2VkIG5vZGUgaXMgNiBhbmQgbmF2aWdhdGlvbiBkaXJlY3Rpb24gaXMgTEVGVC4g
T25seSAxLDIsMyw0LDUsNyw4LDksaWZyYW1lIGFyZSBjb25zaWRlcmVkIGFzIHZhbGlkIGNhbmRp
ZGF0ZS4KKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQo
KSIsICI2Iik7IC8vIEZvY3VzZWQgbm9kZSBpcyA1IGFuZCBuYXZpZ2F0aW9uIGRpcmVjdGlvbiBp
cyBMRUZULiBPbmx5IDEsMiw0LDcsOCxpZnJhbWUgYXJlIGNvbnNpZGVyZWQgYXMgdmFsaWQgY2Fu
ZGlkYXRlLgorICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsKKyAgICAg
ICAgc2hvdWxkQmUoImludGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3Vu
dCgpIiwgIjIiKTsgLy8gRm9jdXNlZCBub2RlIGlzIDQgYW5kIG5hdmlnYXRpb24gZGlyZWN0aW9u
IGlzIExFRlQuIE9ubHkgMSw3IGFyZSBjb25zaWRlcmVkIGFzIHZhbGlkIGNhbmRpZGF0ZS4KKyAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICBzaG91bGRCZSgi
aW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiNSIpOyAv
LyBGb2N1c2VkIG5vZGUgaXMgNCBhbmQgbmF2aWdhdGlvbiBkaXJlY3Rpb24gaXMgVVAuIE9ubHkg
MSwyLDMsaWZyYW1lLDYgYXJlIGNvbnNpZGVyZWQgYXMgdmFsaWQgY2FuZGlkYXRlLgorICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpbnRl
cm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICIyIik7IC8vIEZv
Y3VzZWQgbm9kZSBpcyAxIGFuZCBuYXZpZ2F0aW9uIGRpcmVjdGlvbiBpcyBVUC4gT25seSAyLDMg
YXJlIGNvbnNpZGVyZWQgYXMgdmFsaWQgY2FuZGlkYXRlLgorICAgICAgICB0ZXN0Q29tcGxldGVk
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJqcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7
IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3JkZXI9IjEiIGNlbGxw
YWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMSI+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+Cisg
ICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGlkPSIxIiBocmVmPSJhIj4xPC9hPjwvdGQ+CisgICAgICAgICAgICA8dGQgc3R5
bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIyIiBo
cmVmPSJhIj4yPC9hPjwvdGQ+CisgICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVmPSJhIj4zPC9hPjwvdGQ+
CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4
dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjQiIGhyZWY9ImEiPjQ8L2E+PC90ZD4KKyAgICAgICAg
ICAgIDx0ZD48YnI+PGlmcmFtZSB3aWR0aD0nMTAwJyBoZWlnaHQ9JzEwMCcgc3JjPSJkYXRhOnRl
eHQvaHRtbCwKKwkJCTx0YWJsZSBzdHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tbGVm
dDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyc+CisJCQk8dGJvZHk+CisJCQk8dHI+CisgICAg
ICAgICAgICA8dGQgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRlcjsnPjxhIGlkPSc1JyBocmVmPSdh
Jz41PC9hPjwvdGQ+CisJCQk8L3RyPgorCQkJPC90Ym9keT4KKwkJCTwvdGFibGU+Ij4KKwkJCTwv
aWZyYW1lPgorCQkJPC90ZD4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPjY8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAg
ICAgPHRyPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNyIgaHJlZj0iYSI+NzwvYT48L3RkPgorICAgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iOCIgaHJlZj0iYSI+ODwvYT48L3RkPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0
aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+
OTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgICAgPC90YWJsZT4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTUyNDkyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDctMDkgIEFiaGlqZWV0IEthbmRhbGthciAgPGFiaGlq
ZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIHNob3VsZCBh
dm9pZCB1bndhbnRlZCBjYWxjdWxhdGlvbiB3aGlsZSBkZWNpZGluZyBmb2N1cyBjYW5kaWRhdGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcyNjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0
ZXN0Y2FzZXMgdG8gY291bnQgaG93IG1hbnkgdGFyZ2V0IG5vZGVzIHdlcmUgdGVzdGVkIGJlZm9y
ZSBjaG9vc2luZyBhIGZpbmFsIHRhcmdldC4KKworICAgICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi5o
dG1sOiBBZGRlZC4KKwogMjAxMy0wNy0wOSAgWm9sdGFuIEFydmFpICA8emFydmFpQGluZi51LXN6
ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpJbmRleDogU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMTUyNDkyKQorKysgU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNiAr
MzkyLDE2IEBACiAgICAgcmV0dXJuIHBhcmVudFRyZWVTY29wZSA/IHBhcmVudFRyZWVTY29wZS0+
cm9vdE5vZGUoKSA6IDA7CiB9CiAKK3Vuc2lnbmVkIEludGVybmFsczo6bGFzdFNwYXRpYWxOYXZp
Z2F0aW9uQ2FuZGlkYXRlQ291bnQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYg
KCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERvY3VtZW50KCktPnBhZ2UoKSkgeworICAg
ICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
CisgICAgcmV0dXJuIGNvbnRleHREb2N1bWVudCgpLT5wYWdlKCktPmxhc3RTcGF0aWFsTmF2aWdh
dGlvbkNhbmRpZGF0ZUNvdW50KCk7Cit9CisKIHVuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZB
Y3RpdmVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBGcmFtZSogY29udGV4dEZyYW1lID0gZnJh
bWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMTUyNDky
KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpA
QCAtOTQsNiArOTQsOSBAQAogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0U2hhZG93UHNldWRvSWQoRWxlbWVudCosIGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIC8vIFNwYXRpYWwgTmF2aWdhdGlvbiB0
ZXN0aW5nLgorICAgIHVuc2lnbmVkIGxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50
KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKwogICAgIC8vIENTUyBBbmltYXRpb24gdGVzdGluZy4K
ICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKICAgICBib29s
IGFuaW1hdGlvbnNBcmVTdXNwZW5kZWQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAxNTI0OTIp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDYgKzU0LDkgQEAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlIHRyZWVTY29wZVJv
b3ROb2RlKE5vZGUgbm9kZSk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSBwYXJlbnRUcmVl
U2NvcGUoTm9kZSBub2RlKTsKIAorICAgIC8vIFNwYXRpYWwgTmF2aWdhdGlvbiB0ZXN0aW5nCisg
ICAgW1JhaXNlc0V4Y2VwdGlvbl0gdW5zaWduZWQgbG9uZyBsYXN0U3BhdGlhbE5hdmlnYXRpb25D
YW5kaWRhdGVDb3VudCgpOworCiAgICAgLy8gQ1NTIEFuaW1hdGlvbiB0ZXN0aW5nLgogICAgIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCBkb2N1bWVudCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTI0OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wNy0wOSAgQWJoaWplZXQgS2FuZGFs
a2FyICA8YWJoaWplZXQua0BzYW1zdW5nLmNvbT4KKworICAgICAgICBTcGF0aWFsIE5hdmlnYXRp
b24gc2hvdWxkIGF2b2lkIHVud2FudGVkIGNhbGN1bGF0aW9uIHdoaWxlIGRlY2lkaW5nIGZvY3Vz
IGNhbmRpZGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExNzI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNwYXRpYWwgTmF2aWdhdGlvbiBzaG91bGQgY29uc2lkZXIgb25seSB0aG9zZSBub2RlcyBh
cyBjYW5kaWRhdGUgd2hpY2ggYXJlIGV4YWN0bHkgaW4gdGhlIGZvY3VzLWRpcmVjdGlvbi4KKyAg
ICAgICAgZS5nLiBJZiB3ZSBhcmUgbW92aW5nIGRvd24gdGhlbiB0aGUgbm9kZXMgdGhhdCBhcmUg
YWJvdmUgQ1VSUkVOVCBmb2N1c2VkIG5vZGUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgaW52YWxp
ZC4KKyAgICAgICAgQWRkZWQgaXNWYWxpZENhbmRpZGF0ZSgpIHdoaWNoIGNoZWNrcyB3aGV0aGVy
IG5vZGUgaXMgZXhhY3RseSBpbiB0aGUgZm9jdXMtZGlyZWN0aW9uLgorCisgICAgICAgIFRlc3Q6
IGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi5odG1sCisK
KyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c0NhbmRpZGF0ZUluQ29udGFpbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0TGFzdFNw
YXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
bGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQpOgorICAgICAgICAqIHBhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZENhbmRpZGF0ZSk6
CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bGFzdFNwYXRpYWxO
YXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTA3LTA5ICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVXNlIHRvU1ZHRm9u
dEVsZW1lbnQoKSBpbnN0ZWFkIG9mIHN0YXRpY19jYXN0PFNWR0ZvbnRFbGVtZW50Kj4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgJKHJldmlzaW9uIDE1MjQ5MikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMTM4LDYgKzEzOCw3IEBACiBib29sIGNhblNjcm9sbEluRGlyZWN0aW9uKGNvbnN0IEZy
YW1lKiwgRm9jdXNEaXJlY3Rpb24pOwogYm9vbCBjYW5CZVNjcm9sbGVkSW50b1ZpZXcoRm9jdXNE
aXJlY3Rpb24sIGNvbnN0IEZvY3VzQ2FuZGlkYXRlJik7CiBib29sIGFyZUVsZW1lbnRzT25TYW1l
TGluZShjb25zdCBGb2N1c0NhbmRpZGF0ZSYgZmlyc3RDYW5kaWRhdGUsIGNvbnN0IEZvY3VzQ2Fu
ZGlkYXRlJiBzZWNvbmRDYW5kaWRhdGUpOworYm9vbCBpc1ZhbGlkQ2FuZGlkYXRlKEZvY3VzRGly
ZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYsIEZvY3VzQ2FuZGlkYXRlJik7CiB2b2lkIGRp
c3RhbmNlRGF0YUZvck5vZGUoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEZvY3VzQ2FuZGlkYXRlJiBj
dXJyZW50LCBGb2N1c0NhbmRpZGF0ZSYgY2FuZGlkYXRlKTsKIE5vZGUqIHNjcm9sbGFibGVFbmNs
b3NpbmdCb3hPclBhcmVudEZyYW1lRm9yTm9kZUluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uLCBO
b2RlKik7CiBMYXlvdXRSZWN0IG5vZGVSZWN0SW5BYnNvbHV0ZUNvb3JkaW5hdGVzKE5vZGUqLCBi
b29sIGlnbm9yZUJvcmRlciA9IGZhbHNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDE1MjQ5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzY2LDYgKzc2Niw3IEBACiAg
ICAgY3VycmVudC5mb2N1c2FibGVOb2RlID0gZm9jdXNlZE5vZGU7CiAgICAgY3VycmVudC52aXNp
YmxlTm9kZSA9IGZvY3VzZWROb2RlOwogCisgICAgdW5zaWduZWQgY2FuZGlkYXRlQ291bnQgPSAw
OwogICAgIGZvciAoOyBlbGVtZW50OyBlbGVtZW50ID0gKGVsZW1lbnQtPmlzRnJhbWVPd25lckVs
ZW1lbnQoKSB8fCBjYW5TY3JvbGxJbkRpcmVjdGlvbihlbGVtZW50LCBkaXJlY3Rpb24pKQogICAg
ICAgICA/IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKGVsZW1lbnQsIGNv
bnRhaW5lcikKICAgICAgICAgOiBFbGVtZW50VHJhdmVyc2FsOjpuZXh0KGVsZW1lbnQsIGNvbnRh
aW5lcikpIHsKQEAgLTc3OSw5ICs3ODAsMTggQEAKICAgICAgICAgaWYgKGNhbmRpZGF0ZS5pc051
bGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIGlmICghaXNWYWxpZENhbmRp
ZGF0ZShkaXJlY3Rpb24sIGN1cnJlbnQsIGNhbmRpZGF0ZSkpCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBjYW5kaWRhdGVDb3VudCsrOwogICAgICAgICBjYW5kaWRhdGUuZW5jbG9z
aW5nU2Nyb2xsYWJsZUJveCA9IGNvbnRhaW5lcjsKICAgICAgICAgdXBkYXRlRm9jdXNDYW5kaWRh
dGVJZk5lZWRlZChkaXJlY3Rpb24sIGN1cnJlbnQsIGNhbmRpZGF0ZSwgY2xvc2VzdCk7CiAgICAg
fQorCisgICAgaWYgKGZvY3VzZWRGcmFtZSgpICYmIGZvY3VzZWRGcmFtZSgpLT5kb2N1bWVudCgp
KSB7CisgICAgICAgIGNhbmRpZGF0ZUNvdW50ICs9IGZvY3VzZWRGcmFtZSgpLT5kb2N1bWVudCgp
LT5wYWdlKCktPmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCk7CisgICAgICAg
IGZvY3VzZWRGcmFtZSgpLT5kb2N1bWVudCgpLT5wYWdlKCktPnNldExhc3RTcGF0aWFsTmF2aWdh
dGlvbkNhbmRpZGF0ZUNvdW50KGNhbmRpZGF0ZUNvdW50KTsKKyAgICB9CiB9CiAKIGJvb2wgRm9j
dXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5SW5Db250YWluZXIoTm9kZSog
Y29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiBzdGFydGluZ1JlY3QsIEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCkBAIC04NjgsNyArODc4LDcgQEAKIAog
ICAgIGlmIChjb250YWluZXItPmlzRG9jdW1lbnROb2RlKCkpCiAgICAgICAgIHRvRG9jdW1lbnQo
Y29udGFpbmVyKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAg
ICAgIAorCiAgICAgLy8gRmlndXJlIG91dCB0aGUgc3RhcnRpbmcgcmVjdC4KICAgICBMYXlvdXRS
ZWN0IHN0YXJ0aW5nUmVjdDsKICAgICBpZiAoZm9jdXNlZEVsZW1lbnQpIHsKQEAgLTg4Miw2ICs4
OTIsOSBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGZvY3VzZWRGcmFtZSgpICYmIGZv
Y3VzZWRGcmFtZSgpLT5kb2N1bWVudCgpKQorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnBhZ2Uo
KS0+c2V0TGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoMCk7CisKICAgICBib29s
IGNvbnN1bWVkID0gZmFsc2U7CiAgICAgZG8gewogICAgICAgICBjb25zdW1lZCA9IGFkdmFuY2VG
b2N1c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcihjb250YWluZXIsIHN0YXJ0aW5nUmVjdCwgZGly
ZWN0aW9uLCBldmVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMTUyNDkyKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwNSw3ICs0MDUs
OCBAQAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICB2b2lkIGNhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWQoKTsKICNlbmRpZgotCisgICAgdm9pZCBzZXRMYXN0U3BhdGlhbE5hdmlnYXRpb25D
YW5kaWRhdGVDb3VudCh1bnNpZ25lZCBjb3VudCkgeyBtX2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNh
bmRpZGF0ZXNDb3VudCA9IGNvdW50OyB9CisgICAgdW5zaWduZWQgbGFzdFNwYXRpYWxOYXZpZ2F0
aW9uQ2FuZGlkYXRlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2xhc3RTcGF0aWFsTmF2aWdhdGlv
bkNhbmRpZGF0ZXNDb3VudDsgfQogcHJpdmF0ZToKICAgICB2b2lkIGluaXRHcm91cCgpOwogCkBA
IC01NDIsNiArNTQzLDggQEAKIAogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5QbHVnaW5zOwog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5NZWRpYUVuZ2luZXM7CisKKyAgICB1bnNpZ25lZCBt
X2xhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudDsKIH07CiAKIGlubGluZSBQYWdl
R3JvdXAmIFBhZ2U6Omdyb3VwKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTUy
NDkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTg3LDYgKzE4Nyw3IEBACiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxz
ZSkKICAgICAsIG1fcGFnZVRocm90dGxlcihQYWdlVGhyb3R0bGVyOjpjcmVhdGUodGhpcykpCiAg
ICAgLCBtX2NvbnNvbGUoUGFnZUNvbnNvbGU6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fbGFzdFNw
YXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50KDApCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9y
Q2xpZW50KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5j
cHAJKHJldmlzaW9uIDE1MjQ5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmln
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTYsNiArNjE2LDM2IEBACiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKKy8vIENvbnNpZGVyIG9ubHkgdGhvc2Ugbm9kZXMgYXMgY2FuZGlkYXRlIHdo
aWNoIGFyZSBleGFjdGx5IGluIHRoZSBmb2N1cy1kaXJlY3Rpb24uCisvLyBlLmcuIElmIHdlIGFy
ZSBtb3ZpbmcgZG93biB0aGVuIHRoZSBub2RlcyB0aGF0IGFyZSBhYm92ZSBjdXJyZW50IGZvY3Vz
ZWQgbm9kZSBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyBpbnZhbGlkLgorYm9vbCBpc1ZhbGlkQ2Fu
ZGlkYXRlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUmIGN1
cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAgTGF5b3V0UmVjdCBjdXJy
ZW50UmVjdCA9IGN1cnJlbnQucmVjdDsKKyAgICBMYXlvdXRSZWN0IGNhbmRpZGF0ZVJlY3QgPSBj
YW5kaWRhdGUucmVjdDsKKworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgIGlmIChjYW5kaWRhdGVSZWN0LngoKSA8IGN1cnJlbnRS
ZWN0Lm1heFgoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgICAgIGlmIChjYW5kaWRhdGVSZWN0LnkoKSA8
IGN1cnJlbnRSZWN0Lm1heFkoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIGlmIChjYW5kaWRh
dGVSZWN0Lm1heFgoKSA+IGN1cnJlbnRSZWN0LngoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAg
aWYgKGNhbmRpZGF0ZVJlY3QubWF4WSgpID4gY3VycmVudFJlY3QueSgpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgZGlz
dGFuY2VEYXRhRm9yTm9kZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEZvY3VzQ2Fu
ZGlkYXRlJiBjdXJyZW50LCBGb2N1c0NhbmRpZGF0ZSYgY2FuZGlkYXRlKQogewogICAgIGlmIChh
cmVFbGVtZW50c09uU2FtZUxpbmUoY3VycmVudCwgY2FuZGlkYXRlKSkgewo=
</data>
<flag name="review"
          id="228000"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207984</attachid>
            <date>2013-08-01 23:18:56 -0700</date>
            <delta_ts>2013-08-02 04:26:44 -0700</delta_ts>
            <desc>Updated patch-3</desc>
            <filename>updated_patch3.diff</filename>
            <type>text/plain</type>
            <size>12652</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDE1MzYzNCkK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzkzLDYgKzM5MywxNiBAQAogICAgIHJldHVybiBwYXJlbnRUcmVlU2NvcGUgPyBwYXJlbnRU
cmVlU2NvcGUtPnJvb3ROb2RlKCkgOiAwOwogfQogCit1bnNpZ25lZCBJbnRlcm5hbHM6Omxhc3RT
cGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAor
eworICAgIGlmICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgpLT5wYWdl
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIHJldHVybiBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpLT5sYXN0U3Bh
dGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpOworfQorCiB1bnNpZ25lZCBJbnRlcm5hbHM6
Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGNvbnRleHRG
cmFtZSA9IGZyYW1lKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlz
aW9uIDE1MzYzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTk0LDYgKzk0LDkgQEAKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxl
bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKEVsZW1l
bnQqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICAvLyBTcGF0aWFsIE5h
dmlnYXRpb24gdGVzdGluZy4KKyAgICB1bnNpZ25lZCBsYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5k
aWRhdGVDb3VudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisKICAgICAvLyBDU1MgQW5pbWF0aW9u
IHRlc3RpbmcuCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7
CiAgICAgYm9vbCBhbmltYXRpb25zQXJlU3VzcGVuZGVkKERvY3VtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNp
b24gMTUzNjM0KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCw5IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSB0
cmVlU2NvcGVSb290Tm9kZShOb2RlIG5vZGUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUg
cGFyZW50VHJlZVNjb3BlKE5vZGUgbm9kZSk7CiAKKyAgICAvLyBTcGF0aWFsIE5hdmlnYXRpb24g
dGVzdGluZworICAgIFtSYWlzZXNFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgbGFzdFNwYXRpYWxO
YXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKTsKKwogICAgIC8vIENTUyBBbmltYXRpb24gdGVzdGlu
Zy4KICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwogICAgIFtS
YWlzZXNFeGNlcHRpb25dIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQgZG9jdW1lbnQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAkocmV2aXNpb24g
MTUzNjM0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDcgQEAKIGJvb2wgY2FuU2Nyb2xsSW5EaXJlY3Rpb24o
Y29uc3QgRnJhbWUqLCBGb2N1c0RpcmVjdGlvbik7CiBib29sIGNhbkJlU2Nyb2xsZWRJbnRvVmll
dyhGb2N1c0RpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUmKTsKIGJvb2wgYXJlRWxlbWVu
dHNPblNhbWVMaW5lKGNvbnN0IEZvY3VzQ2FuZGlkYXRlJiBmaXJzdENhbmRpZGF0ZSwgY29uc3Qg
Rm9jdXNDYW5kaWRhdGUmIHNlY29uZENhbmRpZGF0ZSk7Citib29sIGlzVmFsaWRDYW5kaWRhdGUo
Rm9jdXNEaXJlY3Rpb24sIGNvbnN0IEZvY3VzQ2FuZGlkYXRlJiwgRm9jdXNDYW5kaWRhdGUmKTsK
IHZvaWQgZGlzdGFuY2VEYXRhRm9yTm9kZShGb2N1c0RpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5k
aWRhdGUmIGN1cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpOwogTm9kZSogc2Nyb2xs
YWJsZUVuY2xvc2luZ0JveE9yUGFyZW50RnJhbWVGb3JOb2RlSW5EaXJlY3Rpb24oRm9jdXNEaXJl
Y3Rpb24sIE5vZGUqKTsKIExheW91dFJlY3Qgbm9kZVJlY3RJbkFic29sdXRlQ29vcmRpbmF0ZXMo
Tm9kZSosIGJvb2wgaWdub3JlQm9yZGVyID0gZmFsc2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTUzNjM0KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjYsNiArNzY2
LDcgQEAKICAgICBjdXJyZW50LmZvY3VzYWJsZU5vZGUgPSBmb2N1c2VkTm9kZTsKICAgICBjdXJy
ZW50LnZpc2libGVOb2RlID0gZm9jdXNlZE5vZGU7CiAKKyAgICB1bnNpZ25lZCBjYW5kaWRhdGVD
b3VudCA9IDA7CiAgICAgZm9yICg7IGVsZW1lbnQ7IGVsZW1lbnQgPSAoZWxlbWVudC0+aXNGcmFt
ZU93bmVyRWxlbWVudCgpIHx8IGNhblNjcm9sbEluRGlyZWN0aW9uKGVsZW1lbnQsIGRpcmVjdGlv
bikpCiAgICAgICAgID8gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oZWxl
bWVudCwgY29udGFpbmVyKQogICAgICAgICA6IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHQoZWxlbWVu
dCwgY29udGFpbmVyKSkgewpAQCAtNzc5LDkgKzc4MCwyMCBAQAogICAgICAgICBpZiAoY2FuZGlk
YXRlLmlzTnVsbCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgaWYgKCFpc1Zh
bGlkQ2FuZGlkYXRlKGRpcmVjdGlvbiwgY3VycmVudCwgY2FuZGlkYXRlKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGNhbmRpZGF0ZUNvdW50Kys7CiAgICAgICAgIGNhbmRpZGF0
ZS5lbmNsb3NpbmdTY3JvbGxhYmxlQm94ID0gY29udGFpbmVyOwogICAgICAgICB1cGRhdGVGb2N1
c0NhbmRpZGF0ZUlmTmVlZGVkKGRpcmVjdGlvbiwgY3VycmVudCwgY2FuZGlkYXRlLCBjbG9zZXN0
KTsKICAgICB9CisKKyAgICAvLyBUaGUgdmFyaWFibGUgJ2NhbmRpZGF0ZUNvdW50JyBrZWVwcyB0
cmFjayBvZiB0aGUgbnVtYmVyIG9mIG5vZGVzIHRyYXZlcnNlZCBpbiBhIGdpdmVuIGNvbnRhaW5l
ci4KKyAgICAvLyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY29udGFpbmVyIGluIGEgcGFnZSB0
aGVuIHRoZSB0b3RhbCBudW1iZXIgb2Ygbm9kZXMgdHJhdmVyc2VkIGlzIGVxdWFsIHRvIHRoZSBz
dW0gb2Ygbm9kZXMgdHJhdmVyc2VkIGluIGVhY2ggY29udGFpbmVyLgorICAgIGlmIChmb2N1c2Vk
RnJhbWUoKSAmJiBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1lbnQoKSkgeworICAgICAgICBjYW5kaWRh
dGVDb3VudCArPSBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5sYXN0U3BhdGlh
bE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpOworICAgICAgICBmb2N1c2VkRnJhbWUoKS0+ZG9j
dW1lbnQoKS0+cGFnZSgpLT5zZXRMYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudChj
YW5kaWRhdGVDb3VudCk7CisgICAgfQogfQogCiBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5j
ZUZvY3VzRGlyZWN0aW9uYWxseUluQ29udGFpbmVyKE5vZGUqIGNvbnRhaW5lciwgY29uc3QgTGF5
b3V0UmVjdCYgc3RhcnRpbmdSZWN0LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJk
RXZlbnQqIGV2ZW50KQpAQCAtODY4LDcgKzg4MCw3IEBACiAKICAgICBpZiAoY29udGFpbmVyLT5p
c0RvY3VtZW50Tm9kZSgpKQogICAgICAgICB0b0RvY3VtZW50KGNvbnRhaW5lciktPnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgICAgICAKKwogICAgIC8vIEZpZ3Vy
ZSBvdXQgdGhlIHN0YXJ0aW5nIHJlY3QuCiAgICAgTGF5b3V0UmVjdCBzdGFydGluZ1JlY3Q7CiAg
ICAgaWYgKGZvY3VzZWRFbGVtZW50KSB7CkBAIC04ODIsNiArODk0LDkgQEAKICAgICAgICAgfQog
ICAgIH0KIAorICAgIGlmIChmb2N1c2VkRnJhbWUoKSAmJiBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1l
bnQoKSkKKyAgICAgICAgZm9jdXNlZERvY3VtZW50LT5wYWdlKCktPnNldExhc3RTcGF0aWFsTmF2
aWdhdGlvbkNhbmRpZGF0ZUNvdW50KDApOworCiAgICAgYm9vbCBjb25zdW1lZCA9IGZhbHNlOwog
ICAgIGRvIHsKICAgICAgICAgY29uc3VtZWQgPSBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5SW5D
b250YWluZXIoY29udGFpbmVyLCBzdGFydGluZ1JlY3QsIGRpcmVjdGlvbiwgZXZlbnQpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDE1MzYzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDksNiArNDA5LDggQEAKICAgICB2b2lkIGluY3Jl
bWVudEZyYW1lSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudENvdW50KCk7CiAgICAgdm9pZCBkZWNy
ZW1lbnRGcmFtZUhhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnRDb3VudCgpOwogICAgIGJvb2wgaXNB
bnlGcmFtZUhhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoKTsKKyAgICB2b2lkIHNldExhc3RTcGF0
aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KHVuc2lnbmVkIGNvdW50KSB7IG1fbGFzdFNwYXRp
YWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50ID0gY291bnQ7IH0KKyAgICB1bnNpZ25lZCBsYXN0
U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFNw
YXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50OyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBp
bml0R3JvdXAoKTsKQEAgLTU0Niw3ICs1NDgsOCBAQAogCiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
c2VlblBsdWdpbnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlhRW5naW5lczsKLSAg
ICAKKworICAgIHVuc2lnbmVkIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50
OwogICAgIHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudDsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTUzNjM0KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4Nyw3IEBACiAgICAg
LCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGFnZVRocm90
dGxlcihQYWdlVGhyb3R0bGVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2NvbnNvbGUoUGFnZUNv
bnNvbGU6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlk
YXRlc0NvdW50KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZvciB0ZXN0
aW5nLgogICAgICwgbV9mcmFtZXNIYW5kbGluZ0JlZm9yZVVubG9hZEV2ZW50KDApCiB7CiAgICAg
QVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwCShyZXZpc2lvbiAxNTM2MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIwLDYgKzYyMCwyOCBA
QAogICAgIHJldHVybiB0cnVlOwogfQogCisvLyBDb25zaWRlciBvbmx5IHRob3NlIG5vZGVzIGFz
IGNhbmRpZGF0ZSB3aGljaCBhcmUgZXhhY3RseSBpbiB0aGUgZm9jdXMtZGlyZWN0aW9uLgorLy8g
ZS5nLiBJZiB3ZSBhcmUgbW92aW5nIGRvd24gdGhlbiB0aGUgbm9kZXMgdGhhdCBhcmUgYWJvdmUg
Y3VycmVudCBmb2N1c2VkIG5vZGUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgaW52YWxpZC4KK2Jv
b2wgaXNWYWxpZENhbmRpZGF0ZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEZvY3Vz
Q2FuZGlkYXRlJiBjdXJyZW50LCBGb2N1c0NhbmRpZGF0ZSYgY2FuZGlkYXRlKQoreworICAgIExh
eW91dFJlY3QgY3VycmVudFJlY3QgPSBjdXJyZW50LnJlY3Q7CisgICAgTGF5b3V0UmVjdCBjYW5k
aWRhdGVSZWN0ID0gY2FuZGlkYXRlLnJlY3Q7CisKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewor
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICByZXR1cm4gY2FuZGlkYXRlUmVj
dC54KCkgPCBjdXJyZW50UmVjdC5tYXhYKCk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgor
ICAgICAgICByZXR1cm4gY2FuZGlkYXRlUmVjdC55KCkgPCBjdXJyZW50UmVjdC5tYXhZKCk7Cisg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICByZXR1cm4gY2FuZGlkYXRlUmVj
dC5tYXhYKCkgPiBjdXJyZW50UmVjdC54KCk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246
CisgICAgICAgIHJldHVybiBjYW5kaWRhdGVSZWN0Lm1heFkoKSA+IGN1cnJlbnRSZWN0LnkoKTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIGRpc3RhbmNlRGF0YUZvck5vZGUoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3VycmVudCwgRm9jdXNDYW5kaWRh
dGUmIGNhbmRpZGF0ZSkKIHsKICAgICBpZiAoYXJlRWxlbWVudHNPblNhbWVMaW5lKGN1cnJlbnQs
IGNhbmRpZGF0ZSkpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9u
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKKzEJMgkzCis0CQorCTYKKzcJOAk5CitQQVNTIGludGVybmFs
cy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlzIDkKK1BBU1MgaW50ZXJu
YWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgaXMgNgorUEFTUyBpbnRl
cm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSBpcyAyCitQQVNTIGlu
dGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlzIDkKK1BBU1Mg
aW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgaXMgNgorUEFT
UyBpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSBpcyAyCitQ
QVNTIGludGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlzIDUK
K1BBU1MgaW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgaXMg
MgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJj
aC1vcHRpbWl6YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRpb24uaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGlt
aXphdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMSBAQAorPGh0bWw+CisgIDwh
LS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgb3B0aW1pemF0aW9uIGRvbmUgaW4gc2VhcmNo
aW5nIGxvZ2ljIHRvIGZpbmQgYmVzdCBjYW5kaWRhdGUgZm9jdXNhYmxlIG5vZGUgd2l0aCBtaW5p
bXVtIGl0ZXJhdGlvbnMuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIFRlc3RSdW5u
ZXIgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBz
dGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gIjIiLgorICAgIDIp
IGxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkgcmV0dXJucyB0aGUgbnVtYmVy
IG9mIG5vZGVzIGFjdHVhbGx5IGNvbnNpZGVyZWQgdG8gZGV0ZXJtaW5lIGJlc3QgY2FuZGlkYXRl
IGZvY3VzYWJsZSBub2RlLAorICAgICAgIGFsb25nIHRoZSBtb3N0IHJlY2VudCBuYXZpZ2F0aW9u
IGRpcmVjdGlvbi4KKyAgLS0+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciByZXN1bHRNYXAgPSBbCisgICAg
ICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKQorICAgIHsKKyAgICAgICAgaW5pdFRlc3QocmVzdWx0TWFwLCBhZGRpdGlvbmFs
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWRkaXRpb25hbFRlc3QoKQorICAgIHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIjIiKS5mb2N1cygpOworICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgc2hvdWxkQmUoImludGVybmFs
cy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIiwgIjkiKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpbnRl
cm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICI2Iik7CisgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgi
aW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiMiIpOwor
ICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFycm93Iik7CisgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
bGVmdEFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZp
Z2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICI5Iik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oImxlZnRBcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmxhc3RTcGF0aWFs
TmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiNiIpOworICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJsZWZ0QXJyb3ciKTsKKyAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5sYXN0U3Bh
dGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIiwgIjIiKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmxhc3RT
cGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiNSIpOworICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubGFz
dFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICIyIik7CisgICAgICAgIHRlc3RD
b21wbGV0ZWQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisg
ICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9ImpzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGln
bjogbGVmdDsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsiIGJvcmRlcj0i
MSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIxIj4KKyAgICA8dGJvZHk+CisgICAgICAg
IDx0cj4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1h
bGlnbjogY2VudGVyOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPjE8L2E+PC90ZD4KKyAgICAgICAgICAg
IDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEg
aWQ9IjIiIGhyZWY9ImEiPjI8L2E+PC90ZD4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjMiIGhyZWY9ImEiPjM8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHN0
eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNCIgaHJlZj0iYSI+NDwvYT48L3RkPgor
ICAgICAgICAgICAgPHRkPjxicj48aWZyYW1lIHdpZHRoPScxMDAnIGhlaWdodD0nMTAwJyBzcmM9
ImRhdGE6dGV4dC9odG1sLAorCQkJPHRhYmxlIHN0eWxlPSd0ZXh0LWFsaWduOiBjZW50ZXI7IG1h
cmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87Jz4KKwkJCTx0Ym9keT4KKwkJCTx0
cj4KKyAgICAgICAgICAgIDx0ZCBzdHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyc+PGEgaWQ9JzUn
IGhyZWY9J2EnPjU8L2E+PC90ZD4KKwkJCTwvdHI+CisJCQk8L3Rib2R5PgorCQkJPC90YWJsZT4i
PgorCQkJPC9pZnJhbWU+CisJCQk8L3RkPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFs
aWduOiBjZW50ZXI7Ij48YSBpZD0iNiIgaHJlZj0iYSI+NjwvYT48L3RkPgorICAgICAgICA8L3Ry
PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI3IiBocmVmPSJhIj43PC9hPjwvdGQ+Cisg
ICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGlkPSI4IiBocmVmPSJhIj44PC9hPjwvdGQ+CisgICAgICAgICAgICA8dGQgc3R5
bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI5IiBo
cmVmPSJhIj45PC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKyAgICA8L3Rh
YmxlPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208002</attachid>
            <date>2013-08-02 04:26:44 -0700</date>
            <delta_ts>2013-08-05 06:08:06 -0700</delta_ts>
            <desc>Updated patch-4</desc>
            <filename>update_patch4.diff</filename>
            <type>text/plain</type>
            <size>15165</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDE1MzY0MikK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzkzLDYgKzM5MywxNiBAQAogICAgIHJldHVybiBwYXJlbnRUcmVlU2NvcGUgPyBwYXJlbnRU
cmVlU2NvcGUtPnJvb3ROb2RlKCkgOiAwOwogfQogCit1bnNpZ25lZCBJbnRlcm5hbHM6Omxhc3RT
cGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAor
eworICAgIGlmICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgpLT5wYWdl
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIHJldHVybiBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpLT5sYXN0U3Bh
dGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpOworfQorCiB1bnNpZ25lZCBJbnRlcm5hbHM6
Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGNvbnRleHRG
cmFtZSA9IGZyYW1lKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlz
aW9uIDE1MzY0MikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTk0LDYgKzk0LDkgQEAKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxl
bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNoYWRvd1BzZXVkb0lkKEVsZW1l
bnQqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICAvLyBTcGF0aWFsIE5h
dmlnYXRpb24gdGVzdGluZy4KKyAgICB1bnNpZ25lZCBsYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5k
aWRhdGVDb3VudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisKICAgICAvLyBDU1MgQW5pbWF0aW9u
IHRlc3RpbmcuCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7
CiAgICAgYm9vbCBhbmltYXRpb25zQXJlU3VzcGVuZGVkKERvY3VtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNp
b24gMTUzNjQyKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCw5IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSB0
cmVlU2NvcGVSb290Tm9kZShOb2RlIG5vZGUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUg
cGFyZW50VHJlZVNjb3BlKE5vZGUgbm9kZSk7CiAKKyAgICAvLyBTcGF0aWFsIE5hdmlnYXRpb24g
dGVzdGluZworICAgIFtSYWlzZXNFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgbGFzdFNwYXRpYWxO
YXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKTsKKwogICAgIC8vIENTUyBBbmltYXRpb24gdGVzdGlu
Zy4KICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwogICAgIFtS
YWlzZXNFeGNlcHRpb25dIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQgZG9jdW1lbnQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzNjQyKQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMtMDgtMDIgIEFiaGlq
ZWV0IEthbmRhbGthciAgPGFiaGlqZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlh
bCBOYXZpZ2F0aW9uIHNob3VsZCBhdm9pZCB1bndhbnRlZCBjYWxjdWxhdGlvbiB3aGlsZSBkZWNp
ZGluZyBmb2N1cyBjYW5kaWRhdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTcyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTcGF0aWFsIE5hdmlnYXRpb24gc2hvdWxkIGNvbnNpZGVyIG9ubHkgdGhv
c2Ugbm9kZXMgYXMgY2FuZGlkYXRlIHdoaWNoIGFyZSBleGFjdGx5IGluIHRoZSBmb2N1cy1kaXJl
Y3Rpb24uCisgICAgICAgIGUuZy4gSWYgd2UgYXJlIG1vdmluZyBkb3duIHRoZW4gdGhlIG5vZGVz
IHRoYXQgYXJlIGFib3ZlIENVUlJFTlQgZm9jdXNlZCBub2RlIHNob3VsZCBiZSBjb25zaWRlcmVk
IGFzIGludmFsaWQuCisgICAgICAgIEFkZGVkIGlzVmFsaWRDYW5kaWRhdGUoKSB3aGljaCBjaGVj
a3Mgd2hldGhlciBub2RlIGlzIGV4YWN0bHkgaW4gdGhlIGZvY3VzLWRpcmVjdGlvbi4KKworICAg
ICAgICBUZXN0OiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRp
b24uaHRtbAorCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNDYW5kaWRhdGVJbkNvbnRhaW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldExhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6Omxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KToKKyAgICAgICAg
KiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRD
YW5kaWRhdGUpOgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxh
c3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wOC0w
MSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zpbmcg
YW4gZW1wdHkgc3R5bGUgc2hlZXQgc2hvdWxkbid0IHRyaWdnZXIgc3R5bGUgcmVjYWxjLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAkocmV2aXNpb24gMTUzNjQy
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzYsNiArMTM2LDcgQEAKIGJvb2wgY2FuU2Nyb2xsSW5EaXJlY3Rpb24oY29uc3Qg
RnJhbWUqLCBGb2N1c0RpcmVjdGlvbik7CiBib29sIGNhbkJlU2Nyb2xsZWRJbnRvVmlldyhGb2N1
c0RpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUmKTsKIGJvb2wgYXJlRWxlbWVudHNPblNh
bWVMaW5lKGNvbnN0IEZvY3VzQ2FuZGlkYXRlJiBmaXJzdENhbmRpZGF0ZSwgY29uc3QgRm9jdXND
YW5kaWRhdGUmIHNlY29uZENhbmRpZGF0ZSk7Citib29sIGlzVmFsaWRDYW5kaWRhdGUoRm9jdXNE
aXJlY3Rpb24sIGNvbnN0IEZvY3VzQ2FuZGlkYXRlJiwgRm9jdXNDYW5kaWRhdGUmKTsKIHZvaWQg
ZGlzdGFuY2VEYXRhRm9yTm9kZShGb2N1c0RpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUm
IGN1cnJlbnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpOwogTm9kZSogc2Nyb2xsYWJsZUVu
Y2xvc2luZ0JveE9yUGFyZW50RnJhbWVGb3JOb2RlSW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24s
IE5vZGUqKTsKIExheW91dFJlY3Qgbm9kZVJlY3RJbkFic29sdXRlQ29vcmRpbmF0ZXMoTm9kZSos
IGJvb2wgaWdub3JlQm9yZGVyID0gZmFsc2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTUzNjQyKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjYsNiArNzY2LDcgQEAK
ICAgICBjdXJyZW50LmZvY3VzYWJsZU5vZGUgPSBmb2N1c2VkTm9kZTsKICAgICBjdXJyZW50LnZp
c2libGVOb2RlID0gZm9jdXNlZE5vZGU7CiAKKyAgICB1bnNpZ25lZCBjYW5kaWRhdGVDb3VudCA9
IDA7CiAgICAgZm9yICg7IGVsZW1lbnQ7IGVsZW1lbnQgPSAoZWxlbWVudC0+aXNGcmFtZU93bmVy
RWxlbWVudCgpIHx8IGNhblNjcm9sbEluRGlyZWN0aW9uKGVsZW1lbnQsIGRpcmVjdGlvbikpCiAg
ICAgICAgID8gRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oZWxlbWVudCwg
Y29udGFpbmVyKQogICAgICAgICA6IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHQoZWxlbWVudCwgY29u
dGFpbmVyKSkgewpAQCAtNzc5LDkgKzc4MCwyMCBAQAogICAgICAgICBpZiAoY2FuZGlkYXRlLmlz
TnVsbCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgaWYgKCFpc1ZhbGlkQ2Fu
ZGlkYXRlKGRpcmVjdGlvbiwgY3VycmVudCwgY2FuZGlkYXRlKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIGNhbmRpZGF0ZUNvdW50Kys7CiAgICAgICAgIGNhbmRpZGF0ZS5lbmNs
b3NpbmdTY3JvbGxhYmxlQm94ID0gY29udGFpbmVyOwogICAgICAgICB1cGRhdGVGb2N1c0NhbmRp
ZGF0ZUlmTmVlZGVkKGRpcmVjdGlvbiwgY3VycmVudCwgY2FuZGlkYXRlLCBjbG9zZXN0KTsKICAg
ICB9CisKKyAgICAvLyBUaGUgdmFyaWFibGUgJ2NhbmRpZGF0ZUNvdW50JyBrZWVwcyB0cmFjayBv
ZiB0aGUgbnVtYmVyIG9mIG5vZGVzIHRyYXZlcnNlZCBpbiBhIGdpdmVuIGNvbnRhaW5lci4KKyAg
ICAvLyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY29udGFpbmVyIGluIGEgcGFnZSB0aGVuIHRo
ZSB0b3RhbCBudW1iZXIgb2Ygbm9kZXMgdHJhdmVyc2VkIGlzIGVxdWFsIHRvIHRoZSBzdW0gb2Yg
bm9kZXMgdHJhdmVyc2VkIGluIGVhY2ggY29udGFpbmVyLgorICAgIGlmIChmb2N1c2VkRnJhbWUo
KSAmJiBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1lbnQoKSkgeworICAgICAgICBjYW5kaWRhdGVDb3Vu
dCArPSBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5sYXN0U3BhdGlhbE5hdmln
YXRpb25DYW5kaWRhdGVDb3VudCgpOworICAgICAgICBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1lbnQo
KS0+cGFnZSgpLT5zZXRMYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudChjYW5kaWRh
dGVDb3VudCk7CisgICAgfQogfQogCiBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
RGlyZWN0aW9uYWxseUluQ29udGFpbmVyKE5vZGUqIGNvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVj
dCYgc3RhcnRpbmdSZWN0LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQq
IGV2ZW50KQpAQCAtODY4LDcgKzg4MCw3IEBACiAKICAgICBpZiAoY29udGFpbmVyLT5pc0RvY3Vt
ZW50Tm9kZSgpKQogICAgICAgICB0b0RvY3VtZW50KGNvbnRhaW5lciktPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgICAgICAKKwogICAgIC8vIEZpZ3VyZSBvdXQg
dGhlIHN0YXJ0aW5nIHJlY3QuCiAgICAgTGF5b3V0UmVjdCBzdGFydGluZ1JlY3Q7CiAgICAgaWYg
KGZvY3VzZWRFbGVtZW50KSB7CkBAIC04ODIsNiArODk0LDkgQEAKICAgICAgICAgfQogICAgIH0K
IAorICAgIGlmIChmb2N1c2VkRnJhbWUoKSAmJiBmb2N1c2VkRnJhbWUoKS0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgZm9jdXNlZERvY3VtZW50LT5wYWdlKCktPnNldExhc3RTcGF0aWFsTmF2aWdhdGlv
bkNhbmRpZGF0ZUNvdW50KDApOworCiAgICAgYm9vbCBjb25zdW1lZCA9IGZhbHNlOwogICAgIGRv
IHsKICAgICAgICAgY29uc3VtZWQgPSBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5SW5Db250YWlu
ZXIoY29udGFpbmVyLCBzdGFydGluZ1JlY3QsIGRpcmVjdGlvbiwgZXZlbnQpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgJKHJldmlzaW9uIDE1MzY0MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MDksNiArNDA5LDggQEAKICAgICB2b2lkIGluY3JlbWVudEZy
YW1lSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudENvdW50KCk7CiAgICAgdm9pZCBkZWNyZW1lbnRG
cmFtZUhhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnRDb3VudCgpOwogICAgIGJvb2wgaXNBbnlGcmFt
ZUhhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoKTsKKyAgICB2b2lkIHNldExhc3RTcGF0aWFsTmF2
aWdhdGlvbkNhbmRpZGF0ZUNvdW50KHVuc2lnbmVkIGNvdW50KSB7IG1fbGFzdFNwYXRpYWxOYXZp
Z2F0aW9uQ2FuZGlkYXRlc0NvdW50ID0gY291bnQ7IH0KKyAgICB1bnNpZ25lZCBsYXN0U3BhdGlh
bE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFNwYXRpYWxO
YXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50OyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0R3Jv
dXAoKTsKQEAgLTU0Niw3ICs1NDgsOCBAQAogCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2VlblBs
dWdpbnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlhRW5naW5lczsKLSAgICAKKwor
ICAgIHVuc2lnbmVkIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50OwogICAg
IHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudDsKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTUzNjQyKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4Nyw3IEBACiAgICAgLCBtX3Nj
cmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGFnZVRocm90dGxlcihQ
YWdlVGhyb3R0bGVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2NvbnNvbGUoUGFnZUNvbnNvbGU6
OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0Nv
dW50KDApIC8vIE5PVEU6IE9ubHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZvciBTcGF0aWFsIE5h
dmlnYXRpb24gdGVzdGluZy4KICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVu
dCgwKQogewogICAgIEFTU0VSVChtX2VkaXRvckNsaWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAkocmV2aXNpb24gMTUzNjQyKQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYy
MCw2ICs2MjAsMjggQEAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLy8gQ29uc2lkZXIgb25seSB0
aG9zZSBub2RlcyBhcyBjYW5kaWRhdGUgd2hpY2ggYXJlIGV4YWN0bHkgaW4gdGhlIGZvY3VzLWRp
cmVjdGlvbi4KKy8vIGUuZy4gSWYgd2UgYXJlIG1vdmluZyBkb3duIHRoZW4gdGhlIG5vZGVzIHRo
YXQgYXJlIGFib3ZlIGN1cnJlbnQgZm9jdXNlZCBub2RlIHNob3VsZCBiZSBjb25zaWRlcmVkIGFz
IGludmFsaWQuCitib29sIGlzVmFsaWRDYW5kaWRhdGUoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
LCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3VycmVudCwgRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0
ZSkKK3sKKyAgICBMYXlvdXRSZWN0IGN1cnJlbnRSZWN0ID0gY3VycmVudC5yZWN0OworICAgIExh
eW91dFJlY3QgY2FuZGlkYXRlUmVjdCA9IGNhbmRpZGF0ZS5yZWN0OworCisgICAgc3dpdGNoIChk
aXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgcmV0dXJu
IGNhbmRpZGF0ZVJlY3QueCgpIDwgY3VycmVudFJlY3QubWF4WCgpOworICAgIGNhc2UgRm9jdXNE
aXJlY3Rpb25VcDoKKyAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZVJlY3QueSgpIDwgY3VycmVudFJl
Y3QubWF4WSgpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgcmV0dXJu
IGNhbmRpZGF0ZVJlY3QubWF4WCgpID4gY3VycmVudFJlY3QueCgpOworICAgIGNhc2UgRm9jdXNE
aXJlY3Rpb25Eb3duOgorICAgICAgICByZXR1cm4gY2FuZGlkYXRlUmVjdC5tYXhZKCkgPiBjdXJy
ZW50UmVjdC55KCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBkaXN0YW5jZURhdGFGb3JOb2Rl
KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgRm9jdXNDYW5kaWRhdGUmIGN1cnJlbnQs
IEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCiB7CiAgICAgaWYgKGFyZUVsZW1lbnRzT25TYW1l
TGluZShjdXJyZW50LCBjYW5kaWRhdGUpKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRpb24tZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNo
LW9wdGltaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXNlYXJjaC1vcHRpbWl6YXRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACisxCTIJMworNAkKKwk2Cis3CTgJOQor
UEFTUyBpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSBpcyA5
CitQQVNTIGludGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGlz
IDYKK1BBU1MgaW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkg
aXMgMgorUEFTUyBpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQo
KSBpcyA5CitQQVNTIGludGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3Vu
dCgpIGlzIDYKK1BBU1MgaW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNv
dW50KCkgaXMgMgorUEFTUyBpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRl
Q291bnQoKSBpcyA1CitQQVNTIGludGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRh
dGVDb3VudCgpIGlzIDIKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1zZWFyY2gtb3B0aW1pemF0aW9uLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXNlYXJjaC1vcHRpbWl6YXRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDEgQEAK
KzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIG9wdGltaXphdGlvbiBk
b25lIGluIHNlYXJjaGluZyBsb2dpYyB0byBmaW5kIGJlc3QgY2FuZGlkYXRlIGZvY3VzYWJsZSBu
b2RlIHdpdGggbWluaW11bSBpdGVyYXRpb25zLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAg
ICAxKSBUZXN0UnVubmVyIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAq
IE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRv
ICIyIi4KKyAgICAyKSBsYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIHJldHVy
bnMgdGhlIG51bWJlciBvZiBub2RlcyBhY3R1YWxseSBjb25zaWRlcmVkIHRvIGRldGVybWluZSBi
ZXN0IGNhbmRpZGF0ZSBmb2N1c2FibGUgbm9kZSwKKyAgICAgICBhbG9uZyB0aGUgbW9zdCByZWNl
bnQgbmF2aWdhdGlvbiBkaXJlY3Rpb24uCisgIC0tPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgcmVzdWx0
TWFwID0gWworICAgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAgIGluaXRUZXN0KHJlc3VsdE1h
cCwgYWRkaXRpb25hbFRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxUZXN0
KCkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCIyIikuZm9jdXMoKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgIHNob3Vs
ZEJlKCJpbnRlcm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICI5
Iik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCki
LCAiNiIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAg
ICAgc2hvdWxkQmUoImludGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3Vu
dCgpIiwgIjIiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmlnaHRBcnJvdyIpOwor
ICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oImxlZnRBcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmxh
c3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiOSIpOworICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsKKyAgICAgICAgc2hvdWxkQmUoImludGVybmFs
cy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIiwgIjYiKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpbnRl
cm5hbHMubGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlQ291bnQoKSIsICIyIik7CisgICAg
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKyAgICAgICAgc2hvdWxkQmUoImlu
dGVybmFscy5sYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIiwgIjUiKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOworICAgICAgICBzaG91bGRCZSgi
aW50ZXJuYWxzLmxhc3RTcGF0aWFsTmF2aWdhdGlvbkNhbmRpZGF0ZUNvdW50KCkiLCAiMiIpOwor
ICAgICAgICB0ZXN0Q29tcGxldGVkKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBs
ZXRlZCgpCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJqcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJzb21lLWNvbnRl
bnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8dGFibGUgc3R5
bGU9InRleHQtYWxpZ246IGxlZnQ7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1
dG87IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMSI+CisgICAgPHRi
b2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIxIiBocmVmPSJhIj4xPC9hPjwvdGQ+
CisgICAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246
IGNlbnRlcjsiPjxhIGlkPSIyIiBocmVmPSJhIj4yPC9hPjwvdGQ+CisgICAgICAgICAgICA8dGQg
c3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIz
IiBocmVmPSJhIj4zPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAg
ICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjQiIGhyZWY9ImEi
PjQ8L2E+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48YnI+PGlmcmFtZSB3aWR0aD0nMTAwJyBoZWln
aHQ9JzEwMCcgc3JjPSJkYXRhOnRleHQvaHRtbCwKKwkJCTx0YWJsZSBzdHlsZT0ndGV4dC1hbGln
bjogY2VudGVyOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyc+CisJCQk8
dGJvZHk+CisJCQk8dHI+CisgICAgICAgICAgICA8dGQgc3R5bGU9J3RleHQtYWxpZ246IGNlbnRl
cjsnPjxhIGlkPSc1JyBocmVmPSdhJz41PC9hPjwvdGQ+CisJCQk8L3RyPgorCQkJPC90Ym9keT4K
KwkJCTwvdGFibGU+Ij4KKwkJCTwvaWZyYW1lPgorCQkJPC90ZD4KKyAgICAgICAgICAgIDx0ZCBz
dHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPjY8L2E+PC90ZD4K
KyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0
aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNyIgaHJlZj0iYSI+
NzwvYT48L3RkPgorICAgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iOCIgaHJlZj0iYSI+ODwvYT48L3RkPgorICAgICAg
ICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7
Ij48YSBpZD0iOSIgaHJlZj0iYSI+OTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJv
ZHk+CisgICAgPC90YWJsZT4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzNjQyKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDgtMDIgIEFiaGlq
ZWV0IEthbmRhbGthciAgPGFiaGlqZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlh
bCBOYXZpZ2F0aW9uIHNob3VsZCBhdm9pZCB1bndhbnRlZCBjYWxjdWxhdGlvbiB3aGlsZSBkZWNp
ZGluZyBmb2N1cyBjYW5kaWRhdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTcyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCB0ZXN0Y2FzZXMgdG8gY291bnQgaG93IG1hbnkgdGFyZ2V0IG5v
ZGVzIHdlcmUgdGVzdGVkIGJlZm9yZSBjaG9vc2luZyBhIGZpbmFsIHRhcmdldC4KKworICAgICAg
ICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtc2VhcmNoLW9wdGltaXphdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
c2VhcmNoLW9wdGltaXphdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMy0wOC0wMiAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZyYW1lIGZsYXR0ZW5pbmc6IENoYW5n
ZSB0aGUgbG9naWMgb24gd2hldGhlciByZXNpemUgZXZlbnQgbmVlZHMgdG8gYmUgZGlzcGF0Y2hl
ZC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>