<?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>107494</bug_id>
          
          <creation_ts>2013-01-21 19:31:31 -0800</creation_ts>
          <short_desc>Add window occlusion criteria to determine page visibility on Mac</short_desc>
          <delta_ts>2013-02-09 01:34:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kiran Muppala">cmuppala</reporter>
          <assigned_to name="Kiran Muppala">cmuppala</assigned_to>
          <cc>buildbot</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>812536</commentid>
    <comment_count>0</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-21 19:31:31 -0800</bug_when>
    <thetext>Use window occlusion notifications on Mac to determine when the window corresponding to a WKView is occluded and notify the Page that it&apos;s visibility has changed.  This allows even the foreground tabs in a browser window to be treated like a background tab when the window is occluded and hence any power saving optimizations such as throttling timers or suspending animations can be applied to it as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812559</commentid>
    <comment_count>1</comment_count>
      <attachid>183876</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-21 20:14:39 -0800</bug_when>
    <thetext>Created attachment 183876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812590</commentid>
    <comment_count>2</comment_count>
      <attachid>183876</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-21 21:42:53 -0800</bug_when>
    <thetext>Comment on attachment 183876
Patch

Attachment 183876 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16031412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813000</commentid>
    <comment_count>3</comment_count>
      <attachid>183876</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-22 06:26:15 -0800</bug_when>
    <thetext>Comment on attachment 183876
Patch

Attachment 183876 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16045591</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813712</commentid>
    <comment_count>4</comment_count>
      <attachid>183876</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-22 20:02:46 -0800</bug_when>
    <thetext>Comment on attachment 183876
Patch

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

r- pending some discussion of the implementation

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1881
&gt; +    if (context == &amp;windowNumberPropertyObserverContext) {
&gt; +        id isPriorChange = [change objectForKey:NSKeyValueChangeNotificationIsPriorKey];
&gt; +        if (isPriorChange &amp;&amp; [isPriorChange isKindOfClass:[NSNumber class]] &amp;&amp; ([isPriorChange boolValue] == YES))
&gt; +            [self _removeFromWindowViewsMap];
&gt; +        else
&gt; +            [self _addToWindowViewsMap];
&gt; +    }

I don&apos;t understand why you have to observe the NSWindows&apos; windowNumber property. Does this ever change after window creation? Can&apos;t you just update the window view&apos;s map in viewWillMoveToWindow/viewDidMoveToWindow?

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2341
&gt; +    WindowViewsMap *windowViewMap = [WKView _windowViewsMap];
&gt; +    WindowViewsMap::iterator it = windowViewMap-&gt;find(windowID);
&gt; +    if (it != windowViewMap-&gt;end()) {
&gt; +        HashSet&lt;WKView *&gt;&amp; views = it-&gt;value;
&gt; +        for(HashSet&lt;WKView *&gt;::iterator view_it = views.begin(), view_end = views.end(); view_it != view_end; ++view_it) {
&gt; +            WKView *view = *view_it;
&gt; +            view-&gt;_data-&gt;_page-&gt;viewStateDidChange(WebPageProxy::ViewIsVisible);
&gt; +        }
&gt; +    }

So another way to do this would be to keep track of all WKViews, and just go through them all asking which window they are in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816037</commentid>
    <comment_count>5</comment_count>
      <attachid>184623</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-24 17:55:46 -0800</bug_when>
    <thetext>Created attachment 184623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816050</commentid>
    <comment_count>6</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-24 18:08:37 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 183876 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183876&amp;action=review
&gt; 
&gt; r- pending some discussion of the implementation
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:1881
&gt; &gt; +    if (context == &amp;windowNumberPropertyObserverContext) {
&gt; &gt; +        id isPriorChange = [change objectForKey:NSKeyValueChangeNotificationIsPriorKey];
&gt; &gt; +        if (isPriorChange &amp;&amp; [isPriorChange isKindOfClass:[NSNumber class]] &amp;&amp; ([isPriorChange boolValue] == YES))
&gt; &gt; +            [self _removeFromWindowViewsMap];
&gt; &gt; +        else
&gt; &gt; +            [self _addToWindowViewsMap];
&gt; &gt; +    }
&gt; 
&gt; I don&apos;t understand why you have to observe the NSWindows&apos; windowNumber property. Does this ever change after window creation? Can&apos;t you just update the window view&apos;s map in viewWillMoveToWindow/viewDidMoveToWindow?
&gt; 

I initially did this to handle the case of a NSWindow object not having a windowNumber assigned yet, such as during application launch.  But, after looking at the API documentation this property is not declared as being KVO observable.  So, I removed this observer and replaced it with willOrderOffScreen and didOrderOnScreen notifications.

&gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2341
&gt; &gt; +    WindowViewsMap *windowViewMap = [WKView _windowViewsMap];
&gt; &gt; +    WindowViewsMap::iterator it = windowViewMap-&gt;find(windowID);
&gt; &gt; +    if (it != windowViewMap-&gt;end()) {
&gt; &gt; +        HashSet&lt;WKView *&gt;&amp; views = it-&gt;value;
&gt; &gt; +        for(HashSet&lt;WKView *&gt;::iterator view_it = views.begin(), view_end = views.end(); view_it != view_end; ++view_it) {
&gt; &gt; +            WKView *view = *view_it;
&gt; &gt; +            view-&gt;_data-&gt;_page-&gt;viewStateDidChange(WebPageProxy::ViewIsVisible);
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; So another way to do this would be to keep track of all WKViews, and just go through them all asking which window they are in.

I removed the map and notifying views was easy enough but I ran into a problem with removing window ids from occluded windows set.  With the map, I can tell if there are no more views in a window and remove it from the occluded window set.  Without it, periodic pruning of the occluded window set becomes necessary.  Given that I find using the map easier.

Also fixed the build failure in latest patch due to missing #ifdef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816139</commentid>
    <comment_count>7</comment_count>
      <attachid>184649</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-24 20:41:53 -0800</bug_when>
    <thetext>Created attachment 184649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816140</commentid>
    <comment_count>8</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-24 20:42:54 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=184649) [details]
&gt; Patch

Re-uploading previous patch since EWS didn&apos;t seem to run with the old one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816239</commentid>
    <comment_count>9</comment_count>
      <attachid>184668</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-24 22:31:18 -0800</bug_when>
    <thetext>Created attachment 184668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816250</commentid>
    <comment_count>10</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-24 22:39:38 -0800</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2341
&gt; &gt; &gt; +    WindowViewsMap *windowViewMap = [WKView _windowViewsMap];
&gt; &gt; &gt; +    WindowViewsMap::iterator it = windowViewMap-&gt;find(windowID);
&gt; &gt; &gt; +    if (it != windowViewMap-&gt;end()) {
&gt; &gt; &gt; +        HashSet&lt;WKView *&gt;&amp; views = it-&gt;value;
&gt; &gt; &gt; +        for(HashSet&lt;WKView *&gt;::iterator view_it = views.begin(), view_end = views.end(); view_it != view_end; ++view_it) {
&gt; &gt; &gt; +            WKView *view = *view_it;
&gt; &gt; &gt; +            view-&gt;_data-&gt;_page-&gt;viewStateDidChange(WebPageProxy::ViewIsVisible);
&gt; &gt; &gt; +        }
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; So another way to do this would be to keep track of all WKViews, and just go through them all asking which window they are in.
&gt; 
&gt; I removed the map and notifying views was easy enough but I ran into a problem with removing window ids from occluded windows set.  With the map, I can tell if there are no more views in a window and remove it from the occluded window set.  Without it, periodic pruning of the occluded window set becomes necessary.  Given that I find using the map easier.
&gt; 

After some thought I realized I can eliminate the occluded window set if I add a boolean field to WKViewData for remember if it&apos;s window is occluded.  That would allow me to use the simpler loop through all WKViews when handling occlusion notifications as you suggested.

I used this approach in the latest patch and the code looks much simpler to me compared to using the map.  But, I am not sure if the extra boolean is acceptable.  I would like to choose a patch based on your feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816269</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-24 22:53:43 -0800</bug_when>
    <thetext>&gt; After some thought I realized I can eliminate the occluded window set if I add a boolean field to WKViewData for remember if it&apos;s window is occluded.  That would allow me to use the simpler loop through all WKViews when handling occlusion notifications as you suggested.
&gt; 
&gt; I used this approach in the latest patch and the code looks much simpler to me compared to using the map.  But, I am not sure if the extra boolean is acceptable.  I would like to choose a patch based on your feedback.

I think the boolean is fine; one per view is trivial overhead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816845</commentid>
    <comment_count>12</comment_count>
      <attachid>184794</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-25 12:33:47 -0800</bug_when>
    <thetext>Created attachment 184794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816846</commentid>
    <comment_count>13</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-25 12:35:59 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=184794) [details]
&gt; Patch

Only one change from previous patch, instead of directly setting _isWindowOccluded to &quot;NO&quot; from _disableWindowOcclusionNotifications, added a call to _setIsWindowOccluded: so that the associated page is made aware of a visibility change if necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816907</commentid>
    <comment_count>14</comment_count>
      <attachid>184794</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-25 14:09:14 -0800</bug_when>
    <thetext>Comment on attachment 184794
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:276
&gt; +    [[WKView _allViews] removeObject:self];

This will never get hit. -allViews retains, so you&apos;ll never hit this dealloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816974</commentid>
    <comment_count>15</comment_count>
      <attachid>184823</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-25 15:46:29 -0800</bug_when>
    <thetext>Created attachment 184823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816978</commentid>
    <comment_count>16</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-25 15:49:23 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 184794 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184794&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:276
&gt; &gt; +    [[WKView _allViews] removeObject:self];
&gt; 
&gt; This will never get hit. -allViews retains, so you&apos;ll never hit this dealloc.

Yeah, a bad bug I overlooked.  Fixed by replacing the NSMutableArray with a Vector and verified that dealloc was being called after the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818077</commentid>
    <comment_count>17</comment_count>
      <attachid>185057</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 14:05:27 -0800</bug_when>
    <thetext>Created attachment 185057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818084</commentid>
    <comment_count>18</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 14:08:14 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=185057) [details]
&gt; Patch

Modified _enableWindowOcclusionNotifications to only enable and use the current window occlusion state if the notification handlers were successfully registered.  The registration is unlikely to fail, but if it does, it is better to not mark any window as occluded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818101</commentid>
    <comment_count>19</comment_count>
      <attachid>185057</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-28 14:25:24 -0800</bug_when>
    <thetext>Comment on attachment 185057
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2277
&gt; +    // Occlusiont notifications for a given window might also be used else where in the

Occlusiont</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818147</commentid>
    <comment_count>20</comment_count>
      <attachid>185074</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 14:56:49 -0800</bug_when>
    <thetext>Created attachment 185074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818148</commentid>
    <comment_count>21</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 14:57:03 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 185057 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185057&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2277
&gt; &gt; +    // Occlusiont notifications for a given window might also be used else where in the
&gt; 
&gt; Occlusiont

Fixed typo, no other changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818303</commentid>
    <comment_count>22</comment_count>
      <attachid>185074</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-28 17:24:52 -0800</bug_when>
    <thetext>Comment on attachment 185074
Patch

Attachment 185074 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16155847

New failing tests:
fast/workers/worker-lifecycle.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818320</commentid>
    <comment_count>23</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 17:53:23 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 185074 [details])
&gt; Attachment 185074 [details] did not pass mac-wk2-ews (mac-wk2):
&gt; Output: http://queues.webkit.org/results/16155847
&gt; 
&gt; New failing tests:
&gt; fast/workers/worker-lifecycle.html

This test seems to be flaky and is failing even without my patch.
webkit-ews-11 shows &quot;Unable to pass tests without patch (tree is red?)&quot;
http://queues.webkit.org/queue-status/mac-wk2-ews/bots/webkit-ews-11
http://queues.webkit.org/results/16155803</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818462</commentid>
    <comment_count>24</comment_count>
      <attachid>185074</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 21:12:40 -0800</bug_when>
    <thetext>Comment on attachment 185074
Patch

Clearing flags on attachment: 185074

Committed r141045: &lt;http://trac.webkit.org/changeset/141045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818463</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 21:12:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828982</commentid>
    <comment_count>26</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-02-09 01:34:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/12960662&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183876</attachid>
            <date>2013-01-21 20:14:39 -0800</date>
            <delta_ts>2013-01-24 17:55:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130121201135.patch</filename>
            <type>text/plain</type>
            <size>16308</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uMWEyOWVkY2Y4N2U2ZjY3YThkOGM0YThmNTJhMGNl
OTZkNTBkYWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAxLTIxICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgd2luZG93IHRvIHZpZXdzIG1hcC4KKyAgICAgICAgKC1b
V0tWaWV3IGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzpdKTogUmVnaXN0ZXIgb2JzZXJ2ZXIg
Zm9yCisgICAgICAgICJ3aW5kb3dOdW1iZXIiIHByb3BlcnR5IGNoYW5nZXMuCisgICAgICAgICgt
W1dLVmlldyByZW1vdmVXaW5kb3dPYnNlcnZlcnNdKTogVW5yZWdpc3RlciBvYnNlcnZlciBmb3Ig
ZGl0dG8uCisgICAgICAgICgtW1dLVmlldyBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0
OmNoYW5nZTpjb250ZXh0Ol0pOiBVcGRhdGUKKyAgICAgICAgd2luZG93IHRvIHZpZXdzIG1hcCB3
aGVuIHdpbmRvd051bWJlciBjaGFuZ2VzLgorICAgICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3Zl
VG9XaW5kb3c6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZE1vdmVUb1dpbmRv
d10pOiBEaXR0by4KKyAgICAgICAgKC1bV0tWaWV3IF9hZGRUb1dpbmRvd1ZpZXdzTWFwXSk6IFVw
ZGF0ZSBoYXNoIHRhYmxlIGFuZCBlbmFibGUgd2luZG93CisgICAgICAgIG9jY2x1c2lvbiBub3Rp
ZmljYXRpb25zIHVwb24gdGhlIGFkZGl0aW9uIHRoZSBhZGRpdGlvbiBvZiBmaXJzdCB2aWV3Cisg
ICAgICAgIGluIGEgd2luZG93LgorICAgICAgICAoLVtXS1ZpZXcgX3JlbW92ZUZyb21XaW5kb3dW
aWV3c01hcF0pOiBVcGRhdGUgaGFzaCB0YWJsZSBhbmQgdW5yZWdpc3RlcgorICAgICAgICB3aW5k
b3cgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgaWYgdGhlIG1hcCBpcyBlbXB0eS4gIENsZWFyIHdp
bmRvd3MKKyAgICAgICAgd2l0aG91dCB2aWV3cyBmcm9tIHRoZSBvY2NsdWRlZCB3aW5kb3dzIHNl
dC4KKyAgICAgICAgKCtbV0tWaWV3IF93aW5kb3dEaWRCZWNvbWVWaXNpYmxlOl0pOgorICAgICAg
ICAoK1tXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZU9jY2x1ZGVkOl0pOgorICAgICAgICAoK1tXS1Zp
ZXcgX25vdGlmeVZpc2liaWxpdHlDaGFuZ2VUb1ZpZXdzSW5XaW5kb3c6XSk6CisgICAgICAgICh3
aW5kb3dCZWNhbWVWaXNpYmxlKToKKyAgICAgICAgKHdpbmRvd0JlY2FtZU9jY2x1ZGVkKToKKyAg
ICAgICAgKCtbV0tWaWV3IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRs
ZXJzXSk6CisgICAgICAgICgrW1dLVmlldyBfdW5yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlm
aWNhdGlvbkhhbmRsZXJzXSk6CisgICAgICAgICgrW1dLVmlldyBfZW5hYmxlT2NjbHVzaW9uTm90
aWZpY2F0aW9uc0ZvcldpbmRvdzpdKToKKyAgICAgICAgKCtbV0tWaWV3IF93aW5kb3dWaWV3c01h
cF0pOiBIYXNoIHRhYmxlIGZyb20gd2luZG93IG51bWJlciB0byBpdHMKKyAgICAgICAgc2V0IG9m
IHZpZXdzLgorICAgICAgICAoK1tXS1ZpZXcgX29jY2x1ZGVkV2luZG93c10pOiBTZXQgb2Ygb2Nj
bHVkZWQgd2luZG93cy4KKyAgICAgICAgKC1bV0tWaWV3IF9pc1dpbmRvd09jY2x1ZGVkXSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDoKKwogMjAxMy0wMS0x
NyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMTM5NTE2KTogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVjZWl2ZWRSZWRp
cmVjdCBpcyBub3QgY2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA1NjcwMzE5NzUzODE3NGY3YjQ2MWQ5ZWM1NDY2
ZDBjMGM1NzUwOGNlLi4yYTYyN2EwNmJkNzUzMzgyNTk2YjMwZmRlNWZkMmRiNGEwOWNlYmJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQpAQCAtMjAwLDYgKzIwMCw5IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2li
bGUoKQogICAgIGlmIChbbV93a1ZpZXcgaXNIaWRkZW5Pckhhc0hpZGRlbkFuY2VzdG9yXSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKFttX3drVmlldyBfaXNXaW5kb3dPY2NsdWRl
ZF0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNzA4MmYwNjRmNTJk
MmI4ZmYxMjNhZDYxNmUzZjM1NjIwYWNmNjI3OC4uNzAwZjJiZTAwNmViNGYzYzlmMjY5ODE1YjA5
MTIwOWJmNjU3MmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQpAQCAtOTMsNiArOTMsMTEgQEAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXBJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBJbnRlcm5hbC5oIgogCitzdGF0aWMg
TlNTdHJpbmcgKiBjb25zdCBrV2luZG93TnVtYmVyUHJvcGVydHkgPSBAIndpbmRvd051bWJlciI7
CitzdGF0aWMgaW50IHdpbmRvd051bWJlclByb3BlcnR5T2JzZXJ2ZXJDb250ZXh0OworI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorc3RhdGljIGJvb2wgd2luZG93
T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQgPSBmYWxzZTsKKyNlbmRpZgogCiBA
aW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdLTlNBcHBsaWNhdGlvbkRldGFpbHMpCiAtICh2b2lk
KXNwZWFrU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZzsKQEAgLTExOCw2ICsxMjMsOCBAQCB0eXBl
ZGVmIGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0aW9uSXRlbTsKIHR5
cGVkZWYgVmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4gPiBWYWxpZGF0aW9uVmVjdG9y
OwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmFsaWRhdGlvblZlY3Rvcj4gVmFsaWRhdGlvbk1h
cDsKIAordHlwZWRlZiBIYXNoTWFwPE5TSW50ZWdlciwgSGFzaFNldDxXS1ZpZXcgKj4gPldpbmRv
d1ZpZXdzTWFwOworCiB9CiAKIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0
ZXJzIHsKQEAgLTEzNSw2ICsxNDIsMTggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50
c1BhcmFtZXRlcnMgewogLSAodm9pZClfc2V0RHJhd2luZ0FyZWFTaXplOihOU1NpemUpc2l6ZTsK
IC0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTooUGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlKXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsKIC0gKEJPT0wpX3Nob3Vs
ZFVzZVRpbGVkRHJhd2luZ0FyZWE7CistICh2b2lkKV9hZGRUb1dpbmRvd1ZpZXdzTWFwOworLSAo
dm9pZClfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAorKyAodm9pZClfd2luZG93RGlkQmVjb21lVmlzaWJsZTooTlNJ
bnRlZ2VyKXdpbmRvd0lEOworKyAodm9pZClfd2luZG93RGlkQmVjb21lT2NjbHVkZWQ6KE5TSW50
ZWdlcil3aW5kb3dJRDsKKysgKHZvaWQpX25vdGlmeVZpc2liaWxpdHlDaGFuZ2VUb1ZpZXdzSW5X
aW5kb3c6KE5TSW50ZWdlcil3aW5kb3dJRDsKKysgKHZvaWQpX3JlZ2lzdGVyV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV91bnJlZ2lzdGVyV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV9lbmFibGVPY2NsdXNpb25Ob3RpZmlj
YXRpb25zRm9yV2luZG93OihOU0ludGVnZXIpd2luZG93SUQ7CisrIChXaW5kb3dWaWV3c01hcCAq
KV93aW5kb3dWaWV3c01hcDsKKysgKEhhc2hTZXQ8TlNJbnRlZ2VyPiAqKV9vY2NsdWRlZFdpbmRv
d3M7CisjZW5kaWYKIEBlbmQKIAogQGludGVyZmFjZSBXS1ZpZXdEYXRhIDogTlNPYmplY3QgewpA
QCAtMjYxLDYgKzI4MCw4IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0
ZXJzIHsKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7CiAKKyAgICBbc2Vs
ZiBfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXTsKKwogICAgIFdlYkNvbnRleHQ6OnN0YXRpc3Rp
Y3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpAQCAtMTgyNSw2ICsx
ODQ2LDggQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVG
YWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTp3aW5kb3dEaWRDaGFuZ2VCYWNraW5n
UHJvcGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAgICAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlU2NyZWVuOikKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVl
bk5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICAgICAgW3dpbmRvdyBhZGRPYnNlcnZl
cjpzZWxmIGZvcktleVBhdGg6a1dpbmRvd051bWJlclByb3BlcnR5IG9wdGlvbnM6TlNLZXlWYWx1
ZU9ic2VydmluZ09wdGlvblByaW9yCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6JndpbmRv
d051bWJlclByb3BlcnR5T2JzZXJ2ZXJDb250ZXh0XTsKICAgICB9CiB9CiAKQEAgLTE4NDQsNiAr
MTg2NywxOCBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2Fs
ZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93
RGlkQmVjb21lVmlzaWJsZSIgb2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6d2luZG93RGlkQ2hh
bmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Cisg
ICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6a1dpbmRvd051bWJlclBy
b3BlcnR5XTsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAq
KWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5n
ZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIGlmIChjb250ZXh0ID09ICZ3aW5kb3dO
dW1iZXJQcm9wZXJ0eU9ic2VydmVyQ29udGV4dCkgeworICAgICAgICBpZCBpc1ByaW9yQ2hhbmdl
ID0gW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJp
b3JLZXldOworICAgICAgICBpZiAoaXNQcmlvckNoYW5nZSAmJiBbaXNQcmlvckNoYW5nZSBpc0tp
bmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dICYmIChbaXNQcmlvckNoYW5nZSBib29sVmFsdWVd
ID09IFlFUykpCisgICAgICAgICAgICBbc2VsZiBfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgW3NlbGYgX2FkZFRvV2luZG93Vmlld3NNYXBdOwor
ICAgIH0KIH0KIAogLSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5k
b3cKQEAgLTE4NjUsMTAgKzE5MDAsMTMgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2lu
Z1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAK
ICAgICBbc2VsZiByZW1vdmVXaW5kb3dPYnNlcnZlcnNdOwogICAgIFtzZWxmIGFkZFdpbmRvd09i
c2VydmVyc0ZvcldpbmRvdzp3aW5kb3ddOworICAgIFtzZWxmIF9yZW1vdmVGcm9tV2luZG93Vmll
d3NNYXBdOwogfQogCiAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIHsKKyAgICBbc2VsZiBf
YWRkVG9XaW5kb3dWaWV3c01hcF07CisKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1
cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIGlmIHRoZSB2aWV3IGlzIGFi
b3V0IHRvIGJlY29tZSB2aXNpYmxlLCB3ZQogICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRl
IGZpcnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4gSWYgdGhlIHZpZXcgaXMgYWJvdXQgdG8g
YmUgaGlkZGVuLCB3ZSBoaWRlIGl0IGZpcnN0IGFuZCB0aGVuCiAgICAgLy8gdXBkYXRlIHRoZSBh
Y3RpdmUgc3RhdGUuCkBAIC0yMjA4LDYgKzIyNDYsMTc3IEBAIHN0YXRpYyB2b2lkIGRyYXdQYWdl
QmFja2dyb3VuZChDR0NvbnRleHRSZWYgY29udGV4dCwgV2ViUGFnZVByb3h5KiBwYWdlLCBjb25z
dCBJCiB9CiAjZW5kaWYKIAorLSAodm9pZClfYWRkVG9XaW5kb3dWaWV3c01hcAoreworI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorICAgIE5TV2luZG93ICp3aW5k
b3cgPSBbc2VsZiB3aW5kb3ddOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisK
KyAgICBOU0ludGVnZXIgd2luZG93SUQgPSBbd2luZG93IHdpbmRvd051bWJlcl07CisgICAgaWYg
KHdpbmRvd0lEIDw9IDApCisgICAgICAgIHJldHVybjsKKworICAgIFdpbmRvd1ZpZXdzTWFwICpt
YXAgPSBbV0tWaWV3IF93aW5kb3dWaWV3c01hcF07CisgICAgV2luZG93Vmlld3NNYXA6OkFkZFJl
c3VsdCBhZGRSZXN1bHQgPSBtYXAtPmFkZCh3aW5kb3dJRCwgSGFzaFNldDxXS1ZpZXcqPigpKTsK
KyAgICBIYXNoU2V0PFdLVmlldyo+JiB2aWV3cyA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7
CisKKyAgICBib29sIHZpZXdzV2VyZUVtcHR5ID0gdmlld3MuaXNFbXB0eSgpOworICAgIHZpZXdz
LmFkZChzZWxmKTsKKyAgICBpZiAodmlld3NXZXJlRW1wdHkpIHsKKyAgICAgICAgW1dLVmlldyBf
cmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc107CisgICAgICAgIFtX
S1ZpZXcgX2VuYWJsZU9jY2x1c2lvbk5vdGlmaWNhdGlvbnNGb3JXaW5kb3c6d2luZG93SURdOwor
ICAgIH0KKyNlbmRpZgorfQorCistICh2b2lkKV9yZW1vdmVGcm9tV2luZG93Vmlld3NNYXAKK3sK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyAgICBOU1dpbmRv
dyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0
dXJuOworCisgICAgTlNJbnRlZ2VyIHdpbmRvd0lEID0gW3dpbmRvdyB3aW5kb3dOdW1iZXJdOwor
ICAgIGlmICh3aW5kb3dJRCA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBXaW5kb3dWaWV3
c01hcCogbWFwID0gW1dLVmlldyBfd2luZG93Vmlld3NNYXBdOworICAgIFdpbmRvd1ZpZXdzTWFw
OjppdGVyYXRvciBpdCA9IG1hcC0+ZmluZCh3aW5kb3dJRCk7CisgICAgaWYgKGl0ID09IG1hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hTZXQ8V0tWaWV3Kj4mIHZpZXdzID0g
aXQtPnZhbHVlOworICAgIHZpZXdzLnJlbW92ZShzZWxmKTsKKyAgICBib29sIHZpZXdzQXJlRW1w
dHkgPSB2aWV3cy5pc0VtcHR5KCk7CisgICAgaWYgKCF2aWV3c0FyZUVtcHR5KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtYXAtPnJlbW92ZShpdCk7CisgICAgaWYgKG1hcC0+aXNFbXB0eSgpKQor
ICAgICAgICBbV0tWaWV3IF91bnJlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFu
ZGxlcnNdOworICAgIFtXS1ZpZXcgX29jY2x1ZGVkV2luZG93c10tPnJlbW92ZSh3aW5kb3dJRCk7
CisjZW5kaWYKK30KKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5
MAorKyAodm9pZClfd2luZG93RGlkQmVjb21lVmlzaWJsZTooTlNJbnRlZ2VyKXdpbmRvd0lECit7
CisgICAgaWYgKHdpbmRvd0lEIDw9IDApCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hTZXQ8
TlNJbnRlZ2VyPiAqb2NjbHVkZWRXaW5kb3dzID0gW1dLVmlldyBfb2NjbHVkZWRXaW5kb3dzXTsK
KyAgICBIYXNoU2V0PE5TSW50ZWdlcj46Oml0ZXJhdG9yIGl0ID0gb2NjbHVkZWRXaW5kb3dzLT5m
aW5kKHdpbmRvd0lEKTsKKyAgICBpZiAoaXQgPT0gb2NjbHVkZWRXaW5kb3dzLT5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgb2NjbHVkZWRXaW5kb3dzLT5yZW1vdmUoaXQpOworICAgIFtX
S1ZpZXcgX25vdGlmeVZpc2liaWxpdHlDaGFuZ2VUb1ZpZXdzSW5XaW5kb3c6d2luZG93SURdOwor
fQorCisrICh2b2lkKV93aW5kb3dEaWRCZWNvbWVPY2NsdWRlZDooTlNJbnRlZ2VyKXdpbmRvd0lE
Cit7CisgICAgaWYgKHdpbmRvd0lEIDw9IDApCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hT
ZXQ8TlNJbnRlZ2VyPiAqb2NjbHVkZWRXaW5kb3dzID0gW1dLVmlldyBfb2NjbHVkZWRXaW5kb3dz
XTsKKyAgICBIYXNoU2V0PE5TSW50ZWdlcj46Oml0ZXJhdG9yIGl0ID0gb2NjbHVkZWRXaW5kb3dz
LT5maW5kKHdpbmRvd0lEKTsKKyAgICBpZiAoaXQgIT0gb2NjbHVkZWRXaW5kb3dzLT5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgb2NjbHVkZWRXaW5kb3dzLT5hZGQod2luZG93SUQpOwor
ICAgIFtXS1ZpZXcgX25vdGlmeVZpc2liaWxpdHlDaGFuZ2VUb1ZpZXdzSW5XaW5kb3c6d2luZG93
SURdOworfQorCisrICh2b2lkKV9ub3RpZnlWaXNpYmlsaXR5Q2hhbmdlVG9WaWV3c0luV2luZG93
OihOU0ludGVnZXIpd2luZG93SUQKK3sKKyAgICBXaW5kb3dWaWV3c01hcCAqd2luZG93Vmlld01h
cCA9IFtXS1ZpZXcgX3dpbmRvd1ZpZXdzTWFwXTsKKyAgICBXaW5kb3dWaWV3c01hcDo6aXRlcmF0
b3IgaXQgPSB3aW5kb3dWaWV3TWFwLT5maW5kKHdpbmRvd0lEKTsKKyAgICBpZiAoaXQgIT0gd2lu
ZG93Vmlld01hcC0+ZW5kKCkpIHsKKyAgICAgICAgSGFzaFNldDxXS1ZpZXcgKj4mIHZpZXdzID0g
aXQtPnZhbHVlOworICAgICAgICBmb3IoSGFzaFNldDxXS1ZpZXcgKj46Oml0ZXJhdG9yIHZpZXdf
aXQgPSB2aWV3cy5iZWdpbigpLCB2aWV3X2VuZCA9IHZpZXdzLmVuZCgpOyB2aWV3X2l0ICE9IHZp
ZXdfZW5kOyArK3ZpZXdfaXQpIHsKKyAgICAgICAgICAgIFdLVmlldyAqdmlldyA9ICp2aWV3X2l0
OworICAgICAgICAgICAgdmlldy0+X2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2Vi
UGFnZVByb3h5OjpWaWV3SXNWaXNpYmxlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGlj
IHZvaWQgd2luZG93QmVjYW1lVmlzaWJsZSh1aW50MzJfdCwgdm9pZCogZGF0YSwgdWludDMyX3Qg
ZGF0YUxlbmd0aCwgdm9pZCosIHVpbnQzMl90KQoreworICAgIEFTU0VSVChkYXRhTGVuZ3RoID09
IHNpemVvZihXS1dpbmRvd0lEKSk7CisgICAgV0tXaW5kb3dJRCB3aW5kb3dJRCA9ICooV0tXaW5k
b3dJRCAqKWRhdGE7CisgICAgW1dLVmlldyBfd2luZG93RGlkQmVjb21lVmlzaWJsZTp3aW5kb3dJ
RF07Cit9CisKK3N0YXRpYyB2b2lkIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKHVpbnQzMl90LCB2b2lk
KiBkYXRhLCB1aW50MzJfdCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpCit7CisgICAgQVNT
RVJUKGRhdGFMZW5ndGggPT0gc2l6ZW9mKFdLV2luZG93SUQpKTsKKyAgICBXS1dpbmRvd0lEIHdp
bmRvd0lEID0gKihXS1dpbmRvd0lEICopZGF0YTsKKyAgICBbV0tWaWV3IF93aW5kb3dEaWRCZWNv
bWVPY2NsdWRlZDp3aW5kb3dJRF07Cit9CisKKysgKHZvaWQpX3JlZ2lzdGVyV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9uSGFuZGxlcnMKK3sKKyAgICBpZiAod2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisgICAgICAgIHJldHVybjsKKyAgICB3aW5kb3dPY2NsdXNp
b25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9IHRydWU7CisKKyAgICBpZiAoIVdLUmVnaXN0
ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlw
ZVdpbmRvd0JlY2FtZVZpc2libGUsIHdpbmRvd0JlY2FtZVZpc2libGUpKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgVmlzaWJsZVwiIG5v
dGlmaWNhdGlvbiBoYW5kbGVyIGZhaWxlZC5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIAorICAgIGlmICghV0tSZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tP
Y2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2NjbHVkZWQsIHdpbmRvd0JlY2Ft
ZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlJlZ2lzdGVyYXRpb24gb2YgXCJX
aW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKKysgKHZvaWQpX3VucmVnaXN0ZXJXaW5kb3dP
Y2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycworeworICAgIGlmICghd2luZG93T2NjbHVzaW9u
Tm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisgICAgICAgIHJldHVybjsKKyAgICB3aW5kb3dP
Y2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9IGZhbHNlOworCisgICAgaWYgKCFX
S1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZp
Y2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkLCB3aW5kb3dCZWNhbWVPY2NsdWRlZCkpIHsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lzdGVyYXRpb24gb2YgXCJXaW5kb3cgQmVjYW1l
IE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFXS1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2li
bGUsIHdpbmRvd0JlY2FtZVZpc2libGUpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiVW5yZWdp
c3RlcmF0aW9uIG9mIFwiV2luZG93IEJlY2FtZSBWaXNpYmxlXCIgbm90aWZpY2F0aW9uIGhhbmRs
ZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKKysgKHZvaWQpX2Vu
YWJsZU9jY2x1c2lvbk5vdGlmaWNhdGlvbnNGb3JXaW5kb3c6KE5TSW50ZWdlcil3aW5kb3dJRAor
eworICAgIGlmICh3aW5kb3dJRCA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGlz
V2luZG93T2NjbHVkZWQgPSBmYWxzZTsKKyAgICBpZiAoIVdLRW5hYmxlV2luZG93T2NjbHVzaW9u
Tm90aWZpY2F0aW9ucyh3aW5kb3dJRCwgJmlzV2luZG93T2NjbHVkZWQpKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiRW5hYmxpbmcgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb25zIGZvciB3
aW5kb3cgJWxkIGZhaWxlZC5cbiIsIHdpbmRvd0lEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChpc1dpbmRvd09jY2x1ZGVkKQorICAgICAgICBbV0tWaWV3IF93aW5kb3dEaWRC
ZWNvbWVPY2NsdWRlZDp3aW5kb3dJRF07Cit9CisKKysgKFdpbmRvd1ZpZXdzTWFwICopX3dpbmRv
d1ZpZXdzTWFwCit7CisgICAgc3RhdGljIFdpbmRvd1ZpZXdzTWFwICptYXAgPSBuZXcgV2luZG93
Vmlld3NNYXAoKTsKKyAgICByZXR1cm4gbWFwOworfQorCisrIChIYXNoU2V0PE5TSW50ZWdlcj4g
Kilfb2NjbHVkZWRXaW5kb3dzCit7CisgICAgc3RhdGljIEhhc2hTZXQ8TlNJbnRlZ2VyPiAqc2V0
ID0gbmV3IEhhc2hTZXQ8TlNJbnRlZ2VyPigpOworICAgIHJldHVybiBzZXQ7Cit9CisjZW5kaWYK
KwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3IChJbnRlcm5hbCkKQEAgLTI4OTcsNiAr
MzEwNiwxOSBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRo
KE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPnN1cHByZXNzVmlzaWJp
bGl0eVVwZGF0ZXMoKTsKIH0KIAorLSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZAoreworICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3ddOworICAgIGlmICghd2luZG93KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBOU0ludGVnZXIgd2luZG93SUQgPSBbd2luZG93IHdpbmRv
d051bWJlcl07CisgICAgaWYgKHdpbmRvd0lEIDw9IDApCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHJldHVybiBbV0tWaWV3IF9vY2NsdWRlZFdpbmRvd3NdLT5jb250YWlucyh3aW5kb3dJ
RCk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlldyAoUHJpdmF0ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4
IDIzNTAwYWM2YWY3MzJhMjE3MDIwNmYyZThmMjI2M2RjMWQ5YzJlZTUuLjMzZjdiZDczYTU2ZDA1
OTQ4ODE3NzlhMjQwZTQ4Yzc2YmI2MzNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtMTAxLDQgKzEwMSw2IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogLSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9P
TClzdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwogLSAoQk9PTClfc3VwcHJlc3NWaXNpYmlsaXR5
VXBkYXRlczsKIAorLSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZDsKKwogQGVuZApkaWZmIC0tZ2l0
IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cK
aW5kZXggMzc2ZmQxZThhY2VmZGZlZjg1ZjdkNzBjN2E0YmE5ZDhmYTY0N2ZiYy4uN2U4MWE0MDQw
ZTg1YTM2MzUzMDA0OWQ5ODc4ODk2NjQ5ZDBiZDQwNCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFy
aWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTMtMDEtMjEgIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHdpbmRvdyBvY2NsdXNpb24gY3JpdGVyaWEgdG8gZGV0ZXJtaW5lIHBhZ2Ug
dmlzaWJpbGl0eSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNzQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBlbnVtIGNvbnN0YW50cyB0byBzcGVjaWZ5IHdpbmRvdyBvY2NsdXNpb24g
bm90aWZpY2F0aW9uIHR5cGUgdG8KKyAgICAgICAgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi91
bnJlZ2lzdHJhdGlvbiBtZXRob2RzLiAgQWRkIHR5cGVkZWYgZm9yCisgICAgICAgIHdpbmRvdyBJ
RCBkYXRhIHBhc3NlZCB0byB0aGUgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb24gaGFuZGxl
ci4KKyAgICAgICAgQWRkIG1ldGhvZCBlbmFibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9y
IGEgcGFydGljdWxhciB3aW5kb3cuCisKKyAgICAgICAgKiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aDogQWRkCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZp
c2libGUsCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9j
Y2x1ZGVkLAorICAgICAgICBXS1dpbmRvd0lELAorICAgICAgICBXS0VuYWJsZVdpbmRvd09jY2x1
c2lvbk5vdGlmaWNhdGlvbnMoKS4KKwogMjAxMy0wMS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2Zv
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJraXRTeXN0ZW1JbnRlcmZhY2UgbGli
IGZvciBXaW5kb3dzIHBvcnQuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmggYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgK
aW5kZXggY2RjZDVmYmRlNWNjMWMzYjVlMzEwOWMxZTcxMTFhYTc5M2MzMDFmZi4uOWVkMzZmMDFh
M2M0OTQwZmUxYTcyMjM1YjczOWM4YjIwNGMzYzFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5oCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaApAQCAtNTIyLDEzICs1MjIsMTggQEAgQ0ZTdHJpbmdSZWYgV0tDYXB0
aW9uQXBwZWFyYW5jZUdldFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbih2b2lkKTsKICNpZiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiB0eXBlZGVmIGVudW0gewogICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lVmlzaWJsZSwKLSAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkCisg
ICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVPY2NsdWRlZCwK
KyAgICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLAorICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkCiB9IFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZTsKIAotdHlwZWRlZiB2b2lkICgqV0tPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyKSh1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90LCB2b2lkKiwgdWludDMy
X3QpOwordHlwZWRlZiB1aW50MzJfdCBXS1dpbmRvd0lEOworCit0eXBlZGVmIHZvaWQgKCpXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJf
dCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpOwogCiBib29sIFdLUmVnaXN0ZXJPY2NsdXNp
b25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKTsKIGJvb2wgV0tVbnJlZ2lzdGVyT2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGUsIFdLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uSGFuZGxlcik7Citib29sIFdLRW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9ucyhOU0ludGVnZXIgd2luZG93SUQsIGJvb2wgKm91dEN1cnJlbnRPY2NsdXNpb25TdGF0
ZSk7CiAKIGVudW0gewogICAgIFdLUHJvY2Vzc0Fzc2VydGlvblR5cGVWaXNpYmxlID0gKDFVTCA8
PCAxMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184623</attachid>
            <date>2013-01-24 17:55:46 -0800</date>
            <delta_ts>2013-01-24 20:41:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130124175238.patch</filename>
            <type>text/plain</type>
            <size>17448</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uZWI5MDA0MDFkMWRlNzJmZjg1OWFjNmFkYmFjNjAy
ODYxYTg1ZjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAxLTI0ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgd2luZG93IHRvIHZpZXdzIG1hcC4KKyAgICAgICAgKC1b
V0tWaWV3IGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzpdKTogUmVnaXN0ZXIgb2JzZXJ2ZXIg
Zm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAg
ICAgICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXSk6IFVucmVnaXN0ZXIgb2JzZXJ2
ZXIgZm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgor
ICAgICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6XSk6IFVwZGF0ZSB3aW5kb3cg
dG8gdmlld3MgbWFwLgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOiBE
aXR0by4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dXaWxsT3JkZXJPZmZTY3JlZW46XSk6IEFk
ZCBvYnNlcnZlci4gIERpdHRvLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE9yZGVyT25T
Y3JlZW46XSk6IERpdHRvLiAgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZQorICAgICAgICBhIHZp
ZXcgY2FuIG1vdmUgdG8gYSB3aW5kb3cgYmVmb3JlIGl0IGhhcyBhIHZhbGlkIHdpbmRvdyBudW1i
ZXIsIHN1Y2gKKyAgICAgICAgYXMgZHVyaW5nIGFwcGxpY2F0aW9uIGxhdW5jaC4KKyAgICAgICAg
KC1bV0tWaWV3IF9hZGRUb1dpbmRvd1ZpZXdzTWFwXSk6IFVwZGF0ZSBoYXNoIHRhYmxlIGFuZCBl
bmFibGUgd2luZG93CisgICAgICAgIG9jY2x1c2lvbiBub3RpZmljYXRpb25zIHVwb24gdGhlIGFk
ZGl0aW9uIG9mIGZpcnN0IHZpZXcgaW4gYSB3aW5kb3cuCisgICAgICAgICgtW1dLVmlldyBfcmVt
b3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXSk6IFVwZGF0ZSBoYXNoIHRhYmxlIGFuZCB1bnJlZ2lzdGVy
CisgICAgICAgIHdpbmRvdyBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBpZiB0aGUgbWFwIGlzIGVt
cHR5LiAgQ2xlYXIgd2luZG93cworICAgICAgICB3aXRob3V0IHZpZXdzIGZyb20gdGhlIG9jY2x1
ZGVkIHdpbmRvd3Mgc2V0LgorICAgICAgICAoK1tXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZVZpc2li
bGU6XSk6CisgICAgICAgICgrW1dLVmlldyBfd2luZG93RGlkQmVjb21lT2NjbHVkZWQ6XSk6Cisg
ICAgICAgICgrW1dLVmlldyBfbm90aWZ5VmlzaWJpbGl0eUNoYW5nZVRvVmlld3NJbldpbmRvdzpd
KToKKyAgICAgICAgKHdpbmRvd0JlY2FtZVZpc2libGUpOgorICAgICAgICAod2luZG93QmVjYW1l
T2NjbHVkZWQpOgorICAgICAgICAoK1tXS1ZpZXcgX3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF91bnJlZ2lzdGVyV2luZG93
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF9lbmFi
bGVPY2NsdXNpb25Ob3RpZmljYXRpb25zRm9yV2luZG93Ol0pOgorICAgICAgICAoK1tXS1ZpZXcg
X3dpbmRvd1ZpZXdzTWFwXSk6IEhhc2ggdGFibGUgZnJvbSB3aW5kb3cgbnVtYmVyIHRvIGl0cwor
ICAgICAgICBzZXQgb2Ygdmlld3MuCisgICAgICAgICgrW1dLVmlldyBfb2NjbHVkZWRXaW5kb3dz
XSk6IFNldCBvZiBvY2NsdWRlZCB3aW5kb3dzLgorICAgICAgICAoLVtXS1ZpZXcgX2lzV2luZG93
T2NjbHVkZWRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5o
OgorCiAyMDEzLTAxLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIxMzk1MTYpOiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpyZWNlaXZlZFJlZGlyZWN0IGlzIG5vdCBjYWxsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDU2NzAzMTk3NTM4MTc0
ZjdiNDYxZDllYzU0NjZkMGMwYzU3NTA4Y2UuLjJhNjI3YTA2YmQ3NTMzODI1OTZiMzBmZGU1ZmQy
ZGI0YTA5Y2ViYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0yMDAsNiArMjAwLDkgQEAgYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSgpCiAgICAgaWYgKFttX3drVmlldyBpc0hpZGRlbk9ySGFzSGlkZGVu
QW5jZXN0b3JdKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoW21fd2tWaWV3IF9p
c1dpbmRvd09jY2x1ZGVkXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRl
eCA3MDgyZjA2NGY1MmQyYjhmZjEyM2FkNjE2ZTNmMzU2MjBhY2Y2Mjc4Li43ZTA2ZWQxZDgzMDA0
MGEwZjYwN2I1Njg4NWIyZDkwOTBlMGVhMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC05Myw2ICs5Myw5IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc0dyb3VwSW50ZXJuYWwu
aCIKIAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorc3RhdGlj
IGJvb2wgd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQgPSBmYWxzZTsK
KyNlbmRpZgogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdLTlNBcHBsaWNhdGlvbkRldGFp
bHMpCiAtICh2b2lkKXNwZWFrU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZzsKQEAgLTExOCw2ICsx
MjEsOCBAQCB0eXBlZGVmIGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0
aW9uSXRlbTsKIHR5cGVkZWYgVmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4gPiBWYWxp
ZGF0aW9uVmVjdG9yOwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmFsaWRhdGlvblZlY3Rvcj4g
VmFsaWRhdGlvbk1hcDsKIAordHlwZWRlZiBIYXNoTWFwPE5TSW50ZWdlciwgSGFzaFNldDxXS1Zp
ZXcgKj4gPldpbmRvd1ZpZXdzTWFwOworCiB9CiAKIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlF
dmVudHNQYXJhbWV0ZXJzIHsKQEAgLTEzNSw2ICsxNDAsMTggQEAgc3RydWN0IFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogLSAodm9pZClfc2V0RHJhd2luZ0FyZWFTaXplOihO
U1NpemUpc2l6ZTsKIC0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTooUGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsKIC0g
KEJPT0wpX3Nob3VsZFVzZVRpbGVkRHJhd2luZ0FyZWE7CistICh2b2lkKV9hZGRUb1dpbmRvd1Zp
ZXdzTWFwOworLSAodm9pZClfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwOworI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorKyAodm9pZClfd2luZG93RGlkQmVjb21l
VmlzaWJsZTooTlNJbnRlZ2VyKXdpbmRvd0lEOworKyAodm9pZClfd2luZG93RGlkQmVjb21lT2Nj
bHVkZWQ6KE5TSW50ZWdlcil3aW5kb3dJRDsKKysgKHZvaWQpX25vdGlmeVZpc2liaWxpdHlDaGFu
Z2VUb1ZpZXdzSW5XaW5kb3c6KE5TSW50ZWdlcil3aW5kb3dJRDsKKysgKHZvaWQpX3JlZ2lzdGVy
V2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV91bnJlZ2lzdGVy
V2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV9lbmFibGVPY2Ns
dXNpb25Ob3RpZmljYXRpb25zRm9yV2luZG93OihOU0ludGVnZXIpd2luZG93SUQ7CisrIChXaW5k
b3dWaWV3c01hcCAqKV93aW5kb3dWaWV3c01hcDsKKysgKEhhc2hTZXQ8TlNJbnRlZ2VyPiAqKV9v
Y2NsdWRlZFdpbmRvd3M7CisjZW5kaWYKIEBlbmQKIAogQGludGVyZmFjZSBXS1ZpZXdEYXRhIDog
TlNPYmplY3QgewpAQCAtMjYxLDYgKzI3OCw4IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlF
dmVudHNQYXJhbWV0ZXJzIHsKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7
CiAKKyAgICBbc2VsZiBfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXTsKKwogICAgIFdlYkNvbnRl
eHQ6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpA
QCAtMTgxNyw2ICsxODM2LDggQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3Bl
cnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0Rp
ZE1vdmVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX3dpbmRvd0RpZFJlc2l6ZTopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9i
amVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dXaWxsT3JkZXJP
ZmZTY3JlZW46KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9i
amVjdDp3aW5kb3ddOwogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9m
ZlNjcmVlbjopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2Jq
ZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25T
Y3JlZW46KSAKQEAgLTE4NDAsNiArMTg2MSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJh
Y2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpz
ZWxmIG5hbWU6TlNXaW5kb3dEaWREZW1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5k
b3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpAIk5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBv
YmplY3Q6d2luZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3Rp
ZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21l
VmlzaWJsZSIgb2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2lu
Z1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CkBAIC0xODY1LDEwICsxODg3
LDEzIEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFj
dG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgCiAgICAgW3NlbGYgcmVtb3ZlV2lu
ZG93T2JzZXJ2ZXJzXTsKICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2lu
ZG93XTsKKyAgICBbc2VsZiBfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXTsKIH0KIAogLSAodm9p
ZCl2aWV3RGlkTW92ZVRvV2luZG93CiB7CisgICAgW3NlbGYgX2FkZFRvV2luZG93Vmlld3NNYXBd
OworCiAgICAgLy8gV2Ugd2FudCB0byBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBhY3RpdmUgc3Rh
dGUgd2hpbGUgaGlkZGVuLCBzbyBpZiB0aGUgdmlldyBpcyBhYm91dCB0byBiZWNvbWUgdmlzaWJs
ZSwgd2UKICAgICAvLyB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSBmaXJzdCBhbmQgdGhlbiBtYWtl
IGl0IHZpc2libGUuIElmIHRoZSB2aWV3IGlzIGFib3V0IHRvIGJlIGhpZGRlbiwgd2UgaGlkZSBp
dCBmaXJzdCBhbmQgdGhlbgogICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlLgpAQCAtMTk2
Miw2ICsxOTg3LDExIEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9s
ZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW3NlbGYgX3VwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOwogfQogCistICh2b2lkKV93aW5kb3dXaWxsT3JkZXJPZmZT
Y3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYgX3JlbW92
ZUZyb21XaW5kb3dWaWV3c01hcF07Cit9CisKIC0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2Ny
ZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIFtzZWxmIF91cGRhdGVX
aW5kb3dWaXNpYmlsaXR5XTsKQEAgLTE5NzUsNiArMjAwNSw3IEBAIHN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9w
ZXJ0eU9sCiAtICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewogICAgIFtzZWxmIF91cGRhdGVXaW5kb3dWaXNpYmlsaXR5XTsKKyAg
ICBbc2VsZiBfYWRkVG9XaW5kb3dWaWV3c01hcF07CiAKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ug
c3VyZSB0byB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIHNpbmNlIHRo
ZSB2aWV3IGlzIGFib3V0IHRvIGJlY29tZSB2aXNpYmxlLAogICAgIC8vIHdlIHVwZGF0ZSB0aGUg
YWN0aXZlIHN0YXRlIGZpcnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4KQEAgLTIyMDgsNiAr
MjIzOSwxNzcgQEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5kKENHQ29udGV4dFJlZiBj
b250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKIH0KICNlbmRpZgogCistICh2b2lk
KV9hZGRUb1dpbmRvd1ZpZXdzTWFwCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAg
aWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybjsKKworICAgIE5TSW50ZWdlciB3aW5kb3dJRCA9
IFt3aW5kb3cgd2luZG93TnVtYmVyXTsKKyAgICBpZiAod2luZG93SUQgPD0gMCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgV2luZG93Vmlld3NNYXAgKm1hcCA9IFtXS1ZpZXcgX3dpbmRvd1ZpZXdz
TWFwXTsKKyAgICBXaW5kb3dWaWV3c01hcDo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IG1hcC0+YWRk
KHdpbmRvd0lELCBIYXNoU2V0PFdLVmlldyo+KCkpOworICAgIEhhc2hTZXQ8V0tWaWV3Kj4mIHZp
ZXdzID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKworICAgIGJvb2wgdmlld3NXZXJlRW1w
dHkgPSB2aWV3cy5pc0VtcHR5KCk7CisgICAgdmlld3MuYWRkKHNlbGYpOworICAgIGlmICh2aWV3
c1dlcmVFbXB0eSkgeworICAgICAgICBbV0tWaWV3IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5v
dGlmaWNhdGlvbkhhbmRsZXJzXTsKKyAgICAgICAgW1dLVmlldyBfZW5hYmxlT2NjbHVzaW9uTm90
aWZpY2F0aW9uc0ZvcldpbmRvdzp3aW5kb3dJRF07CisgICAgfQorI2VuZGlmCit9CisKKy0gKHZv
aWQpX3JlbW92ZUZyb21XaW5kb3dWaWV3c01hcAoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3dd
OworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBOU0ludGVnZXIgd2lu
ZG93SUQgPSBbd2luZG93IHdpbmRvd051bWJlcl07CisgICAgaWYgKHdpbmRvd0lEIDw9IDApCisg
ICAgICAgIHJldHVybjsKKworICAgIFdpbmRvd1ZpZXdzTWFwKiBtYXAgPSBbV0tWaWV3IF93aW5k
b3dWaWV3c01hcF07CisgICAgV2luZG93Vmlld3NNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5k
KHdpbmRvd0lEKTsKKyAgICBpZiAoaXQgPT0gbWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgSGFzaFNldDxXS1ZpZXcqPiYgdmlld3MgPSBpdC0+dmFsdWU7CisgICAgdmlld3MucmVt
b3ZlKHNlbGYpOworICAgIGJvb2wgdmlld3NBcmVFbXB0eSA9IHZpZXdzLmlzRW1wdHkoKTsKKyAg
ICBpZiAoIXZpZXdzQXJlRW1wdHkpCisgICAgICAgIHJldHVybjsKKworICAgIG1hcC0+cmVtb3Zl
KGl0KTsKKyAgICBpZiAobWFwLT5pc0VtcHR5KCkpCisgICAgICAgIFtXS1ZpZXcgX3VucmVnaXN0
ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc107CisgICAgW1dLVmlldyBfb2Nj
bHVkZWRXaW5kb3dzXS0+cmVtb3ZlKHdpbmRvd0lEKTsKKyNlbmRpZgorfQorCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisrICh2b2lkKV93aW5kb3dEaWRCZWNv
bWVWaXNpYmxlOihOU0ludGVnZXIpd2luZG93SUQKK3sKKyAgICBpZiAod2luZG93SUQgPD0gMCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgSGFzaFNldDxOU0ludGVnZXI+ICpvY2NsdWRlZFdpbmRv
d3MgPSBbV0tWaWV3IF9vY2NsdWRlZFdpbmRvd3NdOworICAgIEhhc2hTZXQ8TlNJbnRlZ2VyPjo6
aXRlcmF0b3IgaXQgPSBvY2NsdWRlZFdpbmRvd3MtPmZpbmQod2luZG93SUQpOworICAgIGlmIChp
dCA9PSBvY2NsdWRlZFdpbmRvd3MtPmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBvY2Ns
dWRlZFdpbmRvd3MtPnJlbW92ZShpdCk7CisgICAgW1dLVmlldyBfbm90aWZ5VmlzaWJpbGl0eUNo
YW5nZVRvVmlld3NJbldpbmRvdzp3aW5kb3dJRF07Cit9CisKKysgKHZvaWQpX3dpbmRvd0RpZEJl
Y29tZU9jY2x1ZGVkOihOU0ludGVnZXIpd2luZG93SUQKK3sKKyAgICBpZiAod2luZG93SUQgPD0g
MCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSGFzaFNldDxOU0ludGVnZXI+ICpvY2NsdWRlZFdp
bmRvd3MgPSBbV0tWaWV3IF9vY2NsdWRlZFdpbmRvd3NdOworICAgIEhhc2hTZXQ8TlNJbnRlZ2Vy
Pjo6aXRlcmF0b3IgaXQgPSBvY2NsdWRlZFdpbmRvd3MtPmZpbmQod2luZG93SUQpOworICAgIGlm
IChpdCAhPSBvY2NsdWRlZFdpbmRvd3MtPmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBv
Y2NsdWRlZFdpbmRvd3MtPmFkZCh3aW5kb3dJRCk7CisgICAgW1dLVmlldyBfbm90aWZ5VmlzaWJp
bGl0eUNoYW5nZVRvVmlld3NJbldpbmRvdzp3aW5kb3dJRF07Cit9CisKKysgKHZvaWQpX25vdGlm
eVZpc2liaWxpdHlDaGFuZ2VUb1ZpZXdzSW5XaW5kb3c6KE5TSW50ZWdlcil3aW5kb3dJRAorewor
ICAgIFdpbmRvd1ZpZXdzTWFwICp3aW5kb3dWaWV3TWFwID0gW1dLVmlldyBfd2luZG93Vmlld3NN
YXBdOworICAgIFdpbmRvd1ZpZXdzTWFwOjppdGVyYXRvciBpdCA9IHdpbmRvd1ZpZXdNYXAtPmZp
bmQod2luZG93SUQpOworICAgIGlmIChpdCAhPSB3aW5kb3dWaWV3TWFwLT5lbmQoKSkgeworICAg
ICAgICBIYXNoU2V0PFdLVmlldyAqPiYgdmlld3MgPSBpdC0+dmFsdWU7CisgICAgICAgIGZvcihI
YXNoU2V0PFdLVmlldyAqPjo6aXRlcmF0b3Igdmlld19pdCA9IHZpZXdzLmJlZ2luKCksIHZpZXdf
ZW5kID0gdmlld3MuZW5kKCk7IHZpZXdfaXQgIT0gdmlld19lbmQ7ICsrdmlld19pdCkgeworICAg
ICAgICAgICAgV0tWaWV3ICp2aWV3ID0gKnZpZXdfaXQ7CisgICAgICAgICAgICB2aWV3LT5fZGF0
YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUp
OworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB3aW5kb3dCZWNhbWVWaXNpYmxl
KHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJfdCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMy
X3QpCit7CisgICAgQVNTRVJUKGRhdGFMZW5ndGggPT0gc2l6ZW9mKFdLV2luZG93SUQpKTsKKyAg
ICBXS1dpbmRvd0lEIHdpbmRvd0lEID0gKihXS1dpbmRvd0lEICopZGF0YTsKKyAgICBbV0tWaWV3
IF93aW5kb3dEaWRCZWNvbWVWaXNpYmxlOndpbmRvd0lEXTsKK30KKworc3RhdGljIHZvaWQgd2lu
ZG93QmVjYW1lT2NjbHVkZWQodWludDMyX3QsIHZvaWQqIGRhdGEsIHVpbnQzMl90IGRhdGFMZW5n
dGgsIHZvaWQqLCB1aW50MzJfdCkKK3sKKyAgICBBU1NFUlQoZGF0YUxlbmd0aCA9PSBzaXplb2Yo
V0tXaW5kb3dJRCkpOworICAgIFdLV2luZG93SUQgd2luZG93SUQgPSAqKFdLV2luZG93SUQgKilk
YXRhOworICAgIFtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZU9jY2x1ZGVkOndpbmRvd0lEXTsKK30K
KworKyAodm9pZClfcmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycwor
eworICAgIGlmICh3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3Rl
cmVkID0gdHJ1ZTsKKworICAgIGlmICghV0tSZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhh
bmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwgd2lu
ZG93QmVjYW1lVmlzaWJsZSkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJSZWdpc3RlcmF0aW9u
IG9mIFwiV2luZG93IEJlY2FtZSBWaXNpYmxlXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVk
LlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFXS1JlZ2lzdGVy
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVX
aW5kb3dCZWNhbWVPY2NsdWRlZCwgd2luZG93QmVjYW1lT2NjbHVkZWQpKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgT2NjbHVkZWRcIiBu
b3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKworKyAodm9pZClfdW5yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRs
ZXJzCit7CisgICAgaWYgKCF3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJl
ZCkKKyAgICAgICAgcmV0dXJuOworICAgIHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVS
ZWdpc3RlcmVkID0gZmFsc2U7CisKKyAgICBpZiAoIVdLVW5yZWdpc3Rlck9jY2x1c2lvbk5vdGlm
aWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2Nj
bHVkZWQsIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlVu
cmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgT2NjbHVkZWRcIiBub3RpZmljYXRpb24g
aGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBp
ZiAoIVdLVW5yZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25O
b3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwgd2luZG93QmVjYW1lVmlzaWJsZSkp
IHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lzdGVyYXRpb24gb2YgXCJXaW5kb3cgQmVj
YW1lIFZpc2libGVcIiBub3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKworKyAodm9pZClfZW5hYmxlT2NjbHVzaW9uTm90aWZpY2F0aW9u
c0ZvcldpbmRvdzooTlNJbnRlZ2VyKXdpbmRvd0lECit7CisgICAgaWYgKHdpbmRvd0lEIDw9IDAp
CisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaXNXaW5kb3dPY2NsdWRlZCA9IGZhbHNlOwor
ICAgIGlmICghV0tFbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zKHdpbmRvd0lELCAm
aXNXaW5kb3dPY2NsdWRlZCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJFbmFibGluZyB3aW5k
b3cgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9yIHdpbmRvdyAlbGQgZmFpbGVkLlxuIiwgd2lu
ZG93SUQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGlzV2luZG93T2NjbHVk
ZWQpCisgICAgICAgIFtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZU9jY2x1ZGVkOndpbmRvd0lEXTsK
K30KKworKyAoV2luZG93Vmlld3NNYXAgKilfd2luZG93Vmlld3NNYXAKK3sKKyAgICBzdGF0aWMg
V2luZG93Vmlld3NNYXAgKm1hcCA9IG5ldyBXaW5kb3dWaWV3c01hcCgpOworICAgIHJldHVybiBt
YXA7Cit9CisKKysgKEhhc2hTZXQ8TlNJbnRlZ2VyPiAqKV9vY2NsdWRlZFdpbmRvd3MKK3sKKyAg
ICBzdGF0aWMgSGFzaFNldDxOU0ludGVnZXI+ICpzZXQgPSBuZXcgSGFzaFNldDxOU0ludGVnZXI+
KCk7CisgICAgcmV0dXJuIHNldDsKK30KKyNlbmRpZgorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlv
biBXS1ZpZXcgKEludGVybmFsKQpAQCAtMjg5Nyw2ICszMDk5LDIzIEBAIHN0YXRpYyBOU1N0cmlu
ZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0
dXJuIF9kYXRhLT5fcGFnZS0+c3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcygpOwogfQogCistIChC
T09MKV9pc1dpbmRvd09jY2x1ZGVkCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAg
aWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5TSW50ZWdlciB3aW5k
b3dJRCA9IFt3aW5kb3cgd2luZG93TnVtYmVyXTsKKyAgICBpZiAod2luZG93SUQgPD0gMCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFtXS1ZpZXcgX29jY2x1ZGVkV2luZG93
c10tPmNvbnRhaW5zKHdpbmRvd0lEKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlldyAoUHJpdmF0ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4IDIz
NTAwYWM2YWY3MzJhMjE3MDIwNmYyZThmMjI2M2RjMWQ5YzJlZTUuLjMzZjdiZDczYTU2ZDA1OTQ4
ODE3NzlhMjQwZTQ4Yzc2YmI2MzNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtMTAxLDQgKzEwMSw2IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogLSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9PTClz
dXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwogLSAoQk9PTClfc3VwcHJlc3NWaXNpYmlsaXR5VXBk
YXRlczsKIAorLSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZDsKKwogQGVuZApkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5k
ZXggMzc2ZmQxZThhY2VmZGZlZjg1ZjdkNzBjN2E0YmE5ZDhmYTY0N2ZiYy4uOThkNDIzY2QwNDlk
YzZmOTBlYzdjODQ1Y2IwZTRmMDRiYjZmMTVkZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTMtMDEtMjQgIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHdpbmRvdyBvY2NsdXNpb24gY3JpdGVyaWEgdG8gZGV0ZXJtaW5lIHBhZ2Ugdmlz
aWJpbGl0eSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBlbnVtIGNvbnN0YW50cyB0byBzcGVjaWZ5IHdpbmRvdyBvY2NsdXNpb24gbm90
aWZpY2F0aW9uIHR5cGUgdG8KKyAgICAgICAgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi91bnJl
Z2lzdHJhdGlvbiBtZXRob2RzLiAgQWRkIHR5cGVkZWYgZm9yCisgICAgICAgIHdpbmRvdyBJRCBk
YXRhIHBhc3NlZCB0byB0aGUgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb24gaGFuZGxlci4K
KyAgICAgICAgQWRkIG1ldGhvZCB0byBlbmFibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9y
IGEgcGFydGljdWxhciB3aW5kb3cuCisKKyAgICAgICAgKiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aDogQWRkCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZp
c2libGUsCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9j
Y2x1ZGVkLAorICAgICAgICBXS1dpbmRvd0lELAorICAgICAgICBXS0VuYWJsZVdpbmRvd09jY2x1
c2lvbk5vdGlmaWNhdGlvbnMoKS4KKwogMjAxMy0wMS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2Zv
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJraXRTeXN0ZW1JbnRlcmZhY2UgbGli
IGZvciBXaW5kb3dzIHBvcnQuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmggYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgK
aW5kZXggY2RjZDVmYmRlNWNjMWMzYjVlMzEwOWMxZTcxMTFhYTc5M2MzMDFmZi4uOWVkMzZmMDFh
M2M0OTQwZmUxYTcyMjM1YjczOWM4YjIwNGMzYzFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5oCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaApAQCAtNTIyLDEzICs1MjIsMTggQEAgQ0ZTdHJpbmdSZWYgV0tDYXB0
aW9uQXBwZWFyYW5jZUdldFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbih2b2lkKTsKICNpZiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiB0eXBlZGVmIGVudW0gewogICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lVmlzaWJsZSwKLSAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkCisg
ICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVPY2NsdWRlZCwK
KyAgICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLAorICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkCiB9IFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZTsKIAotdHlwZWRlZiB2b2lkICgqV0tPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyKSh1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90LCB2b2lkKiwgdWludDMy
X3QpOwordHlwZWRlZiB1aW50MzJfdCBXS1dpbmRvd0lEOworCit0eXBlZGVmIHZvaWQgKCpXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJf
dCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpOwogCiBib29sIFdLUmVnaXN0ZXJPY2NsdXNp
b25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKTsKIGJvb2wgV0tVbnJlZ2lzdGVyT2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGUsIFdLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uSGFuZGxlcik7Citib29sIFdLRW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9ucyhOU0ludGVnZXIgd2luZG93SUQsIGJvb2wgKm91dEN1cnJlbnRPY2NsdXNpb25TdGF0
ZSk7CiAKIGVudW0gewogICAgIFdLUHJvY2Vzc0Fzc2VydGlvblR5cGVWaXNpYmxlID0gKDFVTCA8
PCAxMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184649</attachid>
            <date>2013-01-24 20:41:53 -0800</date>
            <delta_ts>2013-01-24 22:31:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130124203844.patch</filename>
            <type>text/plain</type>
            <size>17448</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uZWI5MDA0MDFkMWRlNzJmZjg1OWFjNmFkYmFjNjAy
ODYxYTg1ZjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAxLTI0ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgd2luZG93IHRvIHZpZXdzIG1hcC4KKyAgICAgICAgKC1b
V0tWaWV3IGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzpdKTogUmVnaXN0ZXIgb2JzZXJ2ZXIg
Zm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAg
ICAgICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXSk6IFVucmVnaXN0ZXIgb2JzZXJ2
ZXIgZm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgor
ICAgICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6XSk6IFVwZGF0ZSB3aW5kb3cg
dG8gdmlld3MgbWFwLgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOiBE
aXR0by4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dXaWxsT3JkZXJPZmZTY3JlZW46XSk6IEFk
ZCBvYnNlcnZlci4gIERpdHRvLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE9yZGVyT25T
Y3JlZW46XSk6IERpdHRvLiAgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZQorICAgICAgICBhIHZp
ZXcgY2FuIG1vdmUgdG8gYSB3aW5kb3cgYmVmb3JlIGl0IGhhcyBhIHZhbGlkIHdpbmRvdyBudW1i
ZXIsIHN1Y2gKKyAgICAgICAgYXMgZHVyaW5nIGFwcGxpY2F0aW9uIGxhdW5jaC4KKyAgICAgICAg
KC1bV0tWaWV3IF9hZGRUb1dpbmRvd1ZpZXdzTWFwXSk6IFVwZGF0ZSBoYXNoIHRhYmxlIGFuZCBl
bmFibGUgd2luZG93CisgICAgICAgIG9jY2x1c2lvbiBub3RpZmljYXRpb25zIHVwb24gdGhlIGFk
ZGl0aW9uIG9mIGZpcnN0IHZpZXcgaW4gYSB3aW5kb3cuCisgICAgICAgICgtW1dLVmlldyBfcmVt
b3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXSk6IFVwZGF0ZSBoYXNoIHRhYmxlIGFuZCB1bnJlZ2lzdGVy
CisgICAgICAgIHdpbmRvdyBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBpZiB0aGUgbWFwIGlzIGVt
cHR5LiAgQ2xlYXIgd2luZG93cworICAgICAgICB3aXRob3V0IHZpZXdzIGZyb20gdGhlIG9jY2x1
ZGVkIHdpbmRvd3Mgc2V0LgorICAgICAgICAoK1tXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZVZpc2li
bGU6XSk6CisgICAgICAgICgrW1dLVmlldyBfd2luZG93RGlkQmVjb21lT2NjbHVkZWQ6XSk6Cisg
ICAgICAgICgrW1dLVmlldyBfbm90aWZ5VmlzaWJpbGl0eUNoYW5nZVRvVmlld3NJbldpbmRvdzpd
KToKKyAgICAgICAgKHdpbmRvd0JlY2FtZVZpc2libGUpOgorICAgICAgICAod2luZG93QmVjYW1l
T2NjbHVkZWQpOgorICAgICAgICAoK1tXS1ZpZXcgX3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF91bnJlZ2lzdGVyV2luZG93
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF9lbmFi
bGVPY2NsdXNpb25Ob3RpZmljYXRpb25zRm9yV2luZG93Ol0pOgorICAgICAgICAoK1tXS1ZpZXcg
X3dpbmRvd1ZpZXdzTWFwXSk6IEhhc2ggdGFibGUgZnJvbSB3aW5kb3cgbnVtYmVyIHRvIGl0cwor
ICAgICAgICBzZXQgb2Ygdmlld3MuCisgICAgICAgICgrW1dLVmlldyBfb2NjbHVkZWRXaW5kb3dz
XSk6IFNldCBvZiBvY2NsdWRlZCB3aW5kb3dzLgorICAgICAgICAoLVtXS1ZpZXcgX2lzV2luZG93
T2NjbHVkZWRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5o
OgorCiAyMDEzLTAxLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIxMzk1MTYpOiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpyZWNlaXZlZFJlZGlyZWN0IGlzIG5vdCBjYWxsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDU2NzAzMTk3NTM4MTc0
ZjdiNDYxZDllYzU0NjZkMGMwYzU3NTA4Y2UuLjJhNjI3YTA2YmQ3NTMzODI1OTZiMzBmZGU1ZmQy
ZGI0YTA5Y2ViYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0yMDAsNiArMjAwLDkgQEAgYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSgpCiAgICAgaWYgKFttX3drVmlldyBpc0hpZGRlbk9ySGFzSGlkZGVu
QW5jZXN0b3JdKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoW21fd2tWaWV3IF9p
c1dpbmRvd09jY2x1ZGVkXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRl
eCA3MDgyZjA2NGY1MmQyYjhmZjEyM2FkNjE2ZTNmMzU2MjBhY2Y2Mjc4Li43ZTA2ZWQxZDgzMDA0
MGEwZjYwN2I1Njg4NWIyZDkwOTBlMGVhMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC05Myw2ICs5Myw5IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc0dyb3VwSW50ZXJuYWwu
aCIKIAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorc3RhdGlj
IGJvb2wgd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQgPSBmYWxzZTsK
KyNlbmRpZgogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFdLTlNBcHBsaWNhdGlvbkRldGFp
bHMpCiAtICh2b2lkKXNwZWFrU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZzsKQEAgLTExOCw2ICsx
MjEsOCBAQCB0eXBlZGVmIGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0
aW9uSXRlbTsKIHR5cGVkZWYgVmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4gPiBWYWxp
ZGF0aW9uVmVjdG9yOwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmFsaWRhdGlvblZlY3Rvcj4g
VmFsaWRhdGlvbk1hcDsKIAordHlwZWRlZiBIYXNoTWFwPE5TSW50ZWdlciwgSGFzaFNldDxXS1Zp
ZXcgKj4gPldpbmRvd1ZpZXdzTWFwOworCiB9CiAKIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlF
dmVudHNQYXJhbWV0ZXJzIHsKQEAgLTEzNSw2ICsxNDAsMTggQEAgc3RydWN0IFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogLSAodm9pZClfc2V0RHJhd2luZ0FyZWFTaXplOihO
U1NpemUpc2l6ZTsKIC0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTooUGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsKIC0g
KEJPT0wpX3Nob3VsZFVzZVRpbGVkRHJhd2luZ0FyZWE7CistICh2b2lkKV9hZGRUb1dpbmRvd1Zp
ZXdzTWFwOworLSAodm9pZClfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwOworI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorKyAodm9pZClfd2luZG93RGlkQmVjb21l
VmlzaWJsZTooTlNJbnRlZ2VyKXdpbmRvd0lEOworKyAodm9pZClfd2luZG93RGlkQmVjb21lT2Nj
bHVkZWQ6KE5TSW50ZWdlcil3aW5kb3dJRDsKKysgKHZvaWQpX25vdGlmeVZpc2liaWxpdHlDaGFu
Z2VUb1ZpZXdzSW5XaW5kb3c6KE5TSW50ZWdlcil3aW5kb3dJRDsKKysgKHZvaWQpX3JlZ2lzdGVy
V2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV91bnJlZ2lzdGVy
V2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV9lbmFibGVPY2Ns
dXNpb25Ob3RpZmljYXRpb25zRm9yV2luZG93OihOU0ludGVnZXIpd2luZG93SUQ7CisrIChXaW5k
b3dWaWV3c01hcCAqKV93aW5kb3dWaWV3c01hcDsKKysgKEhhc2hTZXQ8TlNJbnRlZ2VyPiAqKV9v
Y2NsdWRlZFdpbmRvd3M7CisjZW5kaWYKIEBlbmQKIAogQGludGVyZmFjZSBXS1ZpZXdEYXRhIDog
TlNPYmplY3QgewpAQCAtMjYxLDYgKzI3OCw4IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlF
dmVudHNQYXJhbWV0ZXJzIHsKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7
CiAKKyAgICBbc2VsZiBfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXTsKKwogICAgIFdlYkNvbnRl
eHQ6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpA
QCAtMTgxNyw2ICsxODM2LDggQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3Bl
cnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0Rp
ZE1vdmVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX3dpbmRvd0RpZFJlc2l6ZTopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9i
amVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dXaWxsT3JkZXJP
ZmZTY3JlZW46KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9i
amVjdDp3aW5kb3ddOwogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9m
ZlNjcmVlbjopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2Jq
ZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25T
Y3JlZW46KSAKQEAgLTE4NDAsNiArMTg2MSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJh
Y2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpz
ZWxmIG5hbWU6TlNXaW5kb3dEaWREZW1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5k
b3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpAIk5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBv
YmplY3Q6d2luZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3Rp
ZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21l
VmlzaWJsZSIgb2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2lu
Z1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CkBAIC0xODY1LDEwICsxODg3
LDEzIEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFj
dG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgCiAgICAgW3NlbGYgcmVtb3ZlV2lu
ZG93T2JzZXJ2ZXJzXTsKICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2lu
ZG93XTsKKyAgICBbc2VsZiBfcmVtb3ZlRnJvbVdpbmRvd1ZpZXdzTWFwXTsKIH0KIAogLSAodm9p
ZCl2aWV3RGlkTW92ZVRvV2luZG93CiB7CisgICAgW3NlbGYgX2FkZFRvV2luZG93Vmlld3NNYXBd
OworCiAgICAgLy8gV2Ugd2FudCB0byBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBhY3RpdmUgc3Rh
dGUgd2hpbGUgaGlkZGVuLCBzbyBpZiB0aGUgdmlldyBpcyBhYm91dCB0byBiZWNvbWUgdmlzaWJs
ZSwgd2UKICAgICAvLyB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSBmaXJzdCBhbmQgdGhlbiBtYWtl
IGl0IHZpc2libGUuIElmIHRoZSB2aWV3IGlzIGFib3V0IHRvIGJlIGhpZGRlbiwgd2UgaGlkZSBp
dCBmaXJzdCBhbmQgdGhlbgogICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlLgpAQCAtMTk2
Miw2ICsxOTg3LDExIEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9s
ZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW3NlbGYgX3VwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOwogfQogCistICh2b2lkKV93aW5kb3dXaWxsT3JkZXJPZmZT
Y3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYgX3JlbW92
ZUZyb21XaW5kb3dWaWV3c01hcF07Cit9CisKIC0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2Ny
ZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIFtzZWxmIF91cGRhdGVX
aW5kb3dWaXNpYmlsaXR5XTsKQEAgLTE5NzUsNiArMjAwNSw3IEBAIHN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9w
ZXJ0eU9sCiAtICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewogICAgIFtzZWxmIF91cGRhdGVXaW5kb3dWaXNpYmlsaXR5XTsKKyAg
ICBbc2VsZiBfYWRkVG9XaW5kb3dWaWV3c01hcF07CiAKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ug
c3VyZSB0byB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIHNpbmNlIHRo
ZSB2aWV3IGlzIGFib3V0IHRvIGJlY29tZSB2aXNpYmxlLAogICAgIC8vIHdlIHVwZGF0ZSB0aGUg
YWN0aXZlIHN0YXRlIGZpcnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4KQEAgLTIyMDgsNiAr
MjIzOSwxNzcgQEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5kKENHQ29udGV4dFJlZiBj
b250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKIH0KICNlbmRpZgogCistICh2b2lk
KV9hZGRUb1dpbmRvd1ZpZXdzTWFwCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAg
aWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybjsKKworICAgIE5TSW50ZWdlciB3aW5kb3dJRCA9
IFt3aW5kb3cgd2luZG93TnVtYmVyXTsKKyAgICBpZiAod2luZG93SUQgPD0gMCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgV2luZG93Vmlld3NNYXAgKm1hcCA9IFtXS1ZpZXcgX3dpbmRvd1ZpZXdz
TWFwXTsKKyAgICBXaW5kb3dWaWV3c01hcDo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IG1hcC0+YWRk
KHdpbmRvd0lELCBIYXNoU2V0PFdLVmlldyo+KCkpOworICAgIEhhc2hTZXQ8V0tWaWV3Kj4mIHZp
ZXdzID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKworICAgIGJvb2wgdmlld3NXZXJlRW1w
dHkgPSB2aWV3cy5pc0VtcHR5KCk7CisgICAgdmlld3MuYWRkKHNlbGYpOworICAgIGlmICh2aWV3
c1dlcmVFbXB0eSkgeworICAgICAgICBbV0tWaWV3IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5v
dGlmaWNhdGlvbkhhbmRsZXJzXTsKKyAgICAgICAgW1dLVmlldyBfZW5hYmxlT2NjbHVzaW9uTm90
aWZpY2F0aW9uc0ZvcldpbmRvdzp3aW5kb3dJRF07CisgICAgfQorI2VuZGlmCit9CisKKy0gKHZv
aWQpX3JlbW92ZUZyb21XaW5kb3dWaWV3c01hcAoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3dd
OworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBOU0ludGVnZXIgd2lu
ZG93SUQgPSBbd2luZG93IHdpbmRvd051bWJlcl07CisgICAgaWYgKHdpbmRvd0lEIDw9IDApCisg
ICAgICAgIHJldHVybjsKKworICAgIFdpbmRvd1ZpZXdzTWFwKiBtYXAgPSBbV0tWaWV3IF93aW5k
b3dWaWV3c01hcF07CisgICAgV2luZG93Vmlld3NNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5k
KHdpbmRvd0lEKTsKKyAgICBpZiAoaXQgPT0gbWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgSGFzaFNldDxXS1ZpZXcqPiYgdmlld3MgPSBpdC0+dmFsdWU7CisgICAgdmlld3MucmVt
b3ZlKHNlbGYpOworICAgIGJvb2wgdmlld3NBcmVFbXB0eSA9IHZpZXdzLmlzRW1wdHkoKTsKKyAg
ICBpZiAoIXZpZXdzQXJlRW1wdHkpCisgICAgICAgIHJldHVybjsKKworICAgIG1hcC0+cmVtb3Zl
KGl0KTsKKyAgICBpZiAobWFwLT5pc0VtcHR5KCkpCisgICAgICAgIFtXS1ZpZXcgX3VucmVnaXN0
ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc107CisgICAgW1dLVmlldyBfb2Nj
bHVkZWRXaW5kb3dzXS0+cmVtb3ZlKHdpbmRvd0lEKTsKKyNlbmRpZgorfQorCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisrICh2b2lkKV93aW5kb3dEaWRCZWNv
bWVWaXNpYmxlOihOU0ludGVnZXIpd2luZG93SUQKK3sKKyAgICBpZiAod2luZG93SUQgPD0gMCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgSGFzaFNldDxOU0ludGVnZXI+ICpvY2NsdWRlZFdpbmRv
d3MgPSBbV0tWaWV3IF9vY2NsdWRlZFdpbmRvd3NdOworICAgIEhhc2hTZXQ8TlNJbnRlZ2VyPjo6
aXRlcmF0b3IgaXQgPSBvY2NsdWRlZFdpbmRvd3MtPmZpbmQod2luZG93SUQpOworICAgIGlmIChp
dCA9PSBvY2NsdWRlZFdpbmRvd3MtPmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBvY2Ns
dWRlZFdpbmRvd3MtPnJlbW92ZShpdCk7CisgICAgW1dLVmlldyBfbm90aWZ5VmlzaWJpbGl0eUNo
YW5nZVRvVmlld3NJbldpbmRvdzp3aW5kb3dJRF07Cit9CisKKysgKHZvaWQpX3dpbmRvd0RpZEJl
Y29tZU9jY2x1ZGVkOihOU0ludGVnZXIpd2luZG93SUQKK3sKKyAgICBpZiAod2luZG93SUQgPD0g
MCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSGFzaFNldDxOU0ludGVnZXI+ICpvY2NsdWRlZFdp
bmRvd3MgPSBbV0tWaWV3IF9vY2NsdWRlZFdpbmRvd3NdOworICAgIEhhc2hTZXQ8TlNJbnRlZ2Vy
Pjo6aXRlcmF0b3IgaXQgPSBvY2NsdWRlZFdpbmRvd3MtPmZpbmQod2luZG93SUQpOworICAgIGlm
IChpdCAhPSBvY2NsdWRlZFdpbmRvd3MtPmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBv
Y2NsdWRlZFdpbmRvd3MtPmFkZCh3aW5kb3dJRCk7CisgICAgW1dLVmlldyBfbm90aWZ5VmlzaWJp
bGl0eUNoYW5nZVRvVmlld3NJbldpbmRvdzp3aW5kb3dJRF07Cit9CisKKysgKHZvaWQpX25vdGlm
eVZpc2liaWxpdHlDaGFuZ2VUb1ZpZXdzSW5XaW5kb3c6KE5TSW50ZWdlcil3aW5kb3dJRAorewor
ICAgIFdpbmRvd1ZpZXdzTWFwICp3aW5kb3dWaWV3TWFwID0gW1dLVmlldyBfd2luZG93Vmlld3NN
YXBdOworICAgIFdpbmRvd1ZpZXdzTWFwOjppdGVyYXRvciBpdCA9IHdpbmRvd1ZpZXdNYXAtPmZp
bmQod2luZG93SUQpOworICAgIGlmIChpdCAhPSB3aW5kb3dWaWV3TWFwLT5lbmQoKSkgeworICAg
ICAgICBIYXNoU2V0PFdLVmlldyAqPiYgdmlld3MgPSBpdC0+dmFsdWU7CisgICAgICAgIGZvcihI
YXNoU2V0PFdLVmlldyAqPjo6aXRlcmF0b3Igdmlld19pdCA9IHZpZXdzLmJlZ2luKCksIHZpZXdf
ZW5kID0gdmlld3MuZW5kKCk7IHZpZXdfaXQgIT0gdmlld19lbmQ7ICsrdmlld19pdCkgeworICAg
ICAgICAgICAgV0tWaWV3ICp2aWV3ID0gKnZpZXdfaXQ7CisgICAgICAgICAgICB2aWV3LT5fZGF0
YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUp
OworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB3aW5kb3dCZWNhbWVWaXNpYmxl
KHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJfdCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMy
X3QpCit7CisgICAgQVNTRVJUKGRhdGFMZW5ndGggPT0gc2l6ZW9mKFdLV2luZG93SUQpKTsKKyAg
ICBXS1dpbmRvd0lEIHdpbmRvd0lEID0gKihXS1dpbmRvd0lEICopZGF0YTsKKyAgICBbV0tWaWV3
IF93aW5kb3dEaWRCZWNvbWVWaXNpYmxlOndpbmRvd0lEXTsKK30KKworc3RhdGljIHZvaWQgd2lu
ZG93QmVjYW1lT2NjbHVkZWQodWludDMyX3QsIHZvaWQqIGRhdGEsIHVpbnQzMl90IGRhdGFMZW5n
dGgsIHZvaWQqLCB1aW50MzJfdCkKK3sKKyAgICBBU1NFUlQoZGF0YUxlbmd0aCA9PSBzaXplb2Yo
V0tXaW5kb3dJRCkpOworICAgIFdLV2luZG93SUQgd2luZG93SUQgPSAqKFdLV2luZG93SUQgKilk
YXRhOworICAgIFtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZU9jY2x1ZGVkOndpbmRvd0lEXTsKK30K
KworKyAodm9pZClfcmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycwor
eworICAgIGlmICh3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3Rl
cmVkID0gdHJ1ZTsKKworICAgIGlmICghV0tSZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhh
bmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwgd2lu
ZG93QmVjYW1lVmlzaWJsZSkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJSZWdpc3RlcmF0aW9u
IG9mIFwiV2luZG93IEJlY2FtZSBWaXNpYmxlXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVk
LlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFXS1JlZ2lzdGVy
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVX
aW5kb3dCZWNhbWVPY2NsdWRlZCwgd2luZG93QmVjYW1lT2NjbHVkZWQpKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgT2NjbHVkZWRcIiBu
b3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKworKyAodm9pZClfdW5yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRs
ZXJzCit7CisgICAgaWYgKCF3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJl
ZCkKKyAgICAgICAgcmV0dXJuOworICAgIHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVS
ZWdpc3RlcmVkID0gZmFsc2U7CisKKyAgICBpZiAoIVdLVW5yZWdpc3Rlck9jY2x1c2lvbk5vdGlm
aWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2Nj
bHVkZWQsIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlVu
cmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgT2NjbHVkZWRcIiBub3RpZmljYXRpb24g
aGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBp
ZiAoIVdLVW5yZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25O
b3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwgd2luZG93QmVjYW1lVmlzaWJsZSkp
IHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lzdGVyYXRpb24gb2YgXCJXaW5kb3cgQmVj
YW1lIFZpc2libGVcIiBub3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKworKyAodm9pZClfZW5hYmxlT2NjbHVzaW9uTm90aWZpY2F0aW9u
c0ZvcldpbmRvdzooTlNJbnRlZ2VyKXdpbmRvd0lECit7CisgICAgaWYgKHdpbmRvd0lEIDw9IDAp
CisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaXNXaW5kb3dPY2NsdWRlZCA9IGZhbHNlOwor
ICAgIGlmICghV0tFbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zKHdpbmRvd0lELCAm
aXNXaW5kb3dPY2NsdWRlZCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJFbmFibGluZyB3aW5k
b3cgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9yIHdpbmRvdyAlbGQgZmFpbGVkLlxuIiwgd2lu
ZG93SUQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGlzV2luZG93T2NjbHVk
ZWQpCisgICAgICAgIFtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZU9jY2x1ZGVkOndpbmRvd0lEXTsK
K30KKworKyAoV2luZG93Vmlld3NNYXAgKilfd2luZG93Vmlld3NNYXAKK3sKKyAgICBzdGF0aWMg
V2luZG93Vmlld3NNYXAgKm1hcCA9IG5ldyBXaW5kb3dWaWV3c01hcCgpOworICAgIHJldHVybiBt
YXA7Cit9CisKKysgKEhhc2hTZXQ8TlNJbnRlZ2VyPiAqKV9vY2NsdWRlZFdpbmRvd3MKK3sKKyAg
ICBzdGF0aWMgSGFzaFNldDxOU0ludGVnZXI+ICpzZXQgPSBuZXcgSGFzaFNldDxOU0ludGVnZXI+
KCk7CisgICAgcmV0dXJuIHNldDsKK30KKyNlbmRpZgorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlv
biBXS1ZpZXcgKEludGVybmFsKQpAQCAtMjg5Nyw2ICszMDk5LDIzIEBAIHN0YXRpYyBOU1N0cmlu
ZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0
dXJuIF9kYXRhLT5fcGFnZS0+c3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcygpOwogfQogCistIChC
T09MKV9pc1dpbmRvd09jY2x1ZGVkCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAg
aWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5TSW50ZWdlciB3aW5k
b3dJRCA9IFt3aW5kb3cgd2luZG93TnVtYmVyXTsKKyAgICBpZiAod2luZG93SUQgPD0gMCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFtXS1ZpZXcgX29jY2x1ZGVkV2luZG93
c10tPmNvbnRhaW5zKHdpbmRvd0lEKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlldyAoUHJpdmF0ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4IDIz
NTAwYWM2YWY3MzJhMjE3MDIwNmYyZThmMjI2M2RjMWQ5YzJlZTUuLjMzZjdiZDczYTU2ZDA1OTQ4
ODE3NzlhMjQwZTQ4Yzc2YmI2MzNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtMTAxLDQgKzEwMSw2IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogLSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9PTClz
dXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwogLSAoQk9PTClfc3VwcHJlc3NWaXNpYmlsaXR5VXBk
YXRlczsKIAorLSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZDsKKwogQGVuZApkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5k
ZXggMzc2ZmQxZThhY2VmZGZlZjg1ZjdkNzBjN2E0YmE5ZDhmYTY0N2ZiYy4uOThkNDIzY2QwNDlk
YzZmOTBlYzdjODQ1Y2IwZTRmMDRiYjZmMTVkZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTMtMDEtMjQgIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHdpbmRvdyBvY2NsdXNpb24gY3JpdGVyaWEgdG8gZGV0ZXJtaW5lIHBhZ2Ugdmlz
aWJpbGl0eSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBlbnVtIGNvbnN0YW50cyB0byBzcGVjaWZ5IHdpbmRvdyBvY2NsdXNpb24gbm90
aWZpY2F0aW9uIHR5cGUgdG8KKyAgICAgICAgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi91bnJl
Z2lzdHJhdGlvbiBtZXRob2RzLiAgQWRkIHR5cGVkZWYgZm9yCisgICAgICAgIHdpbmRvdyBJRCBk
YXRhIHBhc3NlZCB0byB0aGUgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb24gaGFuZGxlci4K
KyAgICAgICAgQWRkIG1ldGhvZCB0byBlbmFibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9y
IGEgcGFydGljdWxhciB3aW5kb3cuCisKKyAgICAgICAgKiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aDogQWRkCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZp
c2libGUsCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9j
Y2x1ZGVkLAorICAgICAgICBXS1dpbmRvd0lELAorICAgICAgICBXS0VuYWJsZVdpbmRvd09jY2x1
c2lvbk5vdGlmaWNhdGlvbnMoKS4KKwogMjAxMy0wMS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2Zv
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJraXRTeXN0ZW1JbnRlcmZhY2UgbGli
IGZvciBXaW5kb3dzIHBvcnQuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmggYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgK
aW5kZXggY2RjZDVmYmRlNWNjMWMzYjVlMzEwOWMxZTcxMTFhYTc5M2MzMDFmZi4uOWVkMzZmMDFh
M2M0OTQwZmUxYTcyMjM1YjczOWM4YjIwNGMzYzFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5oCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaApAQCAtNTIyLDEzICs1MjIsMTggQEAgQ0ZTdHJpbmdSZWYgV0tDYXB0
aW9uQXBwZWFyYW5jZUdldFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbih2b2lkKTsKICNpZiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiB0eXBlZGVmIGVudW0gewogICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lVmlzaWJsZSwKLSAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkCisg
ICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVPY2NsdWRlZCwK
KyAgICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLAorICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkCiB9IFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZTsKIAotdHlwZWRlZiB2b2lkICgqV0tPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyKSh1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90LCB2b2lkKiwgdWludDMy
X3QpOwordHlwZWRlZiB1aW50MzJfdCBXS1dpbmRvd0lEOworCit0eXBlZGVmIHZvaWQgKCpXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJf
dCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpOwogCiBib29sIFdLUmVnaXN0ZXJPY2NsdXNp
b25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKTsKIGJvb2wgV0tVbnJlZ2lzdGVyT2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGUsIFdLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uSGFuZGxlcik7Citib29sIFdLRW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9ucyhOU0ludGVnZXIgd2luZG93SUQsIGJvb2wgKm91dEN1cnJlbnRPY2NsdXNpb25TdGF0
ZSk7CiAKIGVudW0gewogICAgIFdLUHJvY2Vzc0Fzc2VydGlvblR5cGVWaXNpYmxlID0gKDFVTCA8
PCAxMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184668</attachid>
            <date>2013-01-24 22:31:18 -0800</date>
            <delta_ts>2013-01-25 12:33:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130124222809.patch</filename>
            <type>text/plain</type>
            <size>15332</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uNzMxODM1NmQxMTc1MzY0ZjdlOTAwNGM5ZjZlN2Q4
ZGVjZDZjZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAxLTI0ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgYWxsIHZpZXdzIGFycmF5LgorICAgICAgICAoLVtXS1Zp
ZXcgYWRkV2luZG93T2JzZXJ2ZXJzRm9yV2luZG93Ol0pOiBSZWdpc3RlciBvYnNlcnZlciBmb3IK
KyAgICAgICAgTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24uCisgICAgICAg
ICgtW1dLVmlldyByZW1vdmVXaW5kb3dPYnNlcnZlcnNdKTogVW5yZWdpc3RlciBvYnNlcnZlciBm
b3IKKyAgICAgICAgTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24uCisgICAg
ICAgICgtW1dLVmlldyB2aWV3V2lsbE1vdmVUb1dpbmRvdzpdKTogRGlzYWJsZSBvY2NsdXNpb24g
bm90aWZpY2F0aW9ucy4KKyAgICAgICAgKC1bV0tWaWV3IHZpZXdEaWRNb3ZlVG9XaW5kb3ddKTog
RW5hYmxlIG9jY2x1c2lvbiBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRv
d1dpbGxPcmRlck9mZlNjcmVlbjpdKTogRGlzYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucy4K
KyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOiBFbmFibGUgb2Nj
bHVzaW9uIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIFRoaXMgbm90aWZpY2F0aW9uIGVuc3VyZXMg
dGhhdCBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBhcmUgcmVnaXN0ZXJlZAorICAgICAgICBjb3Jy
ZWN0bHkgZXZlbiBpZiB0aGUgTlNXaW5kb3cgb2JqZWN0IGlzIGFzc2lnbmVkIGEgd2luZG93IG51
bWJlciBhZnRlcgorICAgICAgICB0aGUgdmlld0RpZE1vdmVUb1dpbmRvdyBub3RpZmljYXRpb24g
aGFzIGJlZW4gcmVjZWl2ZWQuICBUaGlzIG9jY3VycworICAgICAgICBmb3IgaW5zdGFuY2UgZHVy
aW5nIGFwcGxpY2F0aW9uIGxhdW5jaC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRJc1dpbmRvd09j
Y2x1ZGVkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlm
aWNhdGlvbnNdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90
aWZpY2F0aW9uc10pOgorICAgICAgICAod2luZG93QmVjYW1lVmlzaWJsZSk6CisgICAgICAgICh3
aW5kb3dCZWNhbWVPY2NsdWRlZCk6CisgICAgICAgICgrW1dLVmlldyBfcmVnaXN0ZXJXaW5kb3dP
Y2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc10pOgorICAgICAgICAoK1tXS1ZpZXcgX3VucmVn
aXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc10pOgorICAgICAgICAoK1tX
S1ZpZXcgX2FsbFZpZXdzXSk6CisgICAgICAgICgtW1dLVmlldyBfaXNXaW5kb3dPY2NsdWRlZF0p
OgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJl
ZjpyZWxhdGVkVG9QYWdlOl0pOiBBZGQKKyAgICAgICAgc2VsZiB0byB0aGUgYWxsIHZpZXdzIGFy
cmF5LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisKIDIw
MTMtMDEtMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjEzOTUxNik6IE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnJlY2Vp
dmVkUmVkaXJlY3QgaXMgbm90IGNhbGxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNTY3MDMxOTc1MzgxNzRmN2I0NjFk
OWVjNTQ2NmQwYzBjNTc1MDhjZS4uMmE2MjdhMDZiZDc1MzM4MjU5NmIzMGZkZTVmZDJkYjRhMDlj
ZWJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0KQEAgLTIwMCw2ICsyMDAsOSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdWaXNpYmxlKCkKICAgICBpZiAoW21fd2tWaWV3IGlzSGlkZGVuT3JIYXNIaWRkZW5BbmNlc3Rv
cl0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChbbV93a1ZpZXcgX2lzV2luZG93
T2NjbHVkZWRdKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDcwODJm
MDY0ZjUyZDJiOGZmMTIzYWQ2MTZlM2YzNTYyMGFjZjYyNzguLmNhYjY3YTdlNDUxMjQ3NDIzZGI1
NzY2MDAyN2Y1YjhiY2JlMzI0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTkzLDYgKzkzLDkgQEAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0
R3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBJbnRlcm5hbC5oIgogCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCitzdGF0aWMgYm9vbCB3
aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9IGZhbHNlOworI2VuZGlm
CiAKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoV0tOU0FwcGxpY2F0aW9uRGV0YWlscykKIC0g
KHZvaWQpc3BlYWtTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOwpAQCAtMTM1LDYgKzEzOCwxNCBA
QCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAtICh2b2lkKV9z
ZXREcmF3aW5nQXJlYVNpemU6KE5TU2l6ZSlzaXplOwogLSAodm9pZClfc2V0UGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlOihQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpcGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlOwogLSAoQk9PTClfc2hvdWxkVXNlVGlsZWREcmF3aW5nQXJlYTsKKy0g
KHZvaWQpX3NldElzV2luZG93T2NjbHVkZWQ6KEJPT0wpaXNXaW5kb3dPY2NsdWRlZDsKKy0gKHZv
aWQpX2VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnM7CistICh2b2lkKV9kaXNhYmxl
V2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uczsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwOTAKKysgKHZvaWQpX3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV91bnJlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9uSGFuZGxlcnM7CisjZW5kaWYKKysgKE5TTXV0YWJsZUFycmF5ICopX2FsbFZpZXdzOwog
QGVuZAogCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CkBAIC0yMTEsNiArMjIy
LDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAgICAg
TlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBCT09MIF9leHBhbmRzVG9GaXRDb250
ZW50VmlhQXV0b0xheW91dDsKKyAgICBCT09MIF9pc1dpbmRvd09jY2x1ZGVkOwogfQogCiBAZW5k
CkBAIC0yNjEsNiArMjczLDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMgewogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIAorICAgIFtb
V0tWaWV3IF9hbGxWaWV3c10gcmVtb3ZlT2JqZWN0OnNlbGZdOworCiAgICAgV2ViQ29udGV4dDo6
c3RhdGlzdGljcygpLndrVmlld0NvdW50LS07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CkBAIC0x
ODE3LDYgKzE4MzEsOCBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlP
bGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkTW92
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
d2luZG93RGlkUmVzaXplOikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2JqZWN0
OndpbmRvd107CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd1dpbGxPcmRlck9mZlNj
cmVlbjopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6QCJOU1dpbmRvd1dpbGxPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0
OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT2ZmU2Ny
ZWVuOikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6
d2luZG93XTsKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPblNjcmVl
bjopIApAQCAtMTg0MCw2ICsxODU2LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2lu
Z1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpOU1dpbmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwor
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBuYW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVj
dDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNh
dGlvbiIgb2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNp
YmxlIiBvYmplY3Q6d2luZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKQEAgLTE4NjUsMTAgKzE4ODIsMTMg
QEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JL
ZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAKICAgICBbc2VsZiByZW1vdmVXaW5kb3dP
YnNlcnZlcnNdOwogICAgIFtzZWxmIGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzp3aW5kb3dd
OworICAgIFtzZWxmIF9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc107CiB9CiAK
IC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogeworICAgIFtzZWxmIF9lbmFibGVXaW5kb3dP
Y2NsdXNpb25Ob3RpZmljYXRpb25zXTsKKwogICAgIC8vIFdlIHdhbnQgdG8gbWFrZSBzdXJlIHRv
IHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlIHdoaWxlIGhpZGRlbiwgc28gaWYgdGhlIHZpZXcgaXMg
YWJvdXQgdG8gYmVjb21lIHZpc2libGUsIHdlCiAgICAgLy8gdXBkYXRlIHRoZSBhY3RpdmUgc3Rh
dGUgZmlyc3QgYW5kIHRoZW4gbWFrZSBpdCB2aXNpYmxlLiBJZiB0aGUgdmlldyBpcyBhYm91dCB0
byBiZSBoaWRkZW4sIHdlIGhpZGUgaXQgZmlyc3QgYW5kIHRoZW4KICAgICAvLyB1cGRhdGUgdGhl
IGFjdGl2ZSBzdGF0ZS4KQEAgLTE5NjIsNiArMTk4MiwxMSBAQCBzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVy
dHlPbAogICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKIH0KIAorLSAodm9p
ZClfd2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgoreworICAgIFtzZWxmIF9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc107Cit9
CisKIC0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbgogewogICAgIFtzZWxmIF91cGRhdGVXaW5kb3dWaXNpYmlsaXR5XTsKQEAgLTE5
NzUsNiArMjAwMCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9s
ZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAtICh2b2lkKV93aW5kb3dE
aWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIFtz
ZWxmIF91cGRhdGVXaW5kb3dWaXNpYmlsaXR5XTsKKyAgICBbc2VsZiBfZW5hYmxlV2luZG93T2Nj
bHVzaW9uTm90aWZpY2F0aW9uc107CiAKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1
cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIHNpbmNlIHRoZSB2aWV3IGlz
IGFib3V0IHRvIGJlY29tZSB2aXNpYmxlLAogICAgIC8vIHdlIHVwZGF0ZSB0aGUgYWN0aXZlIHN0
YXRlIGZpcnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4KQEAgLTIyMDgsNiArMjIzNCwxMTgg
QEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5kKENHQ29udGV4dFJlZiBjb250ZXh0LCBX
ZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKIH0KICNlbmRpZgogCistICh2b2lkKV9zZXRJc1dp
bmRvd09jY2x1ZGVkOihCT09MKWlzV2luZG93T2NjbHVkZWQKK3sKKyAgICBpZiAoX2RhdGEtPl9p
c1dpbmRvd09jY2x1ZGVkID09IGlzV2luZG93T2NjbHVkZWQpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBfZGF0YS0+X2lzV2luZG93T2NjbHVkZWQgPSBpc1dpbmRvd09jY2x1ZGVkOworICAg
IF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzVmlz
aWJsZSk7Cit9CisKKy0gKHZvaWQpX2VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnMK
K3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyAgICBOU1dp
bmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAg
cmV0dXJuOworCisgICAgTlNJbnRlZ2VyIHdpbmRvd0lEID0gW3dpbmRvdyB3aW5kb3dOdW1iZXJd
OworICAgIGlmICh3aW5kb3dJRCA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBbV0tWaWV3
IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzXTsKKyAgICBib29s
IGlzV2luZG93T2NjbHVkZWQgPSBmYWxzZTsKKyAgICBpZiAoIVdLRW5hYmxlV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9ucyh3aW5kb3dJRCwgJmlzV2luZG93T2NjbHVkZWQpKSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiRW5hYmxpbmcgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb25zIGZv
ciB3aW5kb3cgJWxkIGZhaWxlZC5cbiIsIHdpbmRvd0lEKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChpc1dpbmRvd09jY2x1ZGVkKQorICAgICAgICBbc2VsZiBfc2V0SXNXaW5k
b3dPY2NsdWRlZDpZRVNdOworI2VuZGlmCit9CisKKy0gKHZvaWQpX2Rpc2FibGVXaW5kb3dPY2Ns
dXNpb25Ob3RpZmljYXRpb25zCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCisgICAgX2RhdGEtPl9pc1dpbmRvd09jY2x1ZGVkID0gTk87CisKKyAgICAvLyBP
Y2NsdXNpb250IG5vdGlmaWNhdGlvbnMgZm9yIGEgZ2l2ZW4gd2luZG93IG1pZ2h0IGFsc28gYmUg
dXNlZCBlbHNlIHdoZXJlIGluIHRoZQorICAgIC8vIGFwcGxpY2F0aW9uLCBoZW5jZSB1bnJlZ2lz
dGVyIG5vdGlmaWNhdGlvbiBoYW5kbGVycyBpbnN0ZWFkLgorICAgIE5TQXJyYXkgKmFsbFZpZXdz
ID0gW1dLVmlldyBfYWxsVmlld3NdOworICAgIGlmICgoW2FsbFZpZXdzIGNvdW50XSA9PSAxKSAm
JiAoW2FsbFZpZXdzIGxhc3RPYmplY3RdID09IHNlbGYpKQorICAgICAgICBbV0tWaWV3IF91bnJl
Z2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdOworI2VuZGlmCit9CisK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKworc3RhdGljIHZv
aWQgd2luZG93QmVjYW1lVmlzaWJsZSh1aW50MzJfdCwgdm9pZCogZGF0YSwgdWludDMyX3QgZGF0
YUxlbmd0aCwgdm9pZCosIHVpbnQzMl90KQoreworICAgIEFTU0VSVChkYXRhTGVuZ3RoID09IHNp
emVvZihXS1dpbmRvd0lEKSk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd0lEID0gKihXS1dpbmRvd0lE
ICopZGF0YTsKKworICAgIFtbV0tWaWV3IF9hbGxWaWV3c10gZW51bWVyYXRlT2JqZWN0c1VzaW5n
QmxvY2s6XihpZCBvYmosIE5TVUludGVnZXIgaWR4LCBCT09MICpzdG9wKSB7CisgICAgICAgIFdL
VmlldyAqdmlldyA9IG9iajsKKyAgICAgICAgaWYgKFtbdmlldyB3aW5kb3ddIHdpbmRvd051bWJl
cl0gPT0gd2luZG93SUQpCisgICAgICAgICAgICBbdmlldyBfc2V0SXNXaW5kb3dPY2NsdWRlZDpO
T107CisgICAgfV07Cit9CisKK3N0YXRpYyB2b2lkIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKHVpbnQz
Ml90LCB2b2lkKiBkYXRhLCB1aW50MzJfdCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpCit7
CisgICAgQVNTRVJUKGRhdGFMZW5ndGggPT0gc2l6ZW9mKFdLV2luZG93SUQpKTsKKyAgICBOU0lu
dGVnZXIgd2luZG93SUQgPSAqKFdLV2luZG93SUQgKilkYXRhOworCisgICAgW1tXS1ZpZXcgX2Fs
bFZpZXdzXSBlbnVtZXJhdGVPYmplY3RzVXNpbmdCbG9jazpeKGlkIG9iaiwgTlNVSW50ZWdlciBp
ZHgsIEJPT0wgKnN0b3ApIHsKKyAgICAgICAgV0tWaWV3ICp2aWV3ID0gb2JqOworICAgICAgICBp
ZiAoW1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSA9PSB3aW5kb3dJRCkKKyAgICAgICAgICAg
IFt2aWV3IF9zZXRJc1dpbmRvd09jY2x1ZGVkOllFU107CisgICAgfV07Cit9CisKKysgKHZvaWQp
X3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnMKK3sKKyAgICBpZiAo
d2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisgICAgICAgIHJldHVy
bjsKKyAgICB3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9IHRydWU7
CisKKyAgICBpZiAoIVdLUmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2libGUsIHdpbmRvd0JlY2FtZVZp
c2libGUpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRv
dyBCZWNhbWUgVmlzaWJsZVwiIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGZhaWxlZC5cbiIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmICghV0tSZWdpc3Rlck9jY2x1c2lvbk5v
dGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1l
T2NjbHVkZWQsIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMo
IlJlZ2lzdGVyYXRpb24gb2YgXCJXaW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9u
IGhhbmRsZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKKysgKHZv
aWQpX3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycworeworICAg
IGlmICghd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisgICAgICAg
IHJldHVybjsKKyAgICB3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9
IGZhbHNlOworCisgICAgaWYgKCFXS1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5k
bGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkLCB3aW5k
b3dCZWNhbWVPY2NsdWRlZCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lzdGVyYXRp
b24gb2YgXCJXaW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFp
bGVkLlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFXS1VucmVn
aXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9u
VHlwZVdpbmRvd0JlY2FtZVZpc2libGUsIHdpbmRvd0JlY2FtZVZpc2libGUpKSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiVW5yZWdpc3RlcmF0aW9uIG9mIFwiV2luZG93IEJlY2FtZSBWaXNpYmxl
XCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9Cit9CisjZW5kaWYKKworKyAoTlNNdXRhYmxlQXJyYXkgKilfYWxsVmlld3MKK3sKKyAgICBz
dGF0aWMgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF07CisgICAgcmV0dXJuIGFycmF5OworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1Zp
ZXcgKEludGVybmFsKQpAQCAtMjg5Nyw2ICszMDM1LDExIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuIF9k
YXRhLT5fcGFnZS0+c3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcygpOwogfQogCistIChCT09MKV9p
c1dpbmRvd09jY2x1ZGVkCit7CisgICAgcmV0dXJuIF9kYXRhLT5faXNXaW5kb3dPY2NsdWRlZDsK
K30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3IChQcml2YXRlKQpAQCAtMjk2Myw2
ICszMTA2LDggQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0
aChOU1N0cmluZyAqcGF0aCkKICAgICAgICAgc2VsZi5sYXllckNvbnRlbnRzUGxhY2VtZW50ID0g
TlNWaWV3TGF5ZXJDb250ZW50c1BsYWNlbWVudFRvcExlZnQ7CiAgICAgfQogCisgICAgW1tXS1Zp
ZXcgX2FsbFZpZXdzXSBhZGRPYmplY3Q6c2VsZl07CisKICAgICBXZWJDb250ZXh0OjpzdGF0aXN0
aWNzKCkud2tWaWV3Q291bnQrKzsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggMjM1MDBhYzZh
ZjczMmEyMTcwMjA2ZjJlOGYyMjYzZGMxZDljMmVlNS4uMzNmN2JkNzNhNTZkMDU5NDg4MTc3OWEy
NDBlNDhjNzZiYjYzM2I0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC0xMDEsNCArMTAxLDYgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAtICh2b2lkKV9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOihCT09MKXN1cHByZXNz
VmlzaWJpbGl0eVVwZGF0ZXM7CiAtIChCT09MKV9zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwog
CistIChCT09MKV9pc1dpbmRvd09jY2x1ZGVkOworCiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAzNzZm
ZDFlOGFjZWZkZmVmODVmN2Q3MGM3YTRiYTlkOGZhNjQ3ZmJjLi45OGQ0MjNjZDA0OWRjNmY5MGVj
N2M4NDVjYjBlNGYwNGJiNmYxNWRkIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMS0yNCAgS2lyYW4gTXVwcGFsYSAgPGNtdXBwYWxhQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgd2luZG93IG9jY2x1c2lvbiBjcml0ZXJpYSB0byBkZXRlcm1pbmUgcGFnZSB2aXNpYmlsaXR5
IG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA3NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGVudW0gY29uc3RhbnRzIHRvIHNwZWNpZnkgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRp
b24gdHlwZSB0bworICAgICAgICBub3RpZmljYXRpb24gcmVnaXN0cmF0aW9uL3VucmVnaXN0cmF0
aW9uIG1ldGhvZHMuICBBZGQgdHlwZWRlZiBmb3IKKyAgICAgICAgd2luZG93IElEIGRhdGEgcGFz
c2VkIHRvIHRoZSB3aW5kb3cgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbiBoYW5kbGVyLgorICAgICAg
ICBBZGQgbWV0aG9kIHRvIGVuYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBmb3IgYSBwYXJ0
aWN1bGFyIHdpbmRvdy4KKworICAgICAgICAqIFdlYktpdFN5c3RlbUludGVyZmFjZS5oOiBBZGQK
KyAgICAgICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwK
KyAgICAgICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2NjbHVkZWQs
CisgICAgICAgIFdLV2luZG93SUQsCisgICAgICAgIFdLRW5hYmxlV2luZG93T2NjbHVzaW9uTm90
aWZpY2F0aW9ucygpLgorCiAyMDEzLTAxLTEwICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdlYmtpdFN5c3RlbUludGVyZmFjZSBsaWIgZm9yIFdp
bmRvd3MgcG9ydC4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCBj
ZGNkNWZiZGU1Y2MxYzNiNWUzMTA5YzFlNzExMWFhNzkzYzMwMWZmLi45ZWQzNmYwMWEzYzQ5NDBm
ZTFhNzIyMzViNzM5YzhiMjA0YzNjMWVjIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFN5c3RlbUlu
dGVyZmFjZS5oCkBAIC01MjIsMTMgKzUyMiwxOCBAQCBDRlN0cmluZ1JlZiBXS0NhcHRpb25BcHBl
YXJhbmNlR2V0U2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uKHZvaWQpOwogI2lmIE1BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKIHR5cGVkZWYgZW51bSB7CiAgICAgV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVWaXNpYmxlLAotICAgIFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lT2NjbHVkZWQKKyAgICBXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkLAorICAgIFdL
T2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2libGUsCisgICAgV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2NjbHVkZWQKIH0gV0tPY2NsdXNpb25O
b3RpZmljYXRpb25UeXBlOwogCi10eXBlZGVmIHZvaWQgKCpXS09jY2x1c2lvbk5vdGlmaWNhdGlv
bkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiwgdWludDMyX3QsIHZvaWQqLCB1aW50MzJfdCk7Cit0
eXBlZGVmIHVpbnQzMl90IFdLV2luZG93SUQ7CisKK3R5cGVkZWYgdm9pZCAoKldLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uSGFuZGxlcikodWludDMyX3QsIHZvaWQqIGRhdGEsIHVpbnQzMl90IGRhdGFM
ZW5ndGgsIHZvaWQqLCB1aW50MzJfdCk7CiAKIGJvb2wgV0tSZWdpc3Rlck9jY2x1c2lvbk5vdGlm
aWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlLCBXS09jY2x1c2lvbk5v
dGlmaWNhdGlvbkhhbmRsZXIpOwogYm9vbCBXS1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRp
b25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyKTsKK2Jvb2wgV0tFbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25z
KE5TSW50ZWdlciB3aW5kb3dJRCwgYm9vbCAqb3V0Q3VycmVudE9jY2x1c2lvblN0YXRlKTsKIAog
ZW51bSB7CiAgICAgV0tQcm9jZXNzQXNzZXJ0aW9uVHlwZVZpc2libGUgPSAoMVVMIDw8IDEwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184794</attachid>
            <date>2013-01-25 12:33:47 -0800</date>
            <delta_ts>2013-01-25 15:46:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130125123040.patch</filename>
            <type>text/plain</type>
            <size>15333</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uNzMxODM1NmQxMTc1MzY0ZjdlOTAwNGM5ZjZlN2Q4
ZGVjZDZjZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAxLTI0ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgYWxsIHZpZXdzIGFycmF5LgorICAgICAgICAoLVtXS1Zp
ZXcgYWRkV2luZG93T2JzZXJ2ZXJzRm9yV2luZG93Ol0pOiBSZWdpc3RlciBvYnNlcnZlciBmb3IK
KyAgICAgICAgTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24uCisgICAgICAg
ICgtW1dLVmlldyByZW1vdmVXaW5kb3dPYnNlcnZlcnNdKTogVW5yZWdpc3RlciBvYnNlcnZlciBm
b3IKKyAgICAgICAgTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24uCisgICAg
ICAgICgtW1dLVmlldyB2aWV3V2lsbE1vdmVUb1dpbmRvdzpdKTogRGlzYWJsZSBvY2NsdXNpb24g
bm90aWZpY2F0aW9ucy4KKyAgICAgICAgKC1bV0tWaWV3IHZpZXdEaWRNb3ZlVG9XaW5kb3ddKTog
RW5hYmxlIG9jY2x1c2lvbiBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRv
d1dpbGxPcmRlck9mZlNjcmVlbjpdKTogRGlzYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucy4K
KyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOiBFbmFibGUgb2Nj
bHVzaW9uIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIFRoaXMgbm90aWZpY2F0aW9uIGVuc3VyZXMg
dGhhdCBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBhcmUgcmVnaXN0ZXJlZAorICAgICAgICBjb3Jy
ZWN0bHkgZXZlbiBpZiB0aGUgTlNXaW5kb3cgb2JqZWN0IGlzIGFzc2lnbmVkIGEgd2luZG93IG51
bWJlciBhZnRlcgorICAgICAgICB0aGUgdmlld0RpZE1vdmVUb1dpbmRvdyBub3RpZmljYXRpb24g
aGFzIGJlZW4gcmVjZWl2ZWQuICBUaGlzIG9jY3VycworICAgICAgICBmb3IgaW5zdGFuY2UgZHVy
aW5nIGFwcGxpY2F0aW9uIGxhdW5jaC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRJc1dpbmRvd09j
Y2x1ZGVkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlm
aWNhdGlvbnNdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90
aWZpY2F0aW9uc10pOgorICAgICAgICAod2luZG93QmVjYW1lVmlzaWJsZSk6CisgICAgICAgICh3
aW5kb3dCZWNhbWVPY2NsdWRlZCk6CisgICAgICAgICgrW1dLVmlldyBfcmVnaXN0ZXJXaW5kb3dP
Y2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc10pOgorICAgICAgICAoK1tXS1ZpZXcgX3VucmVn
aXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc10pOgorICAgICAgICAoK1tX
S1ZpZXcgX2FsbFZpZXdzXSk6CisgICAgICAgICgtW1dLVmlldyBfaXNXaW5kb3dPY2NsdWRlZF0p
OgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJl
ZjpyZWxhdGVkVG9QYWdlOl0pOiBBZGQKKyAgICAgICAgc2VsZiB0byB0aGUgYWxsIHZpZXdzIGFy
cmF5LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisKIDIw
MTMtMDEtMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjEzOTUxNik6IE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnJlY2Vp
dmVkUmVkaXJlY3QgaXMgbm90IGNhbGxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNTY3MDMxOTc1MzgxNzRmN2I0NjFk
OWVjNTQ2NmQwYzBjNTc1MDhjZS4uMmE2MjdhMDZiZDc1MzM4MjU5NmIzMGZkZTVmZDJkYjRhMDlj
ZWJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0KQEAgLTIwMCw2ICsyMDAsOSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdWaXNpYmxlKCkKICAgICBpZiAoW21fd2tWaWV3IGlzSGlkZGVuT3JIYXNIaWRkZW5BbmNlc3Rv
cl0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChbbV93a1ZpZXcgX2lzV2luZG93
T2NjbHVkZWRdKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDcwODJm
MDY0ZjUyZDJiOGZmMTIzYWQ2MTZlM2YzNTYyMGFjZjYyNzguLjNhN2IwNzc4ZDRjZWIwODBkMDlj
YWI5MDE4YjgzNjlkNjRmNWJkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTkzLDYgKzkzLDkgQEAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0
R3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBJbnRlcm5hbC5oIgogCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCitzdGF0aWMgYm9vbCB3
aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9IGZhbHNlOworI2VuZGlm
CiAKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoV0tOU0FwcGxpY2F0aW9uRGV0YWlscykKIC0g
KHZvaWQpc3BlYWtTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOwpAQCAtMTM1LDYgKzEzOCwxNCBA
QCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAtICh2b2lkKV9z
ZXREcmF3aW5nQXJlYVNpemU6KE5TU2l6ZSlzaXplOwogLSAodm9pZClfc2V0UGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlOihQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpcGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlOwogLSAoQk9PTClfc2hvdWxkVXNlVGlsZWREcmF3aW5nQXJlYTsKKy0g
KHZvaWQpX3NldElzV2luZG93T2NjbHVkZWQ6KEJPT0wpaXNXaW5kb3dPY2NsdWRlZDsKKy0gKHZv
aWQpX2VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnM7CistICh2b2lkKV9kaXNhYmxl
V2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uczsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwOTAKKysgKHZvaWQpX3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9uSGFuZGxlcnM7CisrICh2b2lkKV91bnJlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9uSGFuZGxlcnM7CisjZW5kaWYKKysgKE5TTXV0YWJsZUFycmF5ICopX2FsbFZpZXdzOwog
QGVuZAogCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CkBAIC0yMTEsNiArMjIy
LDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAgICAg
TlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBCT09MIF9leHBhbmRzVG9GaXRDb250
ZW50VmlhQXV0b0xheW91dDsKKyAgICBCT09MIF9pc1dpbmRvd09jY2x1ZGVkOwogfQogCiBAZW5k
CkBAIC0yNjEsNiArMjczLDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMgewogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIAorICAgIFtb
V0tWaWV3IF9hbGxWaWV3c10gcmVtb3ZlT2JqZWN0OnNlbGZdOworCiAgICAgV2ViQ29udGV4dDo6
c3RhdGlzdGljcygpLndrVmlld0NvdW50LS07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CkBAIC0x
ODE3LDYgKzE4MzEsOCBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlP
bGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkTW92
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
d2luZG93RGlkUmVzaXplOikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2JqZWN0
OndpbmRvd107CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd1dpbGxPcmRlck9mZlNj
cmVlbjopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6QCJOU1dpbmRvd1dpbGxPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0
OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT2ZmU2Ny
ZWVuOikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6
d2luZG93XTsKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPblNjcmVl
bjopIApAQCAtMTg0MCw2ICsxODU2LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2lu
Z1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpOU1dpbmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwor
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBuYW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVj
dDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNh
dGlvbiIgb2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNp
YmxlIiBvYmplY3Q6d2luZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKQEAgLTE4NjUsMTAgKzE4ODIsMTMg
QEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JL
ZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAKICAgICBbc2VsZiByZW1vdmVXaW5kb3dP
YnNlcnZlcnNdOwogICAgIFtzZWxmIGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzp3aW5kb3dd
OworICAgIFtzZWxmIF9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc107CiB9CiAK
IC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogeworICAgIFtzZWxmIF9lbmFibGVXaW5kb3dP
Y2NsdXNpb25Ob3RpZmljYXRpb25zXTsKKwogICAgIC8vIFdlIHdhbnQgdG8gbWFrZSBzdXJlIHRv
IHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlIHdoaWxlIGhpZGRlbiwgc28gaWYgdGhlIHZpZXcgaXMg
YWJvdXQgdG8gYmVjb21lIHZpc2libGUsIHdlCiAgICAgLy8gdXBkYXRlIHRoZSBhY3RpdmUgc3Rh
dGUgZmlyc3QgYW5kIHRoZW4gbWFrZSBpdCB2aXNpYmxlLiBJZiB0aGUgdmlldyBpcyBhYm91dCB0
byBiZSBoaWRkZW4sIHdlIGhpZGUgaXQgZmlyc3QgYW5kIHRoZW4KICAgICAvLyB1cGRhdGUgdGhl
IGFjdGl2ZSBzdGF0ZS4KQEAgLTE5NjIsNiArMTk4MiwxMSBAQCBzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVy
dHlPbAogICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKIH0KIAorLSAodm9p
ZClfd2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgoreworICAgIFtzZWxmIF9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc107Cit9
CisKIC0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbgogewogICAgIFtzZWxmIF91cGRhdGVXaW5kb3dWaXNpYmlsaXR5XTsKQEAgLTE5
NzUsNiArMjAwMCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9s
ZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAtICh2b2lkKV93aW5kb3dE
aWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIFtz
ZWxmIF91cGRhdGVXaW5kb3dWaXNpYmlsaXR5XTsKKyAgICBbc2VsZiBfZW5hYmxlV2luZG93T2Nj
bHVzaW9uTm90aWZpY2F0aW9uc107CiAKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1
cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIHNpbmNlIHRoZSB2aWV3IGlz
IGFib3V0IHRvIGJlY29tZSB2aXNpYmxlLAogICAgIC8vIHdlIHVwZGF0ZSB0aGUgYWN0aXZlIHN0
YXRlIGZpcnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4KQEAgLTIyMDgsNiArMjIzNCwxMTgg
QEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5kKENHQ29udGV4dFJlZiBjb250ZXh0LCBX
ZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKIH0KICNlbmRpZgogCistICh2b2lkKV9zZXRJc1dp
bmRvd09jY2x1ZGVkOihCT09MKWlzV2luZG93T2NjbHVkZWQKK3sKKyAgICBpZiAoX2RhdGEtPl9p
c1dpbmRvd09jY2x1ZGVkID09IGlzV2luZG93T2NjbHVkZWQpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBfZGF0YS0+X2lzV2luZG93T2NjbHVkZWQgPSBpc1dpbmRvd09jY2x1ZGVkOworICAg
IF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzVmlz
aWJsZSk7Cit9CisKKy0gKHZvaWQpX2VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnMK
K3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyAgICBOU1dp
bmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAg
cmV0dXJuOworCisgICAgTlNJbnRlZ2VyIHdpbmRvd0lEID0gW3dpbmRvdyB3aW5kb3dOdW1iZXJd
OworICAgIGlmICh3aW5kb3dJRCA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBbV0tWaWV3
IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzXTsKKyAgICBib29s
IGlzV2luZG93T2NjbHVkZWQgPSBmYWxzZTsKKyAgICBpZiAoIVdLRW5hYmxlV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9ucyh3aW5kb3dJRCwgJmlzV2luZG93T2NjbHVkZWQpKSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiRW5hYmxpbmcgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb25zIGZv
ciB3aW5kb3cgJWxkIGZhaWxlZC5cbiIsIHdpbmRvd0lEKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChpc1dpbmRvd09jY2x1ZGVkKQorICAgICAgICBbc2VsZiBfc2V0SXNXaW5k
b3dPY2NsdWRlZDpZRVNdOworI2VuZGlmCit9CisKKy0gKHZvaWQpX2Rpc2FibGVXaW5kb3dPY2Ns
dXNpb25Ob3RpZmljYXRpb25zCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCisgICAgW3NlbGYgX3NldElzV2luZG93T2NjbHVkZWQ6Tk9dOworCisgICAgLy8g
T2NjbHVzaW9udCBub3RpZmljYXRpb25zIGZvciBhIGdpdmVuIHdpbmRvdyBtaWdodCBhbHNvIGJl
IHVzZWQgZWxzZSB3aGVyZSBpbiB0aGUKKyAgICAvLyBhcHBsaWNhdGlvbiwgaGVuY2UgdW5yZWdp
c3RlciBub3RpZmljYXRpb24gaGFuZGxlcnMgaW5zdGVhZC4KKyAgICBOU0FycmF5ICphbGxWaWV3
cyA9IFtXS1ZpZXcgX2FsbFZpZXdzXTsKKyAgICBpZiAoKFthbGxWaWV3cyBjb3VudF0gPT0gMSkg
JiYgKFthbGxWaWV3cyBsYXN0T2JqZWN0XSA9PSBzZWxmKSkKKyAgICAgICAgW1dLVmlldyBfdW5y
ZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzXTsKKyNlbmRpZgorfQor
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisKK3N0YXRpYyB2
b2lkIHdpbmRvd0JlY2FtZVZpc2libGUodWludDMyX3QsIHZvaWQqIGRhdGEsIHVpbnQzMl90IGRh
dGFMZW5ndGgsIHZvaWQqLCB1aW50MzJfdCkKK3sKKyAgICBBU1NFUlQoZGF0YUxlbmd0aCA9PSBz
aXplb2YoV0tXaW5kb3dJRCkpOworICAgIE5TSW50ZWdlciB3aW5kb3dJRCA9ICooV0tXaW5kb3dJ
RCAqKWRhdGE7CisKKyAgICBbW1dLVmlldyBfYWxsVmlld3NdIGVudW1lcmF0ZU9iamVjdHNVc2lu
Z0Jsb2NrOl4oaWQgb2JqLCBOU1VJbnRlZ2VyIGlkeCwgQk9PTCAqc3RvcCkgeworICAgICAgICBX
S1ZpZXcgKnZpZXcgPSBvYmo7CisgICAgICAgIGlmIChbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1i
ZXJdID09IHdpbmRvd0lEKQorICAgICAgICAgICAgW3ZpZXcgX3NldElzV2luZG93T2NjbHVkZWQ6
Tk9dOworICAgIH1dOworfQorCitzdGF0aWMgdm9pZCB3aW5kb3dCZWNhbWVPY2NsdWRlZCh1aW50
MzJfdCwgdm9pZCogZGF0YSwgdWludDMyX3QgZGF0YUxlbmd0aCwgdm9pZCosIHVpbnQzMl90KQor
eworICAgIEFTU0VSVChkYXRhTGVuZ3RoID09IHNpemVvZihXS1dpbmRvd0lEKSk7CisgICAgTlNJ
bnRlZ2VyIHdpbmRvd0lEID0gKihXS1dpbmRvd0lEICopZGF0YTsKKworICAgIFtbV0tWaWV3IF9h
bGxWaWV3c10gZW51bWVyYXRlT2JqZWN0c1VzaW5nQmxvY2s6XihpZCBvYmosIE5TVUludGVnZXIg
aWR4LCBCT09MICpzdG9wKSB7CisgICAgICAgIFdLVmlldyAqdmlldyA9IG9iajsKKyAgICAgICAg
aWYgKFtbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0gPT0gd2luZG93SUQpCisgICAgICAgICAg
ICBbdmlldyBfc2V0SXNXaW5kb3dPY2NsdWRlZDpZRVNdOworICAgIH1dOworfQorCisrICh2b2lk
KV9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzCit7CisgICAgaWYg
KHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVkKQorICAgICAgICByZXR1
cm47CisgICAgd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQgPSB0cnVl
OworCisgICAgaWYgKCFXS1JlZ2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcihXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLCB3aW5kb3dCZWNhbWVW
aXNpYmxlKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlJlZ2lzdGVyYXRpb24gb2YgXCJXaW5k
b3cgQmVjYW1lIFZpc2libGVcIiBub3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAoIVdLUmVnaXN0ZXJPY2NsdXNpb25O
b3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2Ft
ZU9jY2x1ZGVkLCB3aW5kb3dCZWNhbWVPY2NsdWRlZCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlz
KCJSZWdpc3RlcmF0aW9uIG9mIFwiV2luZG93IEJlY2FtZSBPY2NsdWRlZFwiIG5vdGlmaWNhdGlv
biBoYW5kbGVyIGZhaWxlZC5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCisrICh2
b2lkKV91bnJlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnMKK3sKKyAg
ICBpZiAoIXdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVkKQorICAgICAg
ICByZXR1cm47CisgICAgd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQg
PSBmYWxzZTsKKworICAgIGlmICghV0tVbnJlZ2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0aW9uSGFu
ZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVPY2NsdWRlZCwgd2lu
ZG93QmVjYW1lT2NjbHVkZWQpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiVW5yZWdpc3RlcmF0
aW9uIG9mIFwiV2luZG93IEJlY2FtZSBPY2NsdWRlZFwiIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGZh
aWxlZC5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmICghV0tVbnJl
Z2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlv
blR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLCB3aW5kb3dCZWNhbWVWaXNpYmxlKSkgeworICAgICAg
ICBXVEZMb2dBbHdheXMoIlVucmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgVmlzaWJs
ZVwiIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGZhaWxlZC5cbiIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorfQorI2VuZGlmCisKKysgKE5TTXV0YWJsZUFycmF5ICopX2FsbFZpZXdzCit7CisgICAg
c3RhdGljIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdOworICAgIHJldHVybiBhcnJheTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tW
aWV3IChJbnRlcm5hbCkKQEAgLTI4OTcsNiArMzAzNSwxMSBAQCBzdGF0aWMgTlNTdHJpbmcgKnBh
dGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiBf
ZGF0YS0+X3BhZ2UtPnN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoKTsKIH0KIAorLSAoQk9PTClf
aXNXaW5kb3dPY2NsdWRlZAoreworICAgIHJldHVybiBfZGF0YS0+X2lzV2luZG93T2NjbHVkZWQ7
Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlldyAoUHJpdmF0ZSkKQEAgLTI5NjMs
NiArMzEwNiw4IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBh
dGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgICAgIHNlbGYubGF5ZXJDb250ZW50c1BsYWNlbWVudCA9
IE5TVmlld0xheWVyQ29udGVudHNQbGFjZW1lbnRUb3BMZWZ0OwogICAgIH0KIAorICAgIFtbV0tW
aWV3IF9hbGxWaWV3c10gYWRkT2JqZWN0OnNlbGZdOworCiAgICAgV2ViQ29udGV4dDo6c3RhdGlz
dGljcygpLndrVmlld0NvdW50Kys7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4IDIzNTAwYWM2
YWY3MzJhMjE3MDIwNmYyZThmMjI2M2RjMWQ5YzJlZTUuLjMzZjdiZDczYTU2ZDA1OTQ4ODE3Nzlh
MjQwZTQ4Yzc2YmI2MzNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtMTAxLDQgKzEwMSw2IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogLSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9PTClzdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzOwogLSAoQk9PTClfc3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczsK
IAorLSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZDsKKwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0
TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMzc2
ZmQxZThhY2VmZGZlZjg1ZjdkNzBjN2E0YmE5ZDhmYTY0N2ZiYy4uOThkNDIzY2QwNDlkYzZmOTBl
YzdjODQ1Y2IwZTRmMDRiYjZmMTVkZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTMtMDEtMjQgIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHdpbmRvdyBvY2NsdXNpb24gY3JpdGVyaWEgdG8gZGV0ZXJtaW5lIHBhZ2UgdmlzaWJpbGl0
eSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNzQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBlbnVtIGNvbnN0YW50cyB0byBzcGVjaWZ5IHdpbmRvdyBvY2NsdXNpb24gbm90aWZpY2F0
aW9uIHR5cGUgdG8KKyAgICAgICAgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi91bnJlZ2lzdHJh
dGlvbiBtZXRob2RzLiAgQWRkIHR5cGVkZWYgZm9yCisgICAgICAgIHdpbmRvdyBJRCBkYXRhIHBh
c3NlZCB0byB0aGUgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb24gaGFuZGxlci4KKyAgICAg
ICAgQWRkIG1ldGhvZCB0byBlbmFibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9yIGEgcGFy
dGljdWxhciB3aW5kb3cuCisKKyAgICAgICAgKiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaDogQWRk
CisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2libGUs
CisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVk
LAorICAgICAgICBXS1dpbmRvd0lELAorICAgICAgICBXS0VuYWJsZVdpbmRvd09jY2x1c2lvbk5v
dGlmaWNhdGlvbnMoKS4KKwogMjAxMy0wMS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJraXRTeXN0ZW1JbnRlcmZhY2UgbGliIGZvciBX
aW5kb3dzIHBvcnQuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmggYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgKaW5kZXgg
Y2RjZDVmYmRlNWNjMWMzYjVlMzEwOWMxZTcxMTFhYTc5M2MzMDFmZi4uOWVkMzZmMDFhM2M0OTQw
ZmUxYTcyMjM1YjczOWM4YjIwNGMzYzFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL1dl
YktpdFN5c3RlbUludGVyZmFjZS5oCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaApAQCAtNTIyLDEzICs1MjIsMTggQEAgQ0ZTdHJpbmdSZWYgV0tDYXB0aW9uQXBw
ZWFyYW5jZUdldFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbih2b2lkKTsKICNpZiBNQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiB0eXBlZGVmIGVudW0gewogICAgIFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lVmlzaWJsZSwKLSAgICBXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkCisgICAgV0tP
Y2NsdXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVPY2NsdWRlZCwKKyAgICBX
S09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLAorICAgIFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkCiB9IFdLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uVHlwZTsKIAotdHlwZWRlZiB2b2lkICgqV0tPY2NsdXNpb25Ob3RpZmljYXRp
b25IYW5kbGVyKSh1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90LCB2b2lkKiwgdWludDMyX3QpOwor
dHlwZWRlZiB1aW50MzJfdCBXS1dpbmRvd0lEOworCit0eXBlZGVmIHZvaWQgKCpXS09jY2x1c2lv
bk5vdGlmaWNhdGlvbkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJfdCBkYXRh
TGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpOwogCiBib29sIFdLUmVnaXN0ZXJPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2NsdXNpb25O
b3RpZmljYXRpb25IYW5kbGVyKTsKIGJvb2wgV0tVbnJlZ2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0
aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGUsIFdLT2NjbHVzaW9uTm90aWZp
Y2F0aW9uSGFuZGxlcik7Citib29sIFdLRW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9u
cyhOU0ludGVnZXIgd2luZG93SUQsIGJvb2wgKm91dEN1cnJlbnRPY2NsdXNpb25TdGF0ZSk7CiAK
IGVudW0gewogICAgIFdLUHJvY2Vzc0Fzc2VydGlvblR5cGVWaXNpYmxlID0gKDFVTCA8PCAxMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184823</attachid>
            <date>2013-01-25 15:46:29 -0800</date>
            <delta_ts>2013-01-28 14:05:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130125154320.patch</filename>
            <type>text/plain</type>
            <size>15439</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uYWJkODQ1YjU4MjEzMjAxNTEwMDNkZDA1OTgyZDc3
MTZjY2EyM2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAxLTI1ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgYWxsIHZpZXdzIHZlY3Rvci4KKyAgICAgICAgKC1bV0tW
aWV3IGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzpdKTogUmVnaXN0ZXIgb2JzZXJ2ZXIgZm9y
CisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAgICAg
ICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXSk6IFVucmVnaXN0ZXIgb2JzZXJ2ZXIg
Zm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAg
ICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6XSk6IERpc2FibGUgb2NjbHVzaW9u
IG5vdGlmaWNhdGlvbnMuCisgICAgICAgICgtW1dLVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6
IEVuYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5k
b3dXaWxsT3JkZXJPZmZTY3JlZW46XSk6IERpc2FibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMu
CisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkT3JkZXJPblNjcmVlbjpdKTogRW5hYmxlIG9j
Y2x1c2lvbiBub3RpZmljYXRpb25zLgorICAgICAgICBUaGlzIG5vdGlmaWNhdGlvbiBlbnN1cmVz
IHRoYXQgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgYXJlIHJlZ2lzdGVyZWQKKyAgICAgICAgY29y
cmVjdGx5IGV2ZW4gaWYgdGhlIE5TV2luZG93IG9iamVjdCBpcyBhc3NpZ25lZCBhIHdpbmRvdyBu
dW1iZXIgYWZ0ZXIKKyAgICAgICAgdGhlIHZpZXdEaWRNb3ZlVG9XaW5kb3cgbm90aWZpY2F0aW9u
IGhhcyBiZWVuIHJlY2VpdmVkLiAgVGhpcyBvY2N1cnMKKyAgICAgICAgZm9yIGluc3RhbmNlIGR1
cmluZyBhcHBsaWNhdGlvbiBsYXVuY2guCisgICAgICAgICgtW1dLVmlldyBfc2V0SXNXaW5kb3dP
Y2NsdWRlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9lbmFibGVXaW5kb3dPY2NsdXNpb25Ob3Rp
ZmljYXRpb25zXSk6CisgICAgICAgICgtW1dLVmlldyBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5v
dGlmaWNhdGlvbnNdKToKKyAgICAgICAgKHdpbmRvd0JlY2FtZVZpc2libGUpOgorICAgICAgICAo
d2luZG93QmVjYW1lT2NjbHVkZWQpOgorICAgICAgICAoK1tXS1ZpZXcgX3JlZ2lzdGVyV2luZG93
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF91bnJl
Z2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtb
V0tWaWV3IF9hbGxWaWV3c10pOgorICAgICAgICAoLVtXS1ZpZXcgX2lzV2luZG93T2NjbHVkZWRd
KToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBS
ZWY6cmVsYXRlZFRvUGFnZTpdKTogQWRkCisgICAgICAgIHNlbGYgdG8gdGhlIGFsbCB2aWV3cyB2
ZWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDoKKwog
MjAxMy0wMS0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMTM5NTE2KTogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVj
ZWl2ZWRSZWRpcmVjdCBpcyBub3QgY2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA1NjcwMzE5NzUzODE3NGY3YjQ2
MWQ5ZWM1NDY2ZDBjMGM1NzUwOGNlLi4yYTYyN2EwNmJkNzUzMzgyNTk2YjMwZmRlNWZkMmRiNGEw
OWNlYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQpAQCAtMjAwLDYgKzIwMCw5IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6Omlz
Vmlld1Zpc2libGUoKQogICAgIGlmIChbbV93a1ZpZXcgaXNIaWRkZW5Pckhhc0hpZGRlbkFuY2Vz
dG9yXSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKFttX3drVmlldyBfaXNXaW5k
b3dPY2NsdWRlZF0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNzA4
MmYwNjRmNTJkMmI4ZmYxMjNhZDYxNmUzZjM1NjIwYWNmNjI3OC4uYzgwNDhiMThhMWYzZGZjYjIy
YzUwZGNkMzhjZGIxZDBhODY3Zjc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtOTMsNiArOTMsOSBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRl
eHRHcm91cEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cEludGVybmFsLmgiCiAK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKK3N0YXRpYyBib29s
IHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVkID0gZmFsc2U7CisjZW5k
aWYKIAogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXS05TQXBwbGljYXRpb25EZXRhaWxzKQog
LSAodm9pZClzcGVha1N0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CkBAIC0xMzUsNiArMTM4LDE0
IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIC0gKHZvaWQp
X3NldERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemU7CiAtICh2b2lkKV9zZXRQbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGU6KFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSlwbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGU7CiAtIChCT09MKV9zaG91bGRVc2VUaWxlZERyYXdpbmdBcmVhOwor
LSAodm9pZClfc2V0SXNXaW5kb3dPY2NsdWRlZDooQk9PTClpc1dpbmRvd09jY2x1ZGVkOworLSAo
dm9pZClfZW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uczsKKy0gKHZvaWQpX2Rpc2Fi
bGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAorKyAodm9pZClfcmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyczsKKysgKHZvaWQpX3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyczsKKyNlbmRpZgorKyAoVmVjdG9yPFdLVmlldyAqPiYpX2FsbFZpZXdz
OwogQGVuZAogCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CkBAIC0yMTEsNiAr
MjIyLDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAg
ICAgTlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBCT09MIF9leHBhbmRzVG9GaXRD
b250ZW50VmlhQXV0b0xheW91dDsKKyAgICBCT09MIF9pc1dpbmRvd09jY2x1ZGVkOwogfQogCiBA
ZW5kCkBAIC0yNjEsNiArMjczLDkgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1Bh
cmFtZXRlcnMgewogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIAorICAg
IFZlY3RvcjxXS1ZpZXcgKj4mIGFsbFZpZXdzID0gW1dLVmlldyBfYWxsVmlld3NdOworICAgIGFs
bFZpZXdzLnJlbW92ZShhbGxWaWV3cy5maW5kKHNlbGYpKTsKKwogICAgIFdlYkNvbnRleHQ6OnN0
YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpAQCAtMTgx
Nyw2ICsxODMyLDggQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xk
U2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZE1vdmVO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dp
bmRvd0RpZFJlc2l6ZTopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3
aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dXaWxsT3JkZXJPZmZTY3Jl
ZW46KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVjdDp3
aW5kb3ddOwogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9mZlNjcmVl
bjopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0Ondp
bmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46
KSAKQEAgLTE4NDAsNiArMTg1Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQ
cm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6TlNXaW5kb3dEaWREZW1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNl
bGYgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNl
bGYgbmFtZTpAIk5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6
d2luZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92
ZU9ic2VydmVyOnNlbGYgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRp
b24iIG9iamVjdDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJs
ZSIgb2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CkBAIC0xODY1LDEwICsxODgzLDEzIEBA
IHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5
ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgCiAgICAgW3NlbGYgcmVtb3ZlV2luZG93T2Jz
ZXJ2ZXJzXTsKICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2luZG93XTsK
KyAgICBbc2VsZiBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNdOwogfQogCiAt
ICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIHsKKyAgICBbc2VsZiBfZW5hYmxlV2luZG93T2Nj
bHVzaW9uTm90aWZpY2F0aW9uc107CisKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1
cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIGlmIHRoZSB2aWV3IGlzIGFi
b3V0IHRvIGJlY29tZSB2aXNpYmxlLCB3ZQogICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRl
IGZpcnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4gSWYgdGhlIHZpZXcgaXMgYWJvdXQgdG8g
YmUgaGlkZGVuLCB3ZSBoaWRlIGl0IGZpcnN0IGFuZCB0aGVuCiAgICAgLy8gdXBkYXRlIHRoZSBh
Y3RpdmUgc3RhdGUuCkBAIC0xOTYyLDYgKzE5ODMsMTEgQEAgc3RhdGljIE5TU3RyaW5nICogY29u
c3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5
T2wKICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107CiB9CiAKKy0gKHZvaWQp
X3dpbmRvd1dpbGxPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
K3sKKyAgICBbc2VsZiBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNdOworfQor
CiAtICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KIHsKICAgICBbc2VsZiBfdXBkYXRlV2luZG93VmlzaWJpbGl0eV07CkBAIC0xOTc1
LDYgKzIwMDEsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRT
Y2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogLSAodm9pZClfd2luZG93RGlk
T3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBbc2Vs
ZiBfdXBkYXRlV2luZG93VmlzaWJpbGl0eV07CisgICAgW3NlbGYgX2VuYWJsZVdpbmRvd09jY2x1
c2lvbk5vdGlmaWNhdGlvbnNdOwogCiAgICAgLy8gV2Ugd2FudCB0byBtYWtlIHN1cmUgdG8gdXBk
YXRlIHRoZSBhY3RpdmUgc3RhdGUgd2hpbGUgaGlkZGVuLCBzbyBzaW5jZSB0aGUgdmlldyBpcyBh
Ym91dCB0byBiZWNvbWUgdmlzaWJsZSwKICAgICAvLyB3ZSB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0
ZSBmaXJzdCBhbmQgdGhlbiBtYWtlIGl0IHZpc2libGUuCkBAIC0yMjA4LDYgKzIyMzUsMTIwIEBA
IHN0YXRpYyB2b2lkIGRyYXdQYWdlQmFja2dyb3VuZChDR0NvbnRleHRSZWYgY29udGV4dCwgV2Vi
UGFnZVByb3h5KiBwYWdlLCBjb25zdCBJCiB9CiAjZW5kaWYKIAorLSAodm9pZClfc2V0SXNXaW5k
b3dPY2NsdWRlZDooQk9PTClpc1dpbmRvd09jY2x1ZGVkCit7CisgICAgaWYgKF9kYXRhLT5faXNX
aW5kb3dPY2NsdWRlZCA9PSBpc1dpbmRvd09jY2x1ZGVkKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgX2RhdGEtPl9pc1dpbmRvd09jY2x1ZGVkID0gaXNXaW5kb3dPY2NsdWRlZDsKKyAgICBf
ZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2li
bGUpOworfQorCistICh2b2lkKV9lbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zCit7
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TSW50ZWdlciB3aW5kb3dJRCA9IFt3aW5kb3cgd2luZG93TnVtYmVyXTsK
KyAgICBpZiAod2luZG93SUQgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgW1dLVmlldyBf
cmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyc107CisgICAgYm9vbCBp
c1dpbmRvd09jY2x1ZGVkID0gZmFsc2U7CisgICAgaWYgKCFXS0VuYWJsZVdpbmRvd09jY2x1c2lv
bk5vdGlmaWNhdGlvbnMod2luZG93SUQsICZpc1dpbmRvd09jY2x1ZGVkKSkgeworICAgICAgICBX
VEZMb2dBbHdheXMoIkVuYWJsaW5nIHdpbmRvdyBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBmb3Ig
d2luZG93ICVsZCBmYWlsZWQuXG4iLCB3aW5kb3dJRCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoaXNXaW5kb3dPY2NsdWRlZCkKKyAgICAgICAgW3NlbGYgX3NldElzV2luZG93
T2NjbHVkZWQ6WUVTXTsKKyNlbmRpZgorfQorCistICh2b2lkKV9kaXNhYmxlV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9ucworeworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA5MAorICAgIFtzZWxmIF9zZXRJc1dpbmRvd09jY2x1ZGVkOk5PXTsKKworICAgIC8vIE9j
Y2x1c2lvbnQgbm90aWZpY2F0aW9ucyBmb3IgYSBnaXZlbiB3aW5kb3cgbWlnaHQgYWxzbyBiZSB1
c2VkIGVsc2Ugd2hlcmUgaW4gdGhlCisgICAgLy8gYXBwbGljYXRpb24sIGhlbmNlIHVucmVnaXN0
ZXIgbm90aWZpY2F0aW9uIGhhbmRsZXJzIGluc3RlYWQuCisgICAgVmVjdG9yPFdLVmlldyAqPiYg
YWxsVmlld3MgPSBbV0tWaWV3IF9hbGxWaWV3c107CisgICAgaWYgKChhbGxWaWV3cy5zaXplKCkg
PT0gMSkgJiYgKGFsbFZpZXdzWzBdID09IHNlbGYpKQorICAgICAgICBbV0tWaWV3IF91bnJlZ2lz
dGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdOworI2VuZGlmCit9CisKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKworc3RhdGljIHZvaWQg
d2luZG93QmVjYW1lVmlzaWJsZSh1aW50MzJfdCwgdm9pZCogZGF0YSwgdWludDMyX3QgZGF0YUxl
bmd0aCwgdm9pZCosIHVpbnQzMl90KQoreworICAgIEFTU0VSVChkYXRhTGVuZ3RoID09IHNpemVv
ZihXS1dpbmRvd0lEKSk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd0lEID0gKihXS1dpbmRvd0lEICop
ZGF0YTsKKworICAgIFZlY3RvcjxXS1ZpZXcgKj4mIGFsbFZpZXdzID0gW1dLVmlldyBfYWxsVmll
d3NdOworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gYWxsVmlld3Muc2l6ZSgpOyBpIDwg
c2l6ZTsgKytpKSB7CisgICAgICAgIFdLVmlldyAqdmlldyA9IGFsbFZpZXdzW2ldOworICAgICAg
ICBpZiAoW1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSA9PSB3aW5kb3dJRCkKKyAgICAgICAg
ICAgIFt2aWV3IF9zZXRJc1dpbmRvd09jY2x1ZGVkOk5PXTsKKyAgICB9Cit9CisKK3N0YXRpYyB2
b2lkIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJfdCBk
YXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpCit7CisgICAgQVNTRVJUKGRhdGFMZW5ndGggPT0g
c2l6ZW9mKFdLV2luZG93SUQpKTsKKyAgICBOU0ludGVnZXIgd2luZG93SUQgPSAqKFdLV2luZG93
SUQgKilkYXRhOworCisgICAgVmVjdG9yPFdLVmlldyAqPiYgYWxsVmlld3MgPSBbV0tWaWV3IF9h
bGxWaWV3c107CisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBhbGxWaWV3cy5zaXplKCk7
IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgV0tWaWV3ICp2aWV3ID0gYWxsVmlld3NbaV07Cisg
ICAgICAgIGlmIChbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdID09IHdpbmRvd0lEKQorICAg
ICAgICAgICAgW3ZpZXcgX3NldElzV2luZG93T2NjbHVkZWQ6WUVTXTsKKyAgICB9Cit9CisKKysg
KHZvaWQpX3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnMKK3sKKyAg
ICBpZiAod2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisgICAgICAg
IHJldHVybjsKKyAgICB3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0ZXJlZCA9
IHRydWU7CisKKyAgICBpZiAoIVdLUmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVy
KFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2libGUsIHdpbmRvd0Jl
Y2FtZVZpc2libGUpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBc
IldpbmRvdyBCZWNhbWUgVmlzaWJsZVwiIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGZhaWxlZC5cbiIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmICghV0tSZWdpc3Rlck9jY2x1
c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93
QmVjYW1lT2NjbHVkZWQsIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dB
bHdheXMoIlJlZ2lzdGVyYXRpb24gb2YgXCJXaW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZp
Y2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisK
KysgKHZvaWQpX3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycwor
eworICAgIGlmICghd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisg
ICAgICAgIHJldHVybjsKKyAgICB3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJlUmVnaXN0
ZXJlZCA9IGZhbHNlOworCisgICAgaWYgKCFXS1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRp
b25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVk
LCB3aW5kb3dCZWNhbWVPY2NsdWRlZCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lz
dGVyYXRpb24gb2YgXCJXaW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9uIGhhbmRs
ZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFX
S1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZp
Y2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2libGUsIHdpbmRvd0JlY2FtZVZpc2libGUpKSB7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiVW5yZWdpc3RlcmF0aW9uIG9mIFwiV2luZG93IEJlY2FtZSBW
aXNpYmxlXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9Cit9CisjZW5kaWYKKworKyAoVmVjdG9yPFdLVmlldyAqPiYpX2FsbFZpZXdzCit7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8V0tWaWV3ICo+LCB2ZWN0b3IsICgpKTsK
KyAgICByZXR1cm4gdmVjdG9yOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXcg
KEludGVybmFsKQpAQCAtMjg5Nyw2ICszMDM4LDExIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdp
dGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuIF9kYXRh
LT5fcGFnZS0+c3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcygpOwogfQogCistIChCT09MKV9pc1dp
bmRvd09jY2x1ZGVkCit7CisgICAgcmV0dXJuIF9kYXRhLT5faXNXaW5kb3dPY2NsdWRlZDsKK30K
KwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3IChQcml2YXRlKQpAQCAtMjk2Myw2ICsz
MTA5LDggQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChO
U1N0cmluZyAqcGF0aCkKICAgICAgICAgc2VsZi5sYXllckNvbnRlbnRzUGxhY2VtZW50ID0gTlNW
aWV3TGF5ZXJDb250ZW50c1BsYWNlbWVudFRvcExlZnQ7CiAgICAgfQogCisgICAgW1dLVmlldyBf
YWxsVmlld3NdLmFwcGVuZChzZWxmKTsKKwogICAgIFdlYkNvbnRleHQ6OnN0YXRpc3RpY3MoKS53
a1ZpZXdDb3VudCsrOwogCiAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCAyMzUwMGFjNmFmNzMyYTIx
NzAyMDZmMmU4ZjIyNjNkYzFkOWMyZWU1Li4zM2Y3YmQ3M2E1NmQwNTk0ODgxNzc5YTI0MGU0OGM3
NmJiNjMzYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlld0ludGVybmFsLmgKQEAgLTEwMSw0ICsxMDEsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC0g
KHZvaWQpX3NldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM6KEJPT0wpc3VwcHJlc3NWaXNpYmls
aXR5VXBkYXRlczsKIC0gKEJPT0wpX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM7CiAKKy0gKEJP
T0wpX2lzV2luZG93T2NjbHVkZWQ7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmll
cy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDM3NmZkMWU4YWNl
ZmRmZWY4NWY3ZDcwYzdhNGJhOWQ4ZmE2NDdmYmMuLjBkOGJiZmU0NWIxNGQwZTM3Yzg2NTAzYWQ1
YThkMmRkODZjODU3YzEgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAxLTI1
ICBLaXJhbiBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5k
b3cgb2NjbHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZW51
bSBjb25zdGFudHMgdG8gc3BlY2lmeSB3aW5kb3cgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbiB0eXBl
IHRvCisgICAgICAgIG5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24vdW5yZWdpc3RyYXRpb24gbWV0
aG9kcy4gIEFkZCB0eXBlZGVmIGZvcgorICAgICAgICB3aW5kb3cgSUQgZGF0YSBwYXNzZWQgdG8g
dGhlIHdpbmRvdyBvY2NsdXNpb24gbm90aWZpY2F0aW9uIGhhbmRsZXIuCisgICAgICAgIEFkZCBt
ZXRob2QgdG8gZW5hYmxlIG9jY2x1c2lvbiBub3RpZmljYXRpb25zIGZvciBhIHBhcnRpY3VsYXIg
d2luZG93LgorCisgICAgICAgICogV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg6IEFkZAorICAgICAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLAorICAgICAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVPY2NsdWRlZCwKKyAgICAg
ICAgV0tXaW5kb3dJRCwKKyAgICAgICAgV0tFbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRp
b25zKCkuCisKIDIwMTMtMDEtMTAgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4K
IAogICAgICAgICBVcGRhdGUgV2Via2l0U3lzdGVtSW50ZXJmYWNlIGxpYiBmb3IgV2luZG93cyBw
b3J0LgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5o
IGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5oCmluZGV4IGNkY2Q1ZmJk
ZTVjYzFjM2I1ZTMxMDljMWU3MTExYWE3OTNjMzAxZmYuLjllZDM2ZjAxYTNjNDk0MGZlMWE3MjIz
NWI3MzljOGIyMDRjM2MxZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNl
LmgKQEAgLTUyMiwxMyArNTIyLDE4IEBAIENGU3RyaW5nUmVmIFdLQ2FwdGlvbkFwcGVhcmFuY2VH
ZXRTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24odm9pZCk7CiAjaWYgTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogdHlwZWRlZiBlbnVtIHsKICAgICBXS09jY2x1c2lvbk5v
dGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZVZpc2libGUsCi0gICAgV0tPY2NsdXNpb25O
b3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVPY2NsdWRlZAorICAgIFdLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lT2NjbHVkZWQsCisgICAgV0tPY2NsdXNp
b25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwKKyAgICBXS09jY2x1c2lvbk5v
dGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVPY2NsdWRlZAogfSBXS09jY2x1c2lvbk5vdGlmaWNh
dGlvblR5cGU7CiAKLXR5cGVkZWYgdm9pZCAoKldLT2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxl
cikodWludDMyX3QsIHZvaWQqLCB1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90KTsKK3R5cGVkZWYg
dWludDMyX3QgV0tXaW5kb3dJRDsKKwordHlwZWRlZiB2b2lkICgqV0tPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyKSh1aW50MzJfdCwgdm9pZCogZGF0YSwgdWludDMyX3QgZGF0YUxlbmd0aCwg
dm9pZCosIHVpbnQzMl90KTsKIAogYm9vbCBXS1JlZ2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0aW9u
SGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGUsIFdLT2NjbHVzaW9uTm90aWZpY2F0
aW9uSGFuZGxlcik7CiBib29sIFdLVW5yZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRs
ZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlLCBXS09jY2x1c2lvbk5vdGlmaWNhdGlvbkhh
bmRsZXIpOworYm9vbCBXS0VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnMoTlNJbnRl
Z2VyIHdpbmRvd0lELCBib29sICpvdXRDdXJyZW50T2NjbHVzaW9uU3RhdGUpOwogCiBlbnVtIHsK
ICAgICBXS1Byb2Nlc3NBc3NlcnRpb25UeXBlVmlzaWJsZSA9ICgxVUwgPDwgMTApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185057</attachid>
            <date>2013-01-28 14:05:27 -0800</date>
            <delta_ts>2013-01-28 14:56:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130128140214.patch</filename>
            <type>text/plain</type>
            <size>15510</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uNzI3ZGViMDUyOWEwOTkyODQ3OGJkOWU3YzExNjAz
MDRmNjJlZmQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAxLTI4ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgYWxsIHZpZXdzIHZlY3Rvci4KKyAgICAgICAgKC1bV0tW
aWV3IGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzpdKTogUmVnaXN0ZXIgb2JzZXJ2ZXIgZm9y
CisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAgICAg
ICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXSk6IFVucmVnaXN0ZXIgb2JzZXJ2ZXIg
Zm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAg
ICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6XSk6IERpc2FibGUgb2NjbHVzaW9u
IG5vdGlmaWNhdGlvbnMuCisgICAgICAgICgtW1dLVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6
IEVuYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5k
b3dXaWxsT3JkZXJPZmZTY3JlZW46XSk6IERpc2FibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMu
CisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkT3JkZXJPblNjcmVlbjpdKTogRW5hYmxlIG9j
Y2x1c2lvbiBub3RpZmljYXRpb25zLgorICAgICAgICBUaGlzIG5vdGlmaWNhdGlvbiBlbnN1cmVz
IHRoYXQgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgYXJlIHJlZ2lzdGVyZWQKKyAgICAgICAgY29y
cmVjdGx5IGV2ZW4gaWYgdGhlIE5TV2luZG93IG9iamVjdCBpcyBhc3NpZ25lZCBhIHdpbmRvdyBu
dW1iZXIgYWZ0ZXIKKyAgICAgICAgdGhlIHZpZXdEaWRNb3ZlVG9XaW5kb3cgbm90aWZpY2F0aW9u
IGhhcyBiZWVuIHJlY2VpdmVkLiAgVGhpcyBvY2N1cnMKKyAgICAgICAgZm9yIGluc3RhbmNlIGR1
cmluZyBhcHBsaWNhdGlvbiBsYXVuY2guCisgICAgICAgICgtW1dLVmlldyBfc2V0SXNXaW5kb3dP
Y2NsdWRlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9lbmFibGVXaW5kb3dPY2NsdXNpb25Ob3Rp
ZmljYXRpb25zXSk6CisgICAgICAgICgtW1dLVmlldyBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5v
dGlmaWNhdGlvbnNdKToKKyAgICAgICAgKHdpbmRvd0JlY2FtZVZpc2libGUpOgorICAgICAgICAo
d2luZG93QmVjYW1lT2NjbHVkZWQpOgorICAgICAgICAoK1tXS1ZpZXcgX3JlZ2lzdGVyV2luZG93
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF91bnJl
Z2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtb
V0tWaWV3IF9hbGxWaWV3c10pOgorICAgICAgICAoLVtXS1ZpZXcgX2lzV2luZG93T2NjbHVkZWRd
KToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBS
ZWY6cmVsYXRlZFRvUGFnZTpdKTogQWRkCisgICAgICAgIHNlbGYgdG8gdGhlIGFsbCB2aWV3cyB2
ZWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDoKKwog
MjAxMy0wMS0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMTM5NTE2KTogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVj
ZWl2ZWRSZWRpcmVjdCBpcyBub3QgY2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA1NjcwMzE5NzUzODE3NGY3YjQ2
MWQ5ZWM1NDY2ZDBjMGM1NzUwOGNlLi4yYTYyN2EwNmJkNzUzMzgyNTk2YjMwZmRlNWZkMmRiNGEw
OWNlYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQpAQCAtMjAwLDYgKzIwMCw5IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6Omlz
Vmlld1Zpc2libGUoKQogICAgIGlmIChbbV93a1ZpZXcgaXNIaWRkZW5Pckhhc0hpZGRlbkFuY2Vz
dG9yXSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKFttX3drVmlldyBfaXNXaW5k
b3dPY2NsdWRlZF0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNzA4
MmYwNjRmNTJkMmI4ZmYxMjNhZDYxNmUzZjM1NjIwYWNmNjI3OC4uZDVkNWYxMzg0NmQzZDYyOWRl
MWRiNmQxMDFjN2I5N2VjNjIxZjYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtOTMsNiArOTMsOSBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRl
eHRHcm91cEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cEludGVybmFsLmgiCiAK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKK3N0YXRpYyBCT09M
IHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVkID0gTk87CisjZW5kaWYK
IAogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXS05TQXBwbGljYXRpb25EZXRhaWxzKQogLSAo
dm9pZClzcGVha1N0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CkBAIC0xMzUsNiArMTM4LDE0IEBA
IHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIC0gKHZvaWQpX3Nl
dERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemU7CiAtICh2b2lkKV9zZXRQbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGU6KFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSlwbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGU7CiAtIChCT09MKV9zaG91bGRVc2VUaWxlZERyYXdpbmdBcmVhOworLSAo
dm9pZClfc2V0SXNXaW5kb3dPY2NsdWRlZDooQk9PTClpc1dpbmRvd09jY2x1ZGVkOworLSAodm9p
ZClfZW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uczsKKy0gKHZvaWQpX2Rpc2FibGVX
aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAorKyAoQk9PTClfcmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyczsKKysgKEJPT0wpX3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyczsKKyNlbmRpZgorKyAoVmVjdG9yPFdLVmlldyAqPiYpX2FsbFZpZXdzOwog
QGVuZAogCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CkBAIC0yMTEsNiArMjIy
LDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAgICAg
TlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBCT09MIF9leHBhbmRzVG9GaXRDb250
ZW50VmlhQXV0b0xheW91dDsKKyAgICBCT09MIF9pc1dpbmRvd09jY2x1ZGVkOwogfQogCiBAZW5k
CkBAIC0yNjEsNiArMjczLDkgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMgewogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIAorICAgIFZl
Y3RvcjxXS1ZpZXcgKj4mIGFsbFZpZXdzID0gW1dLVmlldyBfYWxsVmlld3NdOworICAgIGFsbFZp
ZXdzLnJlbW92ZShhbGxWaWV3cy5maW5kKHNlbGYpKTsKKwogICAgIFdlYkNvbnRleHQ6OnN0YXRp
c3RpY3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpAQCAtMTgxNyw2
ICsxODMyLDggQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2Nh
bGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZE1vdmVOb3Rp
ZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRv
d0RpZFJlc2l6ZTopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5k
b3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dXaWxsT3JkZXJPZmZTY3JlZW46
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVjdDp3aW5k
b3ddOwogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjop
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRv
d107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46KSAK
QEAgLTE4NDAsNiArMTg1Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9w
ZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6
TlNXaW5kb3dEaWREZW1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpAIk5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2lu
ZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOnNlbGYgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24i
IG9iamVjdDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIg
b2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRp
ZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CkBAIC0xODY1LDEwICsxODgzLDEzIEBAIHN0
YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0g
QCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgCiAgICAgW3NlbGYgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXTsKICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2luZG93XTsKKyAg
ICBbc2VsZiBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNdOwogfQogCiAtICh2
b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIHsKKyAgICBbc2VsZiBfZW5hYmxlV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9uc107CisKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1cGRh
dGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIGlmIHRoZSB2aWV3IGlzIGFib3V0
IHRvIGJlY29tZSB2aXNpYmxlLCB3ZQogICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlIGZp
cnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4gSWYgdGhlIHZpZXcgaXMgYWJvdXQgdG8gYmUg
aGlkZGVuLCB3ZSBoaWRlIGl0IGZpcnN0IGFuZCB0aGVuCiAgICAgLy8gdXBkYXRlIHRoZSBhY3Rp
dmUgc3RhdGUuCkBAIC0xOTYyLDYgKzE5ODMsMTEgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3Qg
YmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wK
ICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107CiB9CiAKKy0gKHZvaWQpX3dp
bmRvd1dpbGxPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sK
KyAgICBbc2VsZiBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNdOworfQorCiAt
ICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KIHsKICAgICBbc2VsZiBfdXBkYXRlV2luZG93VmlzaWJpbGl0eV07CkBAIC0xOTc1LDYg
KzIwMDEsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2Fs
ZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogLSAodm9pZClfd2luZG93RGlkT3Jk
ZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBbc2VsZiBf
dXBkYXRlV2luZG93VmlzaWJpbGl0eV07CisgICAgW3NlbGYgX2VuYWJsZVdpbmRvd09jY2x1c2lv
bk5vdGlmaWNhdGlvbnNdOwogCiAgICAgLy8gV2Ugd2FudCB0byBtYWtlIHN1cmUgdG8gdXBkYXRl
IHRoZSBhY3RpdmUgc3RhdGUgd2hpbGUgaGlkZGVuLCBzbyBzaW5jZSB0aGUgdmlldyBpcyBhYm91
dCB0byBiZWNvbWUgdmlzaWJsZSwKICAgICAvLyB3ZSB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSBm
aXJzdCBhbmQgdGhlbiBtYWtlIGl0IHZpc2libGUuCkBAIC0yMjA4LDYgKzIyMzUsMTI2IEBAIHN0
YXRpYyB2b2lkIGRyYXdQYWdlQmFja2dyb3VuZChDR0NvbnRleHRSZWYgY29udGV4dCwgV2ViUGFn
ZVByb3h5KiBwYWdlLCBjb25zdCBJCiB9CiAjZW5kaWYKIAorLSAodm9pZClfc2V0SXNXaW5kb3dP
Y2NsdWRlZDooQk9PTClpc1dpbmRvd09jY2x1ZGVkCit7CisgICAgaWYgKF9kYXRhLT5faXNXaW5k
b3dPY2NsdWRlZCA9PSBpc1dpbmRvd09jY2x1ZGVkKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgX2RhdGEtPl9pc1dpbmRvd09jY2x1ZGVkID0gaXNXaW5kb3dPY2NsdWRlZDsKKyAgICBfZGF0
YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUp
OworfQorCistICh2b2lkKV9lbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zCit7Cisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgTlNXaW5kb3cg
KndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVy
bjsKKworICAgIE5TSW50ZWdlciB3aW5kb3dJRCA9IFt3aW5kb3cgd2luZG93TnVtYmVyXTsKKyAg
ICBpZiAod2luZG93SUQgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFbV0tWaWV3
IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzXSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYm9vbCBpc1dpbmRvd09jY2x1ZGVkID0gZmFsc2U7CisgICAgaWYgKCFX
S0VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnMod2luZG93SUQsICZpc1dpbmRvd09j
Y2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIkVuYWJsaW5nIHdpbmRvdyBvY2NsdXNp
b24gbm90aWZpY2F0aW9ucyBmb3Igd2luZG93ICVsZCBmYWlsZWQuXG4iLCB3aW5kb3dJRCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaXNXaW5kb3dPY2NsdWRlZCkKKyAgICAg
ICAgW3NlbGYgX3NldElzV2luZG93T2NjbHVkZWQ6WUVTXTsKKyNlbmRpZgorfQorCistICh2b2lk
KV9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9ucworeworI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorICAgIFtzZWxmIF9zZXRJc1dpbmRvd09jY2x1
ZGVkOk5PXTsKKworICAgIC8vIE9jY2x1c2lvbnQgbm90aWZpY2F0aW9ucyBmb3IgYSBnaXZlbiB3
aW5kb3cgbWlnaHQgYWxzbyBiZSB1c2VkIGVsc2Ugd2hlcmUgaW4gdGhlCisgICAgLy8gYXBwbGlj
YXRpb24sIGhlbmNlIHVucmVnaXN0ZXIgbm90aWZpY2F0aW9uIGhhbmRsZXJzIGluc3RlYWQuCisg
ICAgVmVjdG9yPFdLVmlldyAqPiYgYWxsVmlld3MgPSBbV0tWaWV3IF9hbGxWaWV3c107CisgICAg
aWYgKChhbGxWaWV3cy5zaXplKCkgPT0gMSkgJiYgKGFsbFZpZXdzWzBdID09IHNlbGYpKQorICAg
ICAgICBbV0tWaWV3IF91bnJlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxl
cnNdOworI2VuZGlmCit9CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwOTAKKworc3RhdGljIHZvaWQgd2luZG93QmVjYW1lVmlzaWJsZSh1aW50MzJfdCwgdm9pZCog
ZGF0YSwgdWludDMyX3QgZGF0YUxlbmd0aCwgdm9pZCosIHVpbnQzMl90KQoreworICAgIEFTU0VS
VChkYXRhTGVuZ3RoID09IHNpemVvZihXS1dpbmRvd0lEKSk7CisgICAgTlNJbnRlZ2VyIHdpbmRv
d0lEID0gKihXS1dpbmRvd0lEICopZGF0YTsKKworICAgIFZlY3RvcjxXS1ZpZXcgKj4mIGFsbFZp
ZXdzID0gW1dLVmlldyBfYWxsVmlld3NdOworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0g
YWxsVmlld3Muc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIFdLVmlldyAqdmlldyA9
IGFsbFZpZXdzW2ldOworICAgICAgICBpZiAoW1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSA9
PSB3aW5kb3dJRCkKKyAgICAgICAgICAgIFt2aWV3IF9zZXRJc1dpbmRvd09jY2x1ZGVkOk5PXTsK
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHdpbmRvd0JlY2FtZU9jY2x1ZGVkKHVpbnQzMl90LCB2
b2lkKiBkYXRhLCB1aW50MzJfdCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpCit7CisgICAg
QVNTRVJUKGRhdGFMZW5ndGggPT0gc2l6ZW9mKFdLV2luZG93SUQpKTsKKyAgICBOU0ludGVnZXIg
d2luZG93SUQgPSAqKFdLV2luZG93SUQgKilkYXRhOworCisgICAgVmVjdG9yPFdLVmlldyAqPiYg
YWxsVmlld3MgPSBbV0tWaWV3IF9hbGxWaWV3c107CisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNp
emUgPSBhbGxWaWV3cy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgV0tWaWV3ICp2
aWV3ID0gYWxsVmlld3NbaV07CisgICAgICAgIGlmIChbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1i
ZXJdID09IHdpbmRvd0lEKQorICAgICAgICAgICAgW3ZpZXcgX3NldElzV2luZG93T2NjbHVkZWQ6
WUVTXTsKKyAgICB9Cit9CisKKysgKEJPT0wpX3JlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9uSGFuZGxlcnMKK3sKKyAgICBpZiAod2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0Fy
ZVJlZ2lzdGVyZWQpCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoIVdLUmVnaXN0ZXJP
Y2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdp
bmRvd0JlY2FtZVZpc2libGUsIHdpbmRvd0JlY2FtZVZpc2libGUpKSB7CisgICAgICAgIFdURkxv
Z0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgVmlzaWJsZVwiIG5vdGlm
aWNhdGlvbiBoYW5kbGVyIGZhaWxlZC5cbiIpOworICAgICAgICByZXR1cm4gTk87CisgICAgfQor
ICAgIAorICAgIGlmICghV0tSZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tP
Y2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2NjbHVkZWQsIHdpbmRvd0JlY2Ft
ZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlJlZ2lzdGVyYXRpb24gb2YgXCJX
aW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7
CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9CisKKyAgICB3aW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25zQXJlUmVnaXN0ZXJlZCA9IFlFUzsKKyAgICByZXR1cm4gWUVTOworfQorCisrIChCT09M
KV91bnJlZ2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnMKK3sKKyAgICBp
ZiAoIXdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVkKQorICAgICAgICBy
ZXR1cm4gWUVTOworCisgICAgaWYgKCFXS1VucmVnaXN0ZXJPY2NsdXNpb25Ob3RpZmljYXRpb25I
YW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkLCB3
aW5kb3dCZWNhbWVPY2NsdWRlZCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lzdGVy
YXRpb24gb2YgXCJXaW5kb3cgQmVjYW1lIE9jY2x1ZGVkXCIgbm90aWZpY2F0aW9uIGhhbmRsZXIg
ZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9CisKKyAgICBpZiAoIVdLVW5y
ZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRp
b25UeXBlV2luZG93QmVjYW1lVmlzaWJsZSwgd2luZG93QmVjYW1lVmlzaWJsZSkpIHsKKyAgICAg
ICAgV1RGTG9nQWx3YXlzKCJVbnJlZ2lzdGVyYXRpb24gb2YgXCJXaW5kb3cgQmVjYW1lIFZpc2li
bGVcIiBub3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsKKyAgICAgICAgcmV0dXJuIE5P
OworICAgIH0KKworICAgIHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVk
ID0gTk87CisgICAgcmV0dXJuIFlFUzsKK30KKyNlbmRpZgorCisrIChWZWN0b3I8V0tWaWV3ICo+
JilfYWxsVmlld3MKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxXS1ZpZXcgKj4s
IHZlY3RvciwgKCkpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdLVmlldyAoSW50ZXJuYWwpCkBAIC0yODk3LDYgKzMwNDQsMTEgQEAgc3RhdGljIE5T
U3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAg
ICByZXR1cm4gX2RhdGEtPl9wYWdlLT5zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKCk7CiB9CiAK
Ky0gKEJPT0wpX2lzV2luZG93T2NjbHVkZWQKK3sKKyAgICByZXR1cm4gX2RhdGEtPl9pc1dpbmRv
d09jY2x1ZGVkOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXcgKFByaXZhdGUp
CkBAIC0yOTYzLDYgKzMxMTUsOCBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmls
ZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgICAgICBzZWxmLmxheWVyQ29udGVudHNQ
bGFjZW1lbnQgPSBOU1ZpZXdMYXllckNvbnRlbnRzUGxhY2VtZW50VG9wTGVmdDsKICAgICB9CiAK
KyAgICBbV0tWaWV3IF9hbGxWaWV3c10uYXBwZW5kKHNlbGYpOworCiAgICAgV2ViQ29udGV4dDo6
c3RhdGlzdGljcygpLndrVmlld0NvdW50Kys7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4IDIz
NTAwYWM2YWY3MzJhMjE3MDIwNmYyZThmMjI2M2RjMWQ5YzJlZTUuLjMzZjdiZDczYTU2ZDA1OTQ4
ODE3NzlhMjQwZTQ4Yzc2YmI2MzNiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtMTAxLDQgKzEwMSw2IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogLSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9PTClz
dXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwogLSAoQk9PTClfc3VwcHJlc3NWaXNpYmlsaXR5VXBk
YXRlczsKIAorLSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZDsKKwogQGVuZApkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5k
ZXggMzc2ZmQxZThhY2VmZGZlZjg1ZjdkNzBjN2E0YmE5ZDhmYTY0N2ZiYy4uOWQ4NDg1MzcwYTBl
Yzk2YmFjZWY5NWJjOTYwNjlhZjUzYTE3NDZmMiAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTMtMDEtMjggIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHdpbmRvdyBvY2NsdXNpb24gY3JpdGVyaWEgdG8gZGV0ZXJtaW5lIHBhZ2Ugdmlz
aWJpbGl0eSBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBlbnVtIGNvbnN0YW50cyB0byBzcGVjaWZ5IHdpbmRvdyBvY2NsdXNpb24gbm90
aWZpY2F0aW9uIHR5cGUgdG8KKyAgICAgICAgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi91bnJl
Z2lzdHJhdGlvbiBtZXRob2RzLiAgQWRkIHR5cGVkZWYgZm9yCisgICAgICAgIHdpbmRvdyBJRCBk
YXRhIHBhc3NlZCB0byB0aGUgd2luZG93IG9jY2x1c2lvbiBub3RpZmljYXRpb24gaGFuZGxlci4K
KyAgICAgICAgQWRkIG1ldGhvZCB0byBlbmFibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgZm9y
IGEgcGFydGljdWxhciB3aW5kb3cuCisKKyAgICAgICAgKiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aDogQWRkCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZp
c2libGUsCisgICAgICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9j
Y2x1ZGVkLAorICAgICAgICBXS1dpbmRvd0lELAorICAgICAgICBXS0VuYWJsZVdpbmRvd09jY2x1
c2lvbk5vdGlmaWNhdGlvbnMoKS4KKwogMjAxMy0wMS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2Zv
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJraXRTeXN0ZW1JbnRlcmZhY2UgbGli
IGZvciBXaW5kb3dzIHBvcnQuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmggYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgK
aW5kZXggY2RjZDVmYmRlNWNjMWMzYjVlMzEwOWMxZTcxMTFhYTc5M2MzMDFmZi4uOWVkMzZmMDFh
M2M0OTQwZmUxYTcyMjM1YjczOWM4YjIwNGMzYzFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFN5c3RlbUludGVyZmFjZS5oCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaApAQCAtNTIyLDEzICs1MjIsMTggQEAgQ0ZTdHJpbmdSZWYgV0tDYXB0
aW9uQXBwZWFyYW5jZUdldFNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbih2b2lkKTsKICNpZiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiB0eXBlZGVmIGVudW0gewogICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lVmlzaWJsZSwKLSAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkCisg
ICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVPY2NsdWRlZCwK
KyAgICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLAorICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZU9jY2x1ZGVkCiB9IFdLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uVHlwZTsKIAotdHlwZWRlZiB2b2lkICgqV0tPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyKSh1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90LCB2b2lkKiwgdWludDMy
X3QpOwordHlwZWRlZiB1aW50MzJfdCBXS1dpbmRvd0lEOworCit0eXBlZGVmIHZvaWQgKCpXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiBkYXRhLCB1aW50MzJf
dCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpOwogCiBib29sIFdLUmVnaXN0ZXJPY2NsdXNp
b25Ob3RpZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25IYW5kbGVyKTsKIGJvb2wgV0tVbnJlZ2lzdGVyT2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGUsIFdLT2NjbHVzaW9u
Tm90aWZpY2F0aW9uSGFuZGxlcik7Citib29sIFdLRW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZp
Y2F0aW9ucyhOU0ludGVnZXIgd2luZG93SUQsIGJvb2wgKm91dEN1cnJlbnRPY2NsdXNpb25TdGF0
ZSk7CiAKIGVudW0gewogICAgIFdLUHJvY2Vzc0Fzc2VydGlvblR5cGVWaXNpYmxlID0gKDFVTCA8
PCAxMCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185074</attachid>
            <date>2013-01-28 14:56:49 -0800</date>
            <delta_ts>2013-01-28 21:12:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107494-20130128145336.patch</filename>
            <type>text/plain</type>
            <size>15509</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI2MWU2NTdkNjc5YzAz
MGExYTRiZjMxZTJhYWVkNzNjNzI1YjQ4ZS4uNzI3ZGViMDUyOWEwOTkyODQ3OGJkOWU3YzExNjAz
MDRmNjJlZmQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAxLTI4ICBLaXJh
biBNdXBwYWxhICA8Y211cHBhbGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB3aW5kb3cgb2Nj
bHVzaW9uIGNyaXRlcmlhIHRvIGRldGVybWluZSBwYWdlIHZpc2liaWxpdHkgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSk6IEFkZCB3aW5kb3cgb2NjbHVzaW9uIGNoZWNrLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlYWxsb2Nd
KTogUmVtb3ZlIHNlbGYgZnJvbSB0aGUgYWxsIHZpZXdzIHZlY3Rvci4KKyAgICAgICAgKC1bV0tW
aWV3IGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzpdKTogUmVnaXN0ZXIgb2JzZXJ2ZXIgZm9y
CisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAgICAg
ICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXSk6IFVucmVnaXN0ZXIgb2JzZXJ2ZXIg
Zm9yCisgICAgICAgIE5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uLgorICAg
ICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6XSk6IERpc2FibGUgb2NjbHVzaW9u
IG5vdGlmaWNhdGlvbnMuCisgICAgICAgICgtW1dLVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6
IEVuYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5k
b3dXaWxsT3JkZXJPZmZTY3JlZW46XSk6IERpc2FibGUgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMu
CisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkT3JkZXJPblNjcmVlbjpdKTogRW5hYmxlIG9j
Y2x1c2lvbiBub3RpZmljYXRpb25zLgorICAgICAgICBUaGlzIG5vdGlmaWNhdGlvbiBlbnN1cmVz
IHRoYXQgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbnMgYXJlIHJlZ2lzdGVyZWQKKyAgICAgICAgY29y
cmVjdGx5IGV2ZW4gaWYgdGhlIE5TV2luZG93IG9iamVjdCBpcyBhc3NpZ25lZCBhIHdpbmRvdyBu
dW1iZXIgYWZ0ZXIKKyAgICAgICAgdGhlIHZpZXdEaWRNb3ZlVG9XaW5kb3cgbm90aWZpY2F0aW9u
IGhhcyBiZWVuIHJlY2VpdmVkLiAgVGhpcyBvY2N1cnMKKyAgICAgICAgZm9yIGluc3RhbmNlIGR1
cmluZyBhcHBsaWNhdGlvbiBsYXVuY2guCisgICAgICAgICgtW1dLVmlldyBfc2V0SXNXaW5kb3dP
Y2NsdWRlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9lbmFibGVXaW5kb3dPY2NsdXNpb25Ob3Rp
ZmljYXRpb25zXSk6CisgICAgICAgICgtW1dLVmlldyBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5v
dGlmaWNhdGlvbnNdKToKKyAgICAgICAgKHdpbmRvd0JlY2FtZVZpc2libGUpOgorICAgICAgICAo
d2luZG93QmVjYW1lT2NjbHVkZWQpOgorICAgICAgICAoK1tXS1ZpZXcgX3JlZ2lzdGVyV2luZG93
T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtbV0tWaWV3IF91bnJl
Z2lzdGVyV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNdKToKKyAgICAgICAgKCtb
V0tWaWV3IF9hbGxWaWV3c10pOgorICAgICAgICAoLVtXS1ZpZXcgX2lzV2luZG93T2NjbHVkZWRd
KToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBS
ZWY6cmVsYXRlZFRvUGFnZTpdKTogQWRkCisgICAgICAgIHNlbGYgdG8gdGhlIGFsbCB2aWV3cyB2
ZWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDoKKwog
MjAxMy0wMS0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMTM5NTE2KTogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVj
ZWl2ZWRSZWRpcmVjdCBpcyBub3QgY2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA1NjcwMzE5NzUzODE3NGY3YjQ2
MWQ5ZWM1NDY2ZDBjMGM1NzUwOGNlLi4yYTYyN2EwNmJkNzUzMzgyNTk2YjMwZmRlNWZkMmRiNGEw
OWNlYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQpAQCAtMjAwLDYgKzIwMCw5IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6Omlz
Vmlld1Zpc2libGUoKQogICAgIGlmIChbbV93a1ZpZXcgaXNIaWRkZW5Pckhhc0hpZGRlbkFuY2Vz
dG9yXSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKFttX3drVmlldyBfaXNXaW5k
b3dPY2NsdWRlZF0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNzA4
MmYwNjRmNTJkMmI4ZmYxMjNhZDYxNmUzZjM1NjIwYWNmNjI3OC4uNDJkMmNjMjA2M2VmNWM2MTk2
N2IzNjgyMzVmNGQ5OTYwZmZiNTA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtOTMsNiArOTMsOSBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRl
eHRHcm91cEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cEludGVybmFsLmgiCiAK
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKK3N0YXRpYyBCT09M
IHdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNBcmVSZWdpc3RlcmVkID0gTk87CisjZW5kaWYK
IAogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChXS05TQXBwbGljYXRpb25EZXRhaWxzKQogLSAo
dm9pZClzcGVha1N0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CkBAIC0xMzUsNiArMTM4LDE0IEBA
IHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIC0gKHZvaWQpX3Nl
dERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemU7CiAtICh2b2lkKV9zZXRQbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGU6KFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSlwbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGU7CiAtIChCT09MKV9zaG91bGRVc2VUaWxlZERyYXdpbmdBcmVhOworLSAo
dm9pZClfc2V0SXNXaW5kb3dPY2NsdWRlZDooQk9PTClpc1dpbmRvd09jY2x1ZGVkOworLSAodm9p
ZClfZW5hYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uczsKKy0gKHZvaWQpX2Rpc2FibGVX
aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAorKyAoQk9PTClfcmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyczsKKysgKEJPT0wpX3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVyczsKKyNlbmRpZgorKyAoVmVjdG9yPFdLVmlldyAqPiYpX2FsbFZpZXdzOwog
QGVuZAogCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CkBAIC0yMTEsNiArMjIy
LDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAgICAg
TlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBCT09MIF9leHBhbmRzVG9GaXRDb250
ZW50VmlhQXV0b0xheW91dDsKKyAgICBCT09MIF9pc1dpbmRvd09jY2x1ZGVkOwogfQogCiBAZW5k
CkBAIC0yNjEsNiArMjczLDkgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMgewogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIAorICAgIFZl
Y3RvcjxXS1ZpZXcgKj4mIGFsbFZpZXdzID0gW1dLVmlldyBfYWxsVmlld3NdOworICAgIGFsbFZp
ZXdzLnJlbW92ZShhbGxWaWV3cy5maW5kKHNlbGYpKTsKKwogICAgIFdlYkNvbnRleHQ6OnN0YXRp
c3RpY3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpAQCAtMTgxNyw2
ICsxODMyLDggQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2Nh
bGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZE1vdmVOb3Rp
ZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRv
d0RpZFJlc2l6ZTopIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5k
b3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dXaWxsT3JkZXJPZmZTY3JlZW46
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOkAiTlNXaW5kb3dXaWxsT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVjdDp3aW5k
b3ddOwogICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjop
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRv
d107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46KSAK
QEAgLTE4NDAsNiArMTg1Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9w
ZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6
TlNXaW5kb3dEaWREZW1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpAIk5TV2luZG93V2lsbE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2lu
ZG93XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOnNlbGYgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24i
IG9iamVjdDp3aW5kb3ddOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIg
b2JqZWN0OndpbmRvd107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRp
ZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CkBAIC0xODY1LDEwICsxODgzLDEzIEBAIHN0
YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0g
QCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgCiAgICAgW3NlbGYgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXTsKICAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2luZG93XTsKKyAg
ICBbc2VsZiBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNdOwogfQogCiAtICh2
b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIHsKKyAgICBbc2VsZiBfZW5hYmxlV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9uc107CisKICAgICAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1cGRh
dGUgdGhlIGFjdGl2ZSBzdGF0ZSB3aGlsZSBoaWRkZW4sIHNvIGlmIHRoZSB2aWV3IGlzIGFib3V0
IHRvIGJlY29tZSB2aXNpYmxlLCB3ZQogICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlIGZp
cnN0IGFuZCB0aGVuIG1ha2UgaXQgdmlzaWJsZS4gSWYgdGhlIHZpZXcgaXMgYWJvdXQgdG8gYmUg
aGlkZGVuLCB3ZSBoaWRlIGl0IGZpcnN0IGFuZCB0aGVuCiAgICAgLy8gdXBkYXRlIHRoZSBhY3Rp
dmUgc3RhdGUuCkBAIC0xOTYyLDYgKzE5ODMsMTEgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3Qg
YmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wK
ICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107CiB9CiAKKy0gKHZvaWQpX3dp
bmRvd1dpbGxPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sK
KyAgICBbc2VsZiBfZGlzYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnNdOworfQorCiAt
ICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KIHsKICAgICBbc2VsZiBfdXBkYXRlV2luZG93VmlzaWJpbGl0eV07CkBAIC0xOTc1LDYg
KzIwMDEsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2Fs
ZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogLSAodm9pZClfd2luZG93RGlkT3Jk
ZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBbc2VsZiBf
dXBkYXRlV2luZG93VmlzaWJpbGl0eV07CisgICAgW3NlbGYgX2VuYWJsZVdpbmRvd09jY2x1c2lv
bk5vdGlmaWNhdGlvbnNdOwogCiAgICAgLy8gV2Ugd2FudCB0byBtYWtlIHN1cmUgdG8gdXBkYXRl
IHRoZSBhY3RpdmUgc3RhdGUgd2hpbGUgaGlkZGVuLCBzbyBzaW5jZSB0aGUgdmlldyBpcyBhYm91
dCB0byBiZWNvbWUgdmlzaWJsZSwKICAgICAvLyB3ZSB1cGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSBm
aXJzdCBhbmQgdGhlbiBtYWtlIGl0IHZpc2libGUuCkBAIC0yMjA4LDYgKzIyMzUsMTI2IEBAIHN0
YXRpYyB2b2lkIGRyYXdQYWdlQmFja2dyb3VuZChDR0NvbnRleHRSZWYgY29udGV4dCwgV2ViUGFn
ZVByb3h5KiBwYWdlLCBjb25zdCBJCiB9CiAjZW5kaWYKIAorLSAodm9pZClfc2V0SXNXaW5kb3dP
Y2NsdWRlZDooQk9PTClpc1dpbmRvd09jY2x1ZGVkCit7CisgICAgaWYgKF9kYXRhLT5faXNXaW5k
b3dPY2NsdWRlZCA9PSBpc1dpbmRvd09jY2x1ZGVkKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgX2RhdGEtPl9pc1dpbmRvd09jY2x1ZGVkID0gaXNXaW5kb3dPY2NsdWRlZDsKKyAgICBfZGF0
YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUp
OworfQorCistICh2b2lkKV9lbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zCit7Cisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgTlNXaW5kb3cg
KndpbmRvdyA9IFtzZWxmIHdpbmRvd107CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVy
bjsKKworICAgIE5TSW50ZWdlciB3aW5kb3dJRCA9IFt3aW5kb3cgd2luZG93TnVtYmVyXTsKKyAg
ICBpZiAod2luZG93SUQgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFbV0tWaWV3
IF9yZWdpc3RlcldpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzXSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYm9vbCBpc1dpbmRvd09jY2x1ZGVkID0gZmFsc2U7CisgICAgaWYgKCFX
S0VuYWJsZVdpbmRvd09jY2x1c2lvbk5vdGlmaWNhdGlvbnMod2luZG93SUQsICZpc1dpbmRvd09j
Y2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIkVuYWJsaW5nIHdpbmRvdyBvY2NsdXNp
b24gbm90aWZpY2F0aW9ucyBmb3Igd2luZG93ICVsZCBmYWlsZWQuXG4iLCB3aW5kb3dJRCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaXNXaW5kb3dPY2NsdWRlZCkKKyAgICAg
ICAgW3NlbGYgX3NldElzV2luZG93T2NjbHVkZWQ6WUVTXTsKKyNlbmRpZgorfQorCistICh2b2lk
KV9kaXNhYmxlV2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9ucworeworI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorICAgIFtzZWxmIF9zZXRJc1dpbmRvd09jY2x1
ZGVkOk5PXTsKKworICAgIC8vIE9jY2x1c2lvbiBub3RpZmljYXRpb25zIGZvciBhIGdpdmVuIHdp
bmRvdyBtaWdodCBhbHNvIGJlIHVzZWQgZWxzZSB3aGVyZSBpbiB0aGUKKyAgICAvLyBhcHBsaWNh
dGlvbiwgaGVuY2UgdW5yZWdpc3RlciBub3RpZmljYXRpb24gaGFuZGxlcnMgaW5zdGVhZC4KKyAg
ICBWZWN0b3I8V0tWaWV3ICo+JiBhbGxWaWV3cyA9IFtXS1ZpZXcgX2FsbFZpZXdzXTsKKyAgICBp
ZiAoKGFsbFZpZXdzLnNpemUoKSA9PSAxKSAmJiAoYWxsVmlld3NbMF0gPT0gc2VsZikpCisgICAg
ICAgIFtXS1ZpZXcgX3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVy
c107CisjZW5kaWYKK30KKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA5MAorCitzdGF0aWMgdm9pZCB3aW5kb3dCZWNhbWVWaXNpYmxlKHVpbnQzMl90LCB2b2lkKiBk
YXRhLCB1aW50MzJfdCBkYXRhTGVuZ3RoLCB2b2lkKiwgdWludDMyX3QpCit7CisgICAgQVNTRVJU
KGRhdGFMZW5ndGggPT0gc2l6ZW9mKFdLV2luZG93SUQpKTsKKyAgICBOU0ludGVnZXIgd2luZG93
SUQgPSAqKFdLV2luZG93SUQgKilkYXRhOworCisgICAgVmVjdG9yPFdLVmlldyAqPiYgYWxsVmll
d3MgPSBbV0tWaWV3IF9hbGxWaWV3c107CisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBh
bGxWaWV3cy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgV0tWaWV3ICp2aWV3ID0g
YWxsVmlld3NbaV07CisgICAgICAgIGlmIChbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdID09
IHdpbmRvd0lEKQorICAgICAgICAgICAgW3ZpZXcgX3NldElzV2luZG93T2NjbHVkZWQ6Tk9dOwor
ICAgIH0KK30KKworc3RhdGljIHZvaWQgd2luZG93QmVjYW1lT2NjbHVkZWQodWludDMyX3QsIHZv
aWQqIGRhdGEsIHVpbnQzMl90IGRhdGFMZW5ndGgsIHZvaWQqLCB1aW50MzJfdCkKK3sKKyAgICBB
U1NFUlQoZGF0YUxlbmd0aCA9PSBzaXplb2YoV0tXaW5kb3dJRCkpOworICAgIE5TSW50ZWdlciB3
aW5kb3dJRCA9ICooV0tXaW5kb3dJRCAqKWRhdGE7CisKKyAgICBWZWN0b3I8V0tWaWV3ICo+JiBh
bGxWaWV3cyA9IFtXS1ZpZXcgX2FsbFZpZXdzXTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6
ZSA9IGFsbFZpZXdzLnNpemUoKTsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBXS1ZpZXcgKnZp
ZXcgPSBhbGxWaWV3c1tpXTsKKyAgICAgICAgaWYgKFtbdmlldyB3aW5kb3ddIHdpbmRvd051bWJl
cl0gPT0gd2luZG93SUQpCisgICAgICAgICAgICBbdmlldyBfc2V0SXNXaW5kb3dPY2NsdWRlZDpZ
RVNdOworICAgIH0KK30KKworKyAoQk9PTClfcmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25IYW5kbGVycworeworICAgIGlmICh3aW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25zQXJl
UmVnaXN0ZXJlZCkKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIGlmICghV0tSZWdpc3Rlck9j
Y2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2lu
ZG93QmVjYW1lVmlzaWJsZSwgd2luZG93QmVjYW1lVmlzaWJsZSkpIHsKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCJSZWdpc3RlcmF0aW9uIG9mIFwiV2luZG93IEJlY2FtZSBWaXNpYmxlXCIgbm90aWZp
Y2F0aW9uIGhhbmRsZXIgZmFpbGVkLlxuIik7CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9Cisg
ICAgCisgICAgaWYgKCFXS1JlZ2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcihXS09j
Y2x1c2lvbk5vdGlmaWNhdGlvblR5cGVXaW5kb3dCZWNhbWVPY2NsdWRlZCwgd2luZG93QmVjYW1l
T2NjbHVkZWQpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVnaXN0ZXJhdGlvbiBvZiBcIldp
bmRvdyBCZWNhbWUgT2NjbHVkZWRcIiBub3RpZmljYXRpb24gaGFuZGxlciBmYWlsZWQuXG4iKTsK
KyAgICAgICAgcmV0dXJuIE5POworICAgIH0KKworICAgIHdpbmRvd09jY2x1c2lvbk5vdGlmaWNh
dGlvbnNBcmVSZWdpc3RlcmVkID0gWUVTOworICAgIHJldHVybiBZRVM7Cit9CisKKysgKEJPT0wp
X3VucmVnaXN0ZXJXaW5kb3dPY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycworeworICAgIGlm
ICghd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQpCisgICAgICAgIHJl
dHVybiBZRVM7CisKKyAgICBpZiAoIVdLVW5yZWdpc3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhh
bmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2NjbHVkZWQsIHdp
bmRvd0JlY2FtZU9jY2x1ZGVkKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlVucmVnaXN0ZXJh
dGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgT2NjbHVkZWRcIiBub3RpZmljYXRpb24gaGFuZGxlciBm
YWlsZWQuXG4iKTsKKyAgICAgICAgcmV0dXJuIE5POworICAgIH0KKworICAgIGlmICghV0tVbnJl
Z2lzdGVyT2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcihXS09jY2x1c2lvbk5vdGlmaWNhdGlv
blR5cGVXaW5kb3dCZWNhbWVWaXNpYmxlLCB3aW5kb3dCZWNhbWVWaXNpYmxlKSkgeworICAgICAg
ICBXVEZMb2dBbHdheXMoIlVucmVnaXN0ZXJhdGlvbiBvZiBcIldpbmRvdyBCZWNhbWUgVmlzaWJs
ZVwiIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGZhaWxlZC5cbiIpOworICAgICAgICByZXR1cm4gTk87
CisgICAgfQorCisgICAgd2luZG93T2NjbHVzaW9uTm90aWZpY2F0aW9uc0FyZVJlZ2lzdGVyZWQg
PSBOTzsKKyAgICByZXR1cm4gWUVTOworfQorI2VuZGlmCisKKysgKFZlY3RvcjxXS1ZpZXcgKj4m
KV9hbGxWaWV3cworeworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFdLVmlldyAqPiwg
dmVjdG9yLCAoKSk7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV0tWaWV3IChJbnRlcm5hbCkKQEAgLTI4OTcsNiArMzA0NCwxMSBAQCBzdGF0aWMgTlNT
dHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAg
IHJldHVybiBfZGF0YS0+X3BhZ2UtPnN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoKTsKIH0KIAor
LSAoQk9PTClfaXNXaW5kb3dPY2NsdWRlZAoreworICAgIHJldHVybiBfZGF0YS0+X2lzV2luZG93
T2NjbHVkZWQ7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlldyAoUHJpdmF0ZSkK
QEAgLTI5NjMsNiArMzExNSw4IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxl
bmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgICAgIHNlbGYubGF5ZXJDb250ZW50c1Bs
YWNlbWVudCA9IE5TVmlld0xheWVyQ29udGVudHNQbGFjZW1lbnRUb3BMZWZ0OwogICAgIH0KIAor
ICAgIFtXS1ZpZXcgX2FsbFZpZXdzXS5hcHBlbmQoc2VsZik7CisKICAgICBXZWJDb250ZXh0Ojpz
dGF0aXN0aWNzKCkud2tWaWV3Q291bnQrKzsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggMjM1
MDBhYzZhZjczMmEyMTcwMjA2ZjJlOGYyMjYzZGMxZDljMmVlNS4uMzNmN2JkNzNhNTZkMDU5NDg4
MTc3OWEyNDBlNDhjNzZiYjYzM2I0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC0xMDEsNCArMTAxLDYgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAtICh2b2lkKV9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOihCT09MKXN1
cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM7CiAtIChCT09MKV9zdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzOwogCistIChCT09MKV9pc1dpbmRvd09jY2x1ZGVkOworCiBAZW5kCmRpZmYgLS1naXQgYS9X
ZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRl
eCAzNzZmZDFlOGFjZWZkZmVmODVmN2Q3MGM3YTRiYTlkOGZhNjQ3ZmJjLi45ZDg0ODUzNzBhMGVj
OTZiYWNlZjk1YmM5NjA2OWFmNTNhMTc0NmYyIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMy0wMS0yOCAgS2lyYW4gTXVwcGFsYSAgPGNtdXBwYWxhQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgd2luZG93IG9jY2x1c2lvbiBjcml0ZXJpYSB0byBkZXRlcm1pbmUgcGFnZSB2aXNp
YmlsaXR5IG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGVudW0gY29uc3RhbnRzIHRvIHNwZWNpZnkgd2luZG93IG9jY2x1c2lvbiBub3Rp
ZmljYXRpb24gdHlwZSB0bworICAgICAgICBub3RpZmljYXRpb24gcmVnaXN0cmF0aW9uL3VucmVn
aXN0cmF0aW9uIG1ldGhvZHMuICBBZGQgdHlwZWRlZiBmb3IKKyAgICAgICAgd2luZG93IElEIGRh
dGEgcGFzc2VkIHRvIHRoZSB3aW5kb3cgb2NjbHVzaW9uIG5vdGlmaWNhdGlvbiBoYW5kbGVyLgor
ICAgICAgICBBZGQgbWV0aG9kIHRvIGVuYWJsZSBvY2NsdXNpb24gbm90aWZpY2F0aW9ucyBmb3Ig
YSBwYXJ0aWN1bGFyIHdpbmRvdy4KKworICAgICAgICAqIFdlYktpdFN5c3RlbUludGVyZmFjZS5o
OiBBZGQKKyAgICAgICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lVmlz
aWJsZSwKKyAgICAgICAgV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2Nj
bHVkZWQsCisgICAgICAgIFdLV2luZG93SUQsCisgICAgICAgIFdLRW5hYmxlV2luZG93T2NjbHVz
aW9uTm90aWZpY2F0aW9ucygpLgorCiAyMDEzLTAxLTEwICBSb2dlciBGb25nICA8cm9nZXJfZm9u
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdlYmtpdFN5c3RlbUludGVyZmFjZSBsaWIg
Zm9yIFdpbmRvd3MgcG9ydC4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaApp
bmRleCBjZGNkNWZiZGU1Y2MxYzNiNWUzMTA5YzFlNzExMWFhNzkzYzMwMWZmLi45ZWQzNmYwMWEz
YzQ5NDBmZTFhNzIyMzViNzM5YzhiMjA0YzNjMWVjIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFN5
c3RlbUludGVyZmFjZS5oCkBAIC01MjIsMTMgKzUyMiwxOCBAQCBDRlN0cmluZ1JlZiBXS0NhcHRp
b25BcHBlYXJhbmNlR2V0U2V0dGluZ3NDaGFuZ2VkTm90aWZpY2F0aW9uKHZvaWQpOwogI2lmIE1B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKIHR5cGVkZWYgZW51bSB7CiAgICAg
V0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlQXBwbGljYXRpb25CZWNhbWVWaXNpYmxlLAotICAg
IFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZUFwcGxpY2F0aW9uQmVjYW1lT2NjbHVkZWQKKyAg
ICBXS09jY2x1c2lvbk5vdGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbkJlY2FtZU9jY2x1ZGVkLAor
ICAgIFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZVdpbmRvd0JlY2FtZVZpc2libGUsCisgICAg
V0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlV2luZG93QmVjYW1lT2NjbHVkZWQKIH0gV0tPY2Ns
dXNpb25Ob3RpZmljYXRpb25UeXBlOwogCi10eXBlZGVmIHZvaWQgKCpXS09jY2x1c2lvbk5vdGlm
aWNhdGlvbkhhbmRsZXIpKHVpbnQzMl90LCB2b2lkKiwgdWludDMyX3QsIHZvaWQqLCB1aW50MzJf
dCk7Cit0eXBlZGVmIHVpbnQzMl90IFdLV2luZG93SUQ7CisKK3R5cGVkZWYgdm9pZCAoKldLT2Nj
bHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcikodWludDMyX3QsIHZvaWQqIGRhdGEsIHVpbnQzMl90
IGRhdGFMZW5ndGgsIHZvaWQqLCB1aW50MzJfdCk7CiAKIGJvb2wgV0tSZWdpc3Rlck9jY2x1c2lv
bk5vdGlmaWNhdGlvbkhhbmRsZXIoV0tPY2NsdXNpb25Ob3RpZmljYXRpb25UeXBlLCBXS09jY2x1
c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIpOwogYm9vbCBXS1VucmVnaXN0ZXJPY2NsdXNpb25Ob3Rp
ZmljYXRpb25IYW5kbGVyKFdLT2NjbHVzaW9uTm90aWZpY2F0aW9uVHlwZSwgV0tPY2NsdXNpb25O
b3RpZmljYXRpb25IYW5kbGVyKTsKK2Jvb2wgV0tFbmFibGVXaW5kb3dPY2NsdXNpb25Ob3RpZmlj
YXRpb25zKE5TSW50ZWdlciB3aW5kb3dJRCwgYm9vbCAqb3V0Q3VycmVudE9jY2x1c2lvblN0YXRl
KTsKIAogZW51bSB7CiAgICAgV0tQcm9jZXNzQXNzZXJ0aW9uVHlwZVZpc2libGUgPSAoMVVMIDw8
IDEwKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>