<?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>121224</bug_id>
          
          <creation_ts>2013-09-12 04:33:39 -0700</creation_ts>
          <short_desc>Support having scrollbars on the left in right-to-left layout</short_desc>
          <delta_ts>2016-03-31 07:25:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>abecsi</cc>
    
    <cc>bdakin</cc>
    
    <cc>hausmann</cc>
    
    <cc>hyatt</cc>
    
    <cc>jonlee</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928240</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-12 04:33:39 -0700</bug_when>
    <thetext>Qt application places the scrollbars to the left when using right-to-left layout. This reverse layout is not currently supported by WebCore though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928242</commentid>
    <comment_count>1</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-12 04:58:25 -0700</bug_when>
    <thetext>Upstream https://bugreports.qt-project.org/browse/QTBUG-22696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928250</commentid>
    <comment_count>2</comment_count>
      <attachid>211420</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-12 05:07:13 -0700</bug_when>
    <thetext>Created attachment 211420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928255</commentid>
    <comment_count>3</comment_count>
      <attachid>211420</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-09-12 05:18:01 -0700</bug_when>
    <thetext>Comment on attachment 211420
Patch

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

I&apos;m not really familiar with the ScrollView Qt, would be great if somebody else could take a look at that part. One comment inside though :)

&gt; Source/WebCore/page/Frame.cpp:739
&gt; +#endif

Perhaps this could be done on the caller side (FrameLoaderClientQt), to reduce the amount of #ifdefs here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928281</commentid>
    <comment_count>4</comment_count>
      <attachid>211420</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-09-12 07:53:39 -0700</bug_when>
    <thetext>Comment on attachment 211420
Patch

[Qt] is misleading in the title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928429</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-09-12 12:26:34 -0700</bug_when>
    <thetext>How does this code play together with code under RTL_SCROLLBAR ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928442</commentid>
    <comment_count>6</comment_count>
      <attachid>211420</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-09-12 12:55:17 -0700</bug_when>
    <thetext>Comment on attachment 211420
Patch

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

&gt; Source/WebCore/platform/ScrollView.h:141
&gt; +    bool reverseLayout() const;
&gt; +    void setReverseLayout(bool);

I think we need a better term than &quot;reverseLayout&quot;, for several reasons:
1. We use layout() as a verb with a specific meaning
2. Unclear what &quot;reverse&quot; means. Does it put the horizontal scrollbar at the top?

Maybe scrollbarOnLeft()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928767</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-13 04:39:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; How does this code play together with code under RTL_SCROLLBAR ?

This only sets the direction on scrollview scrollbars. It appears RTL_SCROLLBAR does the same for CSS scrollbars based on CSS writing direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928778</commentid>
    <comment_count>8</comment_count>
      <attachid>211540</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-13 05:15:14 -0700</bug_when>
    <thetext>Created attachment 211540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928779</commentid>
    <comment_count>9</comment_count>
      <attachid>211541</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-13 05:16:14 -0700</bug_when>
    <thetext>Created attachment 211541
Patch

Remove unrelated change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928999</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-13 13:52:49 -0700</bug_when>
    <thetext>No tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929001</commentid>
    <comment_count>11</comment_count>
      <attachid>211541</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-09-13 13:56:22 -0700</bug_when>
    <thetext>Comment on attachment 211541
Patch

Is that testable, Allan?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933038</commentid>
    <comment_count>12</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-25 09:11:33 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 211541 [details])
&gt; Is that testable, Allan?

Not as it is. It would need to be a setting or we would need another interface to force it before we can test it in a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933058</commentid>
    <comment_count>13</comment_count>
      <attachid>212593</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-25 09:59:40 -0700</bug_when>
    <thetext>Created attachment 212593
Patch

Now with an attempted pixel test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933065</commentid>
    <comment_count>14</comment_count>
      <attachid>212593</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-25 10:27:12 -0700</bug_when>
    <thetext>Comment on attachment 212593
Patch

Attachment 212593 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/2288025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933066</commentid>
    <comment_count>15</comment_count>
      <attachid>212593</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-25 10:28:17 -0700</bug_when>
    <thetext>Comment on attachment 212593
Patch

Attachment 212593 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/2260065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933184</commentid>
    <comment_count>16</comment_count>
      <attachid>212593</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-25 13:47:55 -0700</bug_when>
    <thetext>Comment on attachment 212593
Patch

Attachment 212593 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/2283005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933436</commentid>
    <comment_count>17</comment_count>
      <attachid>212689</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-26 03:43:32 -0700</bug_when>
    <thetext>Created attachment 212689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933451</commentid>
    <comment_count>18</comment_count>
      <attachid>212689</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-26 05:32:17 -0700</bug_when>
    <thetext>Comment on attachment 212689
Patch

Attachment 212689 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/2423043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933467</commentid>
    <comment_count>19</comment_count>
      <attachid>212700</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-09-26 06:27:47 -0700</bug_when>
    <thetext>Created attachment 212700
Patch

Export symbol to windows too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937226</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-07 14:51:28 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Qt application places the scrollbars to the left when using right-to-left layout. This reverse layout is not currently supported by WebCore though.

It is supported in the context of RTL text. See bug 85856 for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937236</commentid>
    <comment_count>21</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-10-07 15:17:33 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #0)
&gt; &gt; Qt application places the scrollbars to the left when using right-to-left layout. This reverse layout is not currently supported by WebCore though.
&gt; 
&gt; It is supported in the context of RTL text. See bug 85856 for example.

That bug has been closed as WONTFIX. The only part landed (as far as I can tell), is the support for placing scrollbars on left on CSS overflow. But css overflow is handled by RenderLayer and not by ScrollView.

Besides that, this bug is based on placing the scrollbar based on the direction of the parent container and not based on the container itself. I can see arguments against this mechanism, but currently we have neither support scrollbar placement for internal text-direction or external text-direction in ScrollView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973083</commentid>
    <comment_count>22</comment_count>
      <attachid>212700</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-01-28 14:10:07 -0800</bug_when>
    <thetext>Comment on attachment 212700
Patch

r- . Qt has been removed.

This can possibly be an Application settings, as per the chrome client hook, but it should likely obey what container renderer style says too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211420</attachid>
            <date>2013-09-12 05:07:13 -0700</date>
            <delta_ts>2013-09-13 05:15:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121224-20130912140712.patch</filename>
            <type>text/plain</type>
            <size>10480</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNlMzlmZjg1YzU5ZDJj
YTNlMzM0ZjRhNDU0YzBjODc2MzE2ZWI0Yy4uNzM1ZThhMzlhNjY2OGM2NDk5NWZjMjJhMjg1NGRj
OGExNGI0YjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA5LTEyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gU2Nyb2xsYmFycyBzaG91bGQgYmUgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByZXZlcnNlIGxheW91dCBpbiBTY3JvbGxWaWV3LCBhbmQgYWN0aXZhdGUgaXQg
b24KKyAgICAgICAgdGhlIG1haW4gZnJhbWUgYmFzZWQgb24gdGhlIGFwcGxpY2F0aW9uIGRlZmF1
bHQuIFRoZSBsYXN0IHBhcnQKKyAgICAgICAgaXMgUXQgb25seS4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmNyZWF0ZVZpZXcpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmll
dzo6U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpyZXZlcnNlTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFJldmVyc2VMYXlvdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVjdFRvQ29weU9uU2Nyb2xsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6aG9y
aXpvbnRhbFNjcm9sbGJhckhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpj
YWxjdWxhdGVPdmVyaGFuZ0FyZWFzRm9yUGFpbnRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDoKKwogMjAxMy0wOS0xMiAgU2FudG9zaCBNYWh0byAgPHNhbnRvc2gubWFAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgY2xhc3MgV2Vla0lucHV0VHlwZSBpbnZva2VzIHdyb25nIGNv
bnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDM3OTIyMmU3OTI0Y2I3NDgxMWU0ZjFlODUyYWIw
NzI0NTVmOGJlZjYuLjUwYzI4YzhlN2RmZTUzNTM1MTJhM2NmN2M0NDdlNGRhNzkyNzJmOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDktMTIgIEFsbGFuIFNhbmRmZWxk
IEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CisKKyAgICAgICAgW1F0XSBTY3JvbGxi
YXJzIHNob3VsZCBiZSBvbiB0aGUgbGVmdCBpbiByaWdodC10by1sZWZ0IGxheW91dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMjI0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9RV2ViRnJhbWVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRl
clJlbGF0aXZlQ29vcmRzKToKKwogMjAxMy0wOS0xMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEdlbmVyYXRlIG1vcmUgSFRNTCB0eXBlIGNoZWNr
cyBhbmQgY2FzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMjQ1MGY1YjI5YzlmMWM3Mzdk
Y2ViMTViYzZkNTMwN2E1NjU4MjNlLi4yMGU4OTUzMGFlNGM1YjI0Y2I1MDg2YTVjMDIxN2U4MDE1
YTk0YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTE5LDYgKzExOSwxMCBAQAogI2luY2x1
ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFFUKQorI2lu
Y2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03MzAsNiArNzM0LDkgQEAgdm9pZCBGcmFtZTo6Y3Jl
YXRlVmlldyhjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IENvbG9yJiBiYWNrZ3Jv
dW5kQ29sb3IKICAgICAgICAgZnJhbWVWaWV3LT5zZXRGaXhlZExheW91dFNpemUoZml4ZWRMYXlv
dXRTaXplKTsKICAgICAgICAgZnJhbWVWaWV3LT5zZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChm
aXhlZFZpc2libGVDb250ZW50UmVjdCk7CiAgICAgICAgIGZyYW1lVmlldy0+c2V0VXNlRml4ZWRM
YXlvdXQodXNlRml4ZWRMYXlvdXQpOworI2lmIFBMQVRGT1JNKFFUKQorICAgICAgICBmcmFtZVZp
ZXctPnNldFJldmVyc2VMYXlvdXQoUUd1aUFwcGxpY2F0aW9uOjppc1JpZ2h0VG9MZWZ0KCkpOwor
I2VuZGlmCiAgICAgfSBlbHNlCiAgICAgICAgIGZyYW1lVmlldyA9IEZyYW1lVmlldzo6Y3JlYXRl
KCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAxYTVj
NzE5NDAzOGFmMTliN2NjNzIzMzMwOTIyYjU2Zjk5ODJmYzU2Li42MTM3ZDViMWIzY2VkOTk5MDdj
ZWYwMWJlOTI2OTVlMmI2NTg4NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcApAQCAtNTYsNiArNTYsNyBAQCBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkKICAgICAsIG1f
cGFpbnRzRW50aXJlQ29udGVudHMoZmFsc2UpCiAgICAgLCBtX2NsaXBzUmVwYWludHModHJ1ZSkK
ICAgICAsIG1fZGVsZWdhdGVzU2Nyb2xsaW5nKGZhbHNlKQorICAgICwgbV9yZXZlcnNlTGF5b3V0
KGZhbHNlKQogewogICAgIHBsYXRmb3JtSW5pdCgpOwogfQpAQCAtNjUsNiArNjYsMjAgQEAgU2Ny
b2xsVmlldzo6flNjcm9sbFZpZXcoKQogICAgIHBsYXRmb3JtRGVzdHJveSgpOwogfQogCitib29s
IFNjcm9sbFZpZXc6OnJldmVyc2VMYXlvdXQoKSBjb25zdAoreworICAgIHJldHVybiBtX3JldmVy
c2VMYXlvdXQ7Cit9CisKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0UmV2ZXJzZUxheW91dChib29sIGIp
Cit7CisgICAgaWYgKG1fcmV2ZXJzZUxheW91dCA9PSBiKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3JldmVyc2VMYXlvdXQgPSBiOworICAgIHVwZGF0ZVNjcm9sbGJhcnMoc2Nyb2xsT2Zmc2V0
KCkpOworfQorCiB2b2lkIFNjcm9sbFZpZXc6OmFkZENoaWxkKFBhc3NSZWZQdHI8V2lkZ2V0PiBw
cnBDaGlsZCkgCiB7CiAgICAgV2lkZ2V0KiBjaGlsZCA9IHBycENoaWxkLmdldCgpOwpAQCAtMjMw
LDEwICsyNDUsOCBAQCBJbnRTaXplIFNjcm9sbFZpZXc6OnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYgogICAgIGludCBob3Jpem9udGFs
U2Nyb2xsYmFySGVpZ2h0ID0gMDsKIAogICAgIGlmIChzY3JvbGxiYXJJbmNsdXNpb24gPT0gRXhj
bHVkZVNjcm9sbGJhcnMpIHsKLSAgICAgICAgaWYgKFNjcm9sbGJhciogdmVydGljYWxCYXIgPSB2
ZXJ0aWNhbFNjcm9sbGJhcigpKQotICAgICAgICAgICAgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9
ICF2ZXJ0aWNhbEJhci0+aXNPdmVybGF5U2Nyb2xsYmFyKCkgPyB2ZXJ0aWNhbEJhci0+d2lkdGgo
KSA6IDA7Ci0gICAgICAgIGlmIChTY3JvbGxiYXIqIGhvcml6b250YWxCYXIgPSBob3Jpem9udGFs
U2Nyb2xsYmFyKCkpCi0gICAgICAgICAgICBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gIWhv
cml6b250YWxCYXItPmlzT3ZlcmxheVNjcm9sbGJhcigpID8gaG9yaXpvbnRhbEJhci0+aGVpZ2h0
KCkgOiAwOworICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+dmVydGljYWxT
Y3JvbGxiYXJXaWR0aCgpOworICAgICAgICBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gdGhp
cy0+aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpOwogICAgIH0KIAogICAgIHJldHVybiBJbnRT
aXplKG1heCgwLCB3aWR0aCgpIC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCksCkBAIC0yNTEsNiAr
MjY0LDcgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJsZUNv
bnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzIHNjb2wKIAogICAgIEZsb2F0U2l6ZSB2aXNpYmxl
Q29udGVudFNpemUgPSB1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShzY29sbGJhckluY2x1c2lv
bik7CiAgICAgdmlzaWJsZUNvbnRlbnRTaXplLnNjYWxlKDEgLyB2aXNpYmxlQ29udGVudFNjYWxl
RmFjdG9yKCkpOworCiAgICAgcmV0dXJuIEludFJlY3QoSW50UG9pbnQobV9zY3JvbGxPZmZzZXQp
LCBleHBhbmRlZEludFNpemUodmlzaWJsZUNvbnRlbnRTaXplKSk7CiB9CiAjZW5kaWYKQEAgLTYw
Miw3ICs2MTYsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgSW50
U2l6ZSYgZGVzaXJlZE9mZnNldCkKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVI
ZWlnaHQoKTsKICAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4KG1heDxpbnQ+KGNsaWVudEhlaWdo
dCAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCksIGNsaWVudEhlaWdo
dCAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CiAgICAgICAgIElu
dFJlY3Qgb2xkUmVjdChtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7Ci0gICAgICAg
IEludFJlY3QgdkJhclJlY3Qod2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
IAorICAgICAgICBpbnQgc2Nyb2xsYmFyT2Zmc2V0ID0gbV9yZXZlcnNlTGF5b3V0ID8gMCA6ICh3
aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSk7CisgICAgICAgIEludFJlY3Qg
dkJhclJlY3Qoc2Nyb2xsYmFyT2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIg
PyBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpIDogMCkpOwpAQCAtNjUyLDExICs2Njcs
OCBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OnJlY3RUb0NvcHlPblNjcm9sbCgpIGNvbnN0CiB7CiAg
ICAgSW50UmVjdCBzY3JvbGxWaWV3UmVjdCA9IGNvbnZlcnRUb1Jvb3RWaWV3KEludFJlY3QoMCwg
MCwgdmlzaWJsZVdpZHRoKCksIHZpc2libGVIZWlnaHQoKSkpOwogICAgIGlmIChoYXNPdmVybGF5
U2Nyb2xsYmFycygpKSB7Ci0gICAgICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gKHZl
cnRpY2FsU2Nyb2xsYmFyKCkgJiYgIWhhc0xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgPyB2
ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMDsKLSAgICAgICAgaW50IGhvcml6b250YWxT
Y3JvbGxiYXJIZWlnaHQgPSAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFoYXNMYXllckZvckhv
cml6b250YWxTY3JvbGxiYXIoKSkgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDog
MDsKLSAgICAgICAgCi0gICAgICAgIHNjcm9sbFZpZXdSZWN0LnNldFdpZHRoKHNjcm9sbFZpZXdS
ZWN0LndpZHRoKCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKTsKLSAgICAgICAgc2Nyb2xsVmll
d1JlY3Quc2V0SGVpZ2h0KHNjcm9sbFZpZXdSZWN0LmhlaWdodCgpIC0gaG9yaXpvbnRhbFNjcm9s
bGJhckhlaWdodCk7CisgICAgICAgIHNjcm9sbFZpZXdSZWN0LnNldFdpZHRoKHNjcm9sbFZpZXdS
ZWN0LndpZHRoKCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkpOworICAgICAgICBzY3JvbGxW
aWV3UmVjdC5zZXRIZWlnaHQoc2Nyb2xsVmlld1JlY3QuaGVpZ2h0KCkgLSBob3Jpem9udGFsU2Ny
b2xsYmFySGVpZ2h0KCkpOwogICAgIH0KICAgICByZXR1cm4gc2Nyb2xsVmlld1JlY3Q7CiB9CkBA
IC0xMDkxLDYgKzExMDMsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgICAgICBjb250ZXh0LT50cmFu
c2xhdGUoeCgpLCB5KCkpOwogICAgICAgICBkb2N1bWVudERpcnR5UmVjdC5tb3ZlQnkoLWxvY2F0
aW9uKCkpOworICAgICAgICBpZiAobV9yZXZlcnNlTGF5b3V0KQorICAgICAgICAgICAgY29udGV4
dC0+dHJhbnNsYXRlKHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCk7CiAKICAgICAgICAgaWYg
KCFwYWludHNFbnRpcmVDb250ZW50cygpKSB7CiAgICAgICAgICAgICBjb250ZXh0LT50cmFuc2xh
dGUoLXNjcm9sbFgoKSwgLXNjcm9sbFkoKSk7CkBAIC0xMTI2LDEyICsxMTQwLDI0IEBAIHZvaWQg
U2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByZWN0KQogICAgICAgICBwYWludFBhblNjcm9sbEljb24oY29udGV4dCk7CiB9CiAKK2ludCBT
Y3JvbGxWaWV3Ojp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgY29uc3QKK3sKKyAgICBpZiAodmVy
dGljYWxTY3JvbGxiYXIoKSAmJiAhdmVydGljYWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xs
YmFyKCkpCisgICAgICAgIHJldHVybiB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpOworICAg
IHJldHVybiAwOworfQorCitpbnQgU2Nyb2xsVmlldzo6aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdo
dCgpIGNvbnN0Cit7CisgICAgaWYgKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaG9yaXpvbnRh
bFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKKyAgICAgICAgcmV0dXJuIGhvcml6
b250YWxTY3JvbGxiYXIoKS0+d2lkdGgoKTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBTY3Jv
bGxWaWV3OjpjYWxjdWxhdGVPdmVyaGFuZ0FyZWFzRm9yUGFpbnRpbmcoSW50UmVjdCYgaG9yaXpv
bnRhbE92ZXJoYW5nUmVjdCwgSW50UmVjdCYgdmVydGljYWxPdmVyaGFuZ1JlY3QpCiB7Ci0gICAg
aW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAodmVydGljYWxTY3JvbGxiYXIoKSAmJiAhdmVy
dGljYWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xsYmFyKCkpCi0gICAgICAgID8gdmVydGlj
YWxTY3JvbGxiYXIoKS0+d2lkdGgoKSA6IDA7Ci0gICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJI
ZWlnaHQgPSAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFob3Jpem9udGFsU2Nyb2xsYmFyKCkt
PmlzT3ZlcmxheVNjcm9sbGJhcigpKQotICAgICAgICA/IGhvcml6b250YWxTY3JvbGxiYXIoKS0+
aGVpZ2h0KCkgOiAwOworICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+dmVy
dGljYWxTY3JvbGxiYXJXaWR0aCgpOworICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0
ID0gdGhpcy0+aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpOwogCiAgICAgaW50IHBoeXNpY2Fs
U2Nyb2xsWSA9IHNjcm9sbFBvc2l0aW9uKCkueSgpICsgc2Nyb2xsT3JpZ2luKCkueSgpOwogICAg
IGlmIChwaHlzaWNhbFNjcm9sbFkgPCAwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmgKaW5kZXggODgwNTU0ZWJiM2M0NDNkZWI1YzA1ZWQ0MzNhMTliYzU3MmY0MDdlMS4uYjMwZTM4
ZDBhYzMxNTYxNGM3NTg4MzQzZDE4NDRhNTc0YjE3MzBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuaApAQCAtNzgsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTY3Jv
bGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV92ZXJ0
aWNhbFNjcm9sbGJhci5nZXQoKTsgfQogICAgIGJvb2wgaXNTY3JvbGxWaWV3U2Nyb2xsYmFyKGNv
bnN0IFdpZGdldCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGhvcml6b250YWxTY3JvbGxiYXIoKSA9
PSBjaGlsZCB8fCB2ZXJ0aWNhbFNjcm9sbGJhcigpID09IGNoaWxkOyB9CiAKKyAgICBpbnQgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCgpIGNvbnN0OworICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFy
SGVpZ2h0KCkgY29uc3Q7CisKICAgICB2b2lkIHBvc2l0aW9uU2Nyb2xsYmFyTGF5ZXJzKCk7CiAK
ICAgICAvLyBGdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIHJldHJpZXZpbmcgdGhlIHNjcm9sbGlu
ZyBtb2RlIGluIGVhY2ggYXhpcyAoaG9yaXpvbnRhbC92ZXJ0aWNhbCkuIFRoZSBtb2RlIGhhcyB2
YWx1ZXMgb2YKQEAgLTEzNCw2ICsxMzcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYW5CbGl0
T25TY3JvbGwoYm9vbCk7CiAgICAgYm9vbCBjYW5CbGl0T25TY3JvbGwoKSBjb25zdDsKIAorICAg
IGJvb2wgcmV2ZXJzZUxheW91dCgpIGNvbnN0OworICAgIHZvaWQgc2V0UmV2ZXJzZUxheW91dChi
b29sKTsKKwogICAgIC8vIFRoZSB2aXNpYmxlIGNvbnRlbnQgcmVjdCBoYXMgYSBsb2NhdGlvbiB0
aGF0IGlzIHRoZSBzY3JvbGxlZCBvZmZzZXQgb2YgdGhlIGRvY3VtZW50LiBUaGUgd2lkdGggYW5k
IGhlaWdodCBhcmUgdGhlIHZpZXdwb3J0IHdpZHRoCiAgICAgLy8gYW5kIGhlaWdodC4gQnkgZGVm
YXVsdCB0aGUgc2Nyb2xsYmFycyB0aGVtc2VsdmVzIGFyZSBleGNsdWRlZCBmcm9tIHRoaXMgcmVj
dGFuZ2xlLCBidXQgYW4gb3B0aW9uYWwgYm9vbGVhbiBhcmd1bWVudCBhbGxvd3MgdGhlbSB0byBi
ZQogICAgIC8vIGluY2x1ZGVkLgpAQCAtMzcxLDYgKzM3Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3BhaW50c0VudGlyZUNvbnRlbnRzOwogICAgIGJvb2wgbV9jbGlwc1JlcGFpbnRzOwogICAg
IGJvb2wgbV9kZWxlZ2F0ZXNTY3JvbGxpbmc7CisgICAgYm9vbCBtX3JldmVyc2VMYXlvdXQ7CiAK
ICAgICB2b2lkIGluaXQoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCmluZGV4IDc2MzNi
Zjc4ZGFjZTBhZGJkYmJiYjg0MTAxNjEwNTBkMGQ1YWE0MjUuLmY2MzY3ZmVkYjY5ZmQ2NmFkMTM1
NzgzY2JkYTRiNGRiNjM3ZWMyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcApAQCAtNTM0LDYgKzUzNCwxMCBAQCB2b2lk
IFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJlbGF0aXZlQ29vcmRzKFFQYWludGVyKiBwYWludGVy
LCBpbnQgbGF5ZXJzLCBjb25zdAogCiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSh4LCB5
KTsKICAgICAgICAgICAgIHJlY3QudHJhbnNsYXRlKC14LCAteSk7CisgICAgICAgICAgICBpZiAo
dmlldy0+cmV2ZXJzZUxheW91dCgpKSB7CisgICAgICAgICAgICAgICAgY29udGV4dC50cmFuc2xh
dGUodmlldy0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKKyAgICAgICAgICAgICAgICBy
ZWN0LnRyYW5zbGF0ZSgtdmlldy0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKC1zY3JvbGxYLCAtc2Nyb2xs
WSk7CiAgICAgICAgICAgICByZWN0LnRyYW5zbGF0ZShzY3JvbGxYLCBzY3JvbGxZKTsKICAgICAg
ICAgICAgIGNvbnRleHQuY2xpcCh2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211540</attachid>
            <date>2013-09-13 05:15:14 -0700</date>
            <delta_ts>2013-09-13 05:16:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121224-20130913141513.patch</filename>
            <type>text/plain</type>
            <size>13250</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYzZGIzODUwOWFhMWJj
ZDE4NzVlYzRhNTNhY2IzYzliNDRmMzIzMS4uZmIxZjA0YTMyYTc3MDQ0ZGU1OGUwYjNiNDY4ZTk5
YzE1MjA1NmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA5LTEzICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1
cHBvcnQgaGF2aW5nIHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxheW91dCBvZiBzY3JvbGxiYXJzIGluIFNjcm9sbFZp
ZXcuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjpzaG91bGRQbGFjZVNjcm9sbGJhck9uTGVmdCk6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppbml0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OlNjcm9sbFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhY2VT
Y3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0UGxhY2VT
Y3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJs
ZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9s
bGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVjdFRvQ29weU9uU2Nyb2xs
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpjYWxjdWxhdGVPdmVyaGFuZ0FyZWFzRm9yUGFpbnRpbmcpOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKwogMjAxMy0wOS0xMiAgVml2ZWsgR2FsYXRh
Z2UgIDx2aXZlay52Z0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBYTUxTZXJpYWxpemVyLnNlcmlh
bGl6ZVRvU3RyaW5nKCkgc2hvdWxkIHRocm93IGV4Y2VwdGlvbiBmb3IgaW52YWxpZCBub2RlIHZh
bHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCAzNzkyMjJlNzkyNGNiNzQ4MTFlNGYxZTg1MmFiMDcyNDU1
ZjhiZWY2Li43MTU1Y2NkMDgzMTU2NWEzZWJiY2RlMjhkYWM2ZDUxYTFiMzdiNjI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA5LTEzICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1cHBvcnQgaGF2aW5nIHNj
cm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlvdXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIyNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBwbGFjZSBzY3Jv
bGxiYXJzIG9uIHRoZSBsZWZ0IHdoZW4gUUd1aUFwcGxpY2F0aW9uIGlzIHNldCB0byByaWdodC10
by1sZWZ0IGxheW91dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwOgorICAgICAgICAoUVdlYkZy
YW1lQWRhcHRlcjo6cmVuZGVyUmVsYXRpdmVDb29yZHMpOgorCiAyMDEzLTA5LTExICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgR2VuZXJhdGUgbW9y
ZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCBiNWY3M2E2NmMwZWE5ZmM3M2JhNmFkNTUzNjM2OGI1NGMzYTBiM2E4Li40ZDI0ZWZm
ODZlN2Y4YWY1ZTRiZjE1NGQxNGM2NDc2MWRmNjQxZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTI0MCw2ICsyNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVs
ZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRQbGFjZVNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gQWxsb3dz
IHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGljcyBsYXllcnMgY3JlYXRlZCBi
eSB0aGlzIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggODA2NWVhYzc4NzFi
NmRjMDYwZTQ2YWQyZTVkY2QxZjEwYjMyNTc3MC4uYjgzMTVmZDA0MzNkYTRjOTc1N2Y0NTYyYzQ3
YmVmM2RlYTE0M2Q3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzQ3LDYgKzM0
Nyw4IEBAIHZvaWQgRnJhbWVWaWV3Ojppbml0KCkKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5w
YWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkUGFp
bnRFbnRpcmVDb250ZW50cygpKQogICAgICAgICBzZXRQYWludHNFbnRpcmVDb250ZW50cyh0cnVl
KTsKKyAgICBpZiAocGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRQbGFjZVNj
cm9sbGJhck9uTGVmdCgpKQorICAgICAgICBzZXRQbGFjZVNjcm9sbGJhck9uTGVmdCh0cnVlKTsK
IH0KICAgICAKIHZvaWQgRnJhbWVWaWV3OjpwcmVwYXJlRm9yRGV0YWNoKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWE1YzcxOTQwMzhhZjE5YjdjYzcyMzMzMDky
MmI1NmY5OTgyZmM1Ni4uZjNhZGM3OGVjODFiMjE5OTY4NjRkYzk5NWUyMzM2MDk3ODRhZWRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAg
U2Nyb2xsVmlldzo6U2Nyb2xsVmlldygpCiAgICAgLCBtX3BhaW50c0VudGlyZUNvbnRlbnRzKGZh
bHNlKQogICAgICwgbV9jbGlwc1JlcGFpbnRzKHRydWUpCiAgICAgLCBtX2RlbGVnYXRlc1Njcm9s
bGluZyhmYWxzZSkKKyAgICAsIG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQoZmFsc2UpCiB7CiAgICAg
cGxhdGZvcm1Jbml0KCk7CiB9CkBAIC02NSw2ICs2NiwxOSBAQCBTY3JvbGxWaWV3Ojp+U2Nyb2xs
VmlldygpCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiB9CiAKK2Jvb2wgU2Nyb2xsVmlldzo6cGxh
Y2VTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3BsYWNlU2Nyb2xsYmFy
T25MZWZ0OworfQorCit2b2lkIFNjcm9sbFZpZXc6OnNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGJv
b2wgYikKK3sKKyAgICBpZiAobV9wbGFjZVNjcm9sbGJhck9uTGVmdCA9PSBiKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BsYWNlU2Nyb2xsYmFyT25MZWZ0ID0gYjsKK30KKwogdm9pZCBTY3Jv
bGxWaWV3OjphZGRDaGlsZChQYXNzUmVmUHRyPFdpZGdldD4gcHJwQ2hpbGQpIAogewogICAgIFdp
ZGdldCogY2hpbGQgPSBwcnBDaGlsZC5nZXQoKTsKQEAgLTIzMCwxMCArMjQ0LDggQEAgSW50U2l6
ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJl
Y3RJbmNsdWRlc1Njcm9sbGIKICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7
CiAKICAgICBpZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEV4Y2x1ZGVTY3JvbGxiYXJzKSB7Ci0g
ICAgICAgIGlmIChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkK
LSAgICAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3Zl
cmxheVNjcm9sbGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwotICAgICAgICBpZiAo
U2Nyb2xsYmFyKiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQotICAgICAg
ICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9ICFob3Jpem9udGFsQmFyLT5pc092ZXJs
YXlTY3JvbGxiYXIoKSA/IGhvcml6b250YWxCYXItPmhlaWdodCgpIDogMDsKKyAgICAgICAgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKKyAg
ICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IHRoaXMtPmhvcml6b250YWxTY3JvbGxi
YXJIZWlnaHQoKTsKICAgICB9CiAKICAgICByZXR1cm4gSW50U2l6ZShtYXgoMCwgd2lkdGgoKSAt
IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgpLApAQCAtMjUxLDYgKzI2Myw3IEBAIEludFJlY3QgU2Ny
b2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Ny
b2xsYmFycyBzY29sCiAKICAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoc2NvbGxiYXJJbmNsdXNpb24pOwogICAgIHZpc2libGVDb250
ZW50U2l6ZS5zY2FsZSgxIC8gdmlzaWJsZUNvbnRlbnRTY2FsZUZhY3RvcigpKTsKKwogICAgIHJl
dHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5kZWRJbnRTaXplKHZp
c2libGVDb250ZW50U2l6ZSkpOwogfQogI2VuZGlmCkBAIC02MDIsNyArNjE1LDggQEAgdm9pZCBT
Y3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRlc2lyZWRPZmZzZXQp
CiAgICAgICAgIGludCBjbGllbnRIZWlnaHQgPSB2aXNpYmxlSGVpZ2h0KCk7CiAgICAgICAgIGlu
dCBwYWdlU3RlcCA9IG1heChtYXg8aW50PihjbGllbnRIZWlnaHQgKiBTY3JvbGxiYXI6Om1pbkZy
YWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBjbGllbnRIZWlnaHQgLSBTY3JvbGxiYXI6Om1heE92
ZXJsYXBCZXR3ZWVuUGFnZXMoKSksIDEpOwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV92ZXJ0
aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkpOwotICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHdp
ZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLCAKKyAgICAgICAgaW50IHNjcm9s
bGJhck9mZnNldCA9IG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQgPyAwIDogKHdpZHRoKCkgLSBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpKTsKKyAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzY3Jv
bGxiYXJPZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodCgpIC0gKG1faG9yaXpvbnRhbFNjcm9sbGJhciA/IG1faG9yaXpvbnRh
bFNjcm9sbGJhci0+aGVpZ2h0KCkgOiAwKSk7CkBAIC02NTQsNyArNjY4LDcgQEAgSW50UmVjdCBT
Y3JvbGxWaWV3OjpyZWN0VG9Db3B5T25TY3JvbGwoKSBjb25zdAogICAgIGlmIChoYXNPdmVybGF5
U2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gKHZl
cnRpY2FsU2Nyb2xsYmFyKCkgJiYgIWhhc0xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgPyB2
ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMDsKICAgICAgICAgaW50IGhvcml6b250YWxT
Y3JvbGxiYXJIZWlnaHQgPSAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFoYXNMYXllckZvckhv
cml6b250YWxTY3JvbGxiYXIoKSkgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDog
MDsKLSAgICAgICAgCisKICAgICAgICAgc2Nyb2xsVmlld1JlY3Quc2V0V2lkdGgoc2Nyb2xsVmll
d1JlY3Qud2lkdGgoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgpOwogICAgICAgICBzY3JvbGxW
aWV3UmVjdC5zZXRIZWlnaHQoc2Nyb2xsVmlld1JlY3QuaGVpZ2h0KCkgLSBob3Jpem9udGFsU2Ny
b2xsYmFySGVpZ2h0KTsKICAgICB9CkBAIC0xMDkxLDYgKzExMDUsOCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkK
IAogICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoeCgpLCB5KCkpOwogICAgICAgICBkb2N1bWVu
dERpcnR5UmVjdC5tb3ZlQnkoLWxvY2F0aW9uKCkpOworICAgICAgICBpZiAobV9wbGFjZVNjcm9s
bGJhck9uTGVmdCkKKyAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoKCksIDApOwogCiAgICAgICAgIGlmICghcGFpbnRzRW50aXJlQ29udGVudHMoKSkg
ewogICAgICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKC1zY3JvbGxYKCksIC1zY3JvbGxZKCkp
OwpAQCAtMTEyNiwxMiArMTE0MiwyNCBAQCB2b2lkIFNjcm9sbFZpZXc6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcGFpbnRQYW5T
Y3JvbGxJY29uKGNvbnRleHQpOwogfQogCitpbnQgU2Nyb2xsVmlldzo6dmVydGljYWxTY3JvbGxi
YXJXaWR0aCgpIGNvbnN0Cit7CisgICAgaWYgKHZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZlcnRp
Y2FsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICByZXR1cm4gdmVy
dGljYWxTY3JvbGxiYXIoKS0+d2lkdGgoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IFNjcm9s
bFZpZXc6Omhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdAoreworICAgIGlmIChob3Jp
em9udGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Ny
b2xsYmFyKCkpCisgICAgICAgIHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCktPndpZHRoKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgU2Nyb2xsVmlldzo6Y2FsY3VsYXRlT3ZlcmhhbmdB
cmVhc0ZvclBhaW50aW5nKEludFJlY3QmIGhvcml6b250YWxPdmVyaGFuZ1JlY3QsIEludFJlY3Qm
IHZlcnRpY2FsT3ZlcmhhbmdSZWN0KQogewotICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRo
ID0gKHZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZlcnRpY2FsU2Nyb2xsYmFyKCktPmlzT3Zlcmxh
eVNjcm9sbGJhcigpKQotICAgICAgICA/IHZlcnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCkgOiAw
OwotICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gKGhvcml6b250YWxTY3JvbGxi
YXIoKSAmJiAhaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKLSAg
ICAgICAgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDogMDsKKyAgICBpbnQgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKKyAg
ICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IHRoaXMtPmhvcml6b250YWxTY3JvbGxi
YXJIZWlnaHQoKTsKIAogICAgIGludCBwaHlzaWNhbFNjcm9sbFkgPSBzY3JvbGxQb3NpdGlvbigp
LnkoKSArIHNjcm9sbE9yaWdpbigpLnkoKTsKICAgICBpZiAocGh5c2ljYWxTY3JvbGxZIDwgMCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDg4MDU1NGViYjNjNDQzZGVi
NWMwNWVkNDMzYTE5YmM1NzJmNDA3ZTEuLjE2YmRkZDUyMGQwMjhmMTRjN2I3MTdmM2RiMjdkMGU4
NzQ1YzgxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTc4LDYgKzc4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVydGljYWxTY3JvbGxiYXIuZ2V0KCk7IH0KICAg
ICBib29sIGlzU2Nyb2xsVmlld1Njcm9sbGJhcihjb25zdCBXaWRnZXQqIGNoaWxkKSBjb25zdCB7
IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgPT0gY2hpbGQgfHwgdmVydGljYWxTY3JvbGxi
YXIoKSA9PSBjaGlsZDsgfQogCisgICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSBjb25z
dDsKKyAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpIGNvbnN0OworCiAgICAgdm9p
ZCBwb3NpdGlvblNjcm9sbGJhckxheWVycygpOwogCiAgICAgLy8gRnVuY3Rpb25zIGZvciBzZXR0
aW5nIGFuZCByZXRyaWV2aW5nIHRoZSBzY3JvbGxpbmcgbW9kZSBpbiBlYWNoIGF4aXMgKGhvcml6
b250YWwvdmVydGljYWwpLiBUaGUgbW9kZSBoYXMgdmFsdWVzIG9mCkBAIC0xMzQsNiArMTM3LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhbkJsaXRPblNjcm9sbChib29sKTsKICAgICBib29s
IGNhbkJsaXRPblNjcm9sbCgpIGNvbnN0OwogCisgICAgLy8gV2hldGhlciBjb250ZW50IGFuZCBz
Y3JvbGxiYXJzIHNob3VsZCBiZSBsYXllZCBvdXQgcmlnaHQgdG8gbGVmdCBpbnN0ZWFkIG9mIGxl
ZnQgdG8gcmlnaHQuCisgICAgYm9vbCBwbGFjZVNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAg
IHZvaWQgc2V0UGxhY2VTY3JvbGxiYXJPbkxlZnQoYm9vbCk7CisKICAgICAvLyBUaGUgdmlzaWJs
ZSBjb250ZW50IHJlY3QgaGFzIGEgbG9jYXRpb24gdGhhdCBpcyB0aGUgc2Nyb2xsZWQgb2Zmc2V0
IG9mIHRoZSBkb2N1bWVudC4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIHRoZSB2aWV3cG9ydCB3
aWR0aAogICAgIC8vIGFuZCBoZWlnaHQuIEJ5IGRlZmF1bHQgdGhlIHNjcm9sbGJhcnMgdGhlbXNl
bHZlcyBhcmUgZXhjbHVkZWQgZnJvbSB0aGlzIHJlY3RhbmdsZSwgYnV0IGFuIG9wdGlvbmFsIGJv
b2xlYW4gYXJndW1lbnQgYWxsb3dzIHRoZW0gdG8gYmUKICAgICAvLyBpbmNsdWRlZC4KQEAgLTM3
MSw2ICszNzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wYWludHNFbnRpcmVDb250ZW50czsK
ICAgICBib29sIG1fY2xpcHNSZXBhaW50czsKICAgICBib29sIG1fZGVsZWdhdGVzU2Nyb2xsaW5n
OworICAgIGJvb2wgbV9wbGFjZVNjcm9sbGJhck9uTGVmdDsKIAogICAgIHZvaWQgaW5pdCgpOwog
ICAgIHZvaWQgZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA5YmNiY2FiMjg1MzU2YjY5ZjNhY2M0OTg2Nzlm
YmI5NTZmZTlkZjUwLi5iYjM2OGNhOWRhYjYyODZlNWIyMDA1MTkwYTYxYjQwZjFmNjY0YmM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcApAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUgPHFhYnN0cmFjdGFuaW1hdGlvbi5oPgog
I2luY2x1ZGUgPHFkZWJ1Zy5oPgogI2luY2x1ZGUgPHFldmVudGxvb3AuaD4KKyNpbmNsdWRlIDxx
Z3VpYXBwbGljYXRpb24uaD4KICNpbmNsdWRlIDxxd2luZG93Lmg+CiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNzU3LDYgKzc1OCwxMSBA
QCBib29sIENocm9tZUNsaWVudFF0OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudFF0OjpzaG91bGRQbGFjZVNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFFHdWlBcHBsaWNhdGlvbjo6bGF5b3V0RGlyZWN0
aW9uKCkgPT0gUXQ6OlJpZ2h0VG9MZWZ0OworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVF0KGNsaWVudCwgdGhpcykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CmluZGV4IDlkNWJhYWNhZTNlYTc1ODYxNGQ5NmIxYzgzYmE1YTI4NTI4MmUwOGIuLjZiNjdmZThj
MDMzMmQ0Njg0MTZkMDVjOGFmYjlmM2U0YTlhMGRlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTIwMCw2ICsyMDAsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJD
b3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBPVkVSUklERTsK
KwogICAgIFFXZWJGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKiBjcmVhdGVGdWxsU2NyZWVuVmlkZW9I
YW5kbGVyKCk7CiAKICAgICBRV2ViUGFnZUFkYXB0ZXIqIG1fd2ViUGFnZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCmluZGV4
IDc2MzNiZjc4ZGFjZTBhZGJkYmJiYjg0MTAxNjEwNTBkMGQ1YWE0MjUuLmRkYTBhZTVkN2VhODFl
YzNhYjBmZmMwMThmMTgwZmY5NmNjYjU4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcApAQCAtNTM0LDYgKzUzNCwxMCBA
QCB2b2lkIFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJlbGF0aXZlQ29vcmRzKFFQYWludGVyKiBw
YWludGVyLCBpbnQgbGF5ZXJzLCBjb25zdAogCiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0
ZSh4LCB5KTsKICAgICAgICAgICAgIHJlY3QudHJhbnNsYXRlKC14LCAteSk7CisgICAgICAgICAg
ICBpZiAodmlldy0+cGxhY2VTY3JvbGxiYXJPbkxlZnQoKSkgeworICAgICAgICAgICAgICAgIGNv
bnRleHQudHJhbnNsYXRlKHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCk7CisgICAg
ICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoLXZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgo
KSwgMCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2Ny
b2xsWCwgLXNjcm9sbFkpOwogICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoc2Nyb2xsWCwgc2Ny
b2xsWSk7CiAgICAgICAgICAgICBjb250ZXh0LmNsaXAodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5w
cmYgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgppbmRleCAzMTY0
ODFlYTc4MGI4MjFiM2Y0M2E2MWRiYTgwOTU2MjBjNzU0ODI1Li4zYjIzZDc3OWZhZDlmZTBlN2Iy
MzM5YjhjZGM3NGVlY2Q3YzRiNGJmIDEwMDY0NAotLS0gYS9Ub29scy9xbWFrZS9ta3NwZWNzL2Zl
YXR1cmVzL2ZlYXR1cmVzLnByZgorKysgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2Zl
YXR1cmVzLnByZgpAQCAtMzcsNyArMzcsNyBAQCBkZWZpbmVUZXN0KGRldGVjdEZlYXR1cmVzKSB7
CiAgICAgcXRIYXZlTW9kdWxlKHByaW50c3VwcG9ydCk6IFdFQktJVF9DT05GSUcgKz0gaGF2ZV9x
dHByaW50c3VwcG9ydAogICAgIHF0SGF2ZU1vZHVsZSh3aWRnZXRzKTogV0VCS0lUX0NPTkZJRyAr
PSBoYXZlX3FzdHlsZQogICAgIHF0SGF2ZU1vZHVsZSh0ZXN0bGliKTogV0VCS0lUX0NPTkZJRyAr
PSBoYXZlX3F0dGVzdGxpYgotICAgIHF0SGF2ZU1vZHVsZShsb2NhdGlvbik6IFdFQktJVF9DT05G
SUcgKz0gaGF2ZV9xdGxvY2F0aW9uCisjICAgIHF0SGF2ZU1vZHVsZShsb2NhdGlvbik6IFdFQktJ
VF9DT05GSUcgKz0gaGF2ZV9xdGxvY2F0aW9uCiAgICAgcXRIYXZlTW9kdWxlKHNlbnNvcnMpOiBX
RUJLSVRfQ09ORklHICs9IGhhdmVfcXRzZW5zb3JzCiAKICAgICBjb25maWdfbGlieG1sMjogV0VC
S0lUX0NPTkZJRyArPSB1c2VfbGlieG1sMgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211541</attachid>
            <date>2013-09-13 05:16:14 -0700</date>
            <delta_ts>2013-09-25 09:59:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121224-20130913141612.patch</filename>
            <type>text/plain</type>
            <size>12488</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYzZGIzODUwOWFhMWJj
ZDE4NzVlYzRhNTNhY2IzYzliNDRmMzIzMS4uZmIxZjA0YTMyYTc3MDQ0ZGU1OGUwYjNiNDY4ZTk5
YzE1MjA1NmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA5LTEzICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1
cHBvcnQgaGF2aW5nIHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxheW91dCBvZiBzY3JvbGxiYXJzIGluIFNjcm9sbFZp
ZXcuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjpzaG91bGRQbGFjZVNjcm9sbGJhck9uTGVmdCk6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppbml0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OlNjcm9sbFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhY2VT
Y3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0UGxhY2VT
Y3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dW5zY2FsZWRW
aXNpYmxlQ29udGVudFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJs
ZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9s
bGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVjdFRvQ29weU9uU2Nyb2xs
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpjYWxjdWxhdGVPdmVyaGFuZ0FyZWFzRm9yUGFpbnRpbmcpOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKwogMjAxMy0wOS0xMiAgVml2ZWsgR2FsYXRh
Z2UgIDx2aXZlay52Z0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBYTUxTZXJpYWxpemVyLnNlcmlh
bGl6ZVRvU3RyaW5nKCkgc2hvdWxkIHRocm93IGV4Y2VwdGlvbiBmb3IgaW52YWxpZCBub2RlIHZh
bHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCAzNzkyMjJlNzkyNGNiNzQ4MTFlNGYxZTg1MmFiMDcyNDU1
ZjhiZWY2Li43MTU1Y2NkMDgzMTU2NWEzZWJiY2RlMjhkYWM2ZDUxYTFiMzdiNjI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA5LTEzICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1cHBvcnQgaGF2aW5nIHNj
cm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlvdXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIyNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBwbGFjZSBzY3Jv
bGxiYXJzIG9uIHRoZSBsZWZ0IHdoZW4gUUd1aUFwcGxpY2F0aW9uIGlzIHNldCB0byByaWdodC10
by1sZWZ0IGxheW91dC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwOgorICAgICAgICAoUVdlYkZy
YW1lQWRhcHRlcjo6cmVuZGVyUmVsYXRpdmVDb29yZHMpOgorCiAyMDEzLTA5LTExICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgR2VuZXJhdGUgbW9y
ZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCBiNWY3M2E2NmMwZWE5ZmM3M2JhNmFkNTUzNjM2OGI1NGMzYTBiM2E4Li40ZDI0ZWZm
ODZlN2Y4YWY1ZTRiZjE1NGQxNGM2NDc2MWRmNjQxZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTI0MCw2ICsyNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVs
ZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRQbGFjZVNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gQWxsb3dz
IHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGljcyBsYXllcnMgY3JlYXRlZCBi
eSB0aGlzIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggODA2NWVhYzc4NzFi
NmRjMDYwZTQ2YWQyZTVkY2QxZjEwYjMyNTc3MC4uYjgzMTVmZDA0MzNkYTRjOTc1N2Y0NTYyYzQ3
YmVmM2RlYTE0M2Q3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzQ3LDYgKzM0
Nyw4IEBAIHZvaWQgRnJhbWVWaWV3Ojppbml0KCkKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5w
YWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkUGFp
bnRFbnRpcmVDb250ZW50cygpKQogICAgICAgICBzZXRQYWludHNFbnRpcmVDb250ZW50cyh0cnVl
KTsKKyAgICBpZiAocGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRQbGFjZVNj
cm9sbGJhck9uTGVmdCgpKQorICAgICAgICBzZXRQbGFjZVNjcm9sbGJhck9uTGVmdCh0cnVlKTsK
IH0KICAgICAKIHZvaWQgRnJhbWVWaWV3OjpwcmVwYXJlRm9yRGV0YWNoKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMWE1YzcxOTQwMzhhZjE5YjdjYzcyMzMzMDky
MmI1NmY5OTgyZmM1Ni4uZjNhZGM3OGVjODFiMjE5OTY4NjRkYzk5NWUyMzM2MDk3ODRhZWRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAg
U2Nyb2xsVmlldzo6U2Nyb2xsVmlldygpCiAgICAgLCBtX3BhaW50c0VudGlyZUNvbnRlbnRzKGZh
bHNlKQogICAgICwgbV9jbGlwc1JlcGFpbnRzKHRydWUpCiAgICAgLCBtX2RlbGVnYXRlc1Njcm9s
bGluZyhmYWxzZSkKKyAgICAsIG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQoZmFsc2UpCiB7CiAgICAg
cGxhdGZvcm1Jbml0KCk7CiB9CkBAIC02NSw2ICs2NiwxOSBAQCBTY3JvbGxWaWV3Ojp+U2Nyb2xs
VmlldygpCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiB9CiAKK2Jvb2wgU2Nyb2xsVmlldzo6cGxh
Y2VTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3BsYWNlU2Nyb2xsYmFy
T25MZWZ0OworfQorCit2b2lkIFNjcm9sbFZpZXc6OnNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGJv
b2wgYikKK3sKKyAgICBpZiAobV9wbGFjZVNjcm9sbGJhck9uTGVmdCA9PSBiKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BsYWNlU2Nyb2xsYmFyT25MZWZ0ID0gYjsKK30KKwogdm9pZCBTY3Jv
bGxWaWV3OjphZGRDaGlsZChQYXNzUmVmUHRyPFdpZGdldD4gcHJwQ2hpbGQpIAogewogICAgIFdp
ZGdldCogY2hpbGQgPSBwcnBDaGlsZC5nZXQoKTsKQEAgLTIzMCwxMCArMjQ0LDggQEAgSW50U2l6
ZSBTY3JvbGxWaWV3Ojp1bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShWaXNpYmxlQ29udGVudFJl
Y3RJbmNsdWRlc1Njcm9sbGIKICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7
CiAKICAgICBpZiAoc2Nyb2xsYmFySW5jbHVzaW9uID09IEV4Y2x1ZGVTY3JvbGxiYXJzKSB7Ci0g
ICAgICAgIGlmIChTY3JvbGxiYXIqIHZlcnRpY2FsQmFyID0gdmVydGljYWxTY3JvbGxiYXIoKSkK
LSAgICAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAhdmVydGljYWxCYXItPmlzT3Zl
cmxheVNjcm9sbGJhcigpID8gdmVydGljYWxCYXItPndpZHRoKCkgOiAwOwotICAgICAgICBpZiAo
U2Nyb2xsYmFyKiBob3Jpem9udGFsQmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQotICAgICAg
ICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9ICFob3Jpem9udGFsQmFyLT5pc092ZXJs
YXlTY3JvbGxiYXIoKSA/IGhvcml6b250YWxCYXItPmhlaWdodCgpIDogMDsKKyAgICAgICAgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKKyAg
ICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IHRoaXMtPmhvcml6b250YWxTY3JvbGxi
YXJIZWlnaHQoKTsKICAgICB9CiAKICAgICByZXR1cm4gSW50U2l6ZShtYXgoMCwgd2lkdGgoKSAt
IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgpLApAQCAtMjUxLDYgKzI2Myw3IEBAIEludFJlY3QgU2Ny
b2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Ny
b2xsYmFycyBzY29sCiAKICAgICBGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRTaXplID0gdW5zY2Fs
ZWRWaXNpYmxlQ29udGVudFNpemUoc2NvbGxiYXJJbmNsdXNpb24pOwogICAgIHZpc2libGVDb250
ZW50U2l6ZS5zY2FsZSgxIC8gdmlzaWJsZUNvbnRlbnRTY2FsZUZhY3RvcigpKTsKKwogICAgIHJl
dHVybiBJbnRSZWN0KEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0KSwgZXhwYW5kZWRJbnRTaXplKHZp
c2libGVDb250ZW50U2l6ZSkpOwogfQogI2VuZGlmCkBAIC02MDIsNyArNjE1LDggQEAgdm9pZCBT
Y3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRlc2lyZWRPZmZzZXQp
CiAgICAgICAgIGludCBjbGllbnRIZWlnaHQgPSB2aXNpYmxlSGVpZ2h0KCk7CiAgICAgICAgIGlu
dCBwYWdlU3RlcCA9IG1heChtYXg8aW50PihjbGllbnRIZWlnaHQgKiBTY3JvbGxiYXI6Om1pbkZy
YWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBjbGllbnRIZWlnaHQgLSBTY3JvbGxiYXI6Om1heE92
ZXJsYXBCZXR3ZWVuUGFnZXMoKSksIDEpOwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV92ZXJ0
aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkpOwotICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHdp
ZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLCAKKyAgICAgICAgaW50IHNjcm9s
bGJhck9mZnNldCA9IG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQgPyAwIDogKHdpZHRoKCkgLSBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpKTsKKyAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzY3Jv
bGxiYXJPZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodCgpIC0gKG1faG9yaXpvbnRhbFNjcm9sbGJhciA/IG1faG9yaXpvbnRh
bFNjcm9sbGJhci0+aGVpZ2h0KCkgOiAwKSk7CkBAIC02NTQsNyArNjY4LDcgQEAgSW50UmVjdCBT
Y3JvbGxWaWV3OjpyZWN0VG9Db3B5T25TY3JvbGwoKSBjb25zdAogICAgIGlmIChoYXNPdmVybGF5
U2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gKHZl
cnRpY2FsU2Nyb2xsYmFyKCkgJiYgIWhhc0xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgPyB2
ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMDsKICAgICAgICAgaW50IGhvcml6b250YWxT
Y3JvbGxiYXJIZWlnaHQgPSAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFoYXNMYXllckZvckhv
cml6b250YWxTY3JvbGxiYXIoKSkgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDog
MDsKLSAgICAgICAgCisKICAgICAgICAgc2Nyb2xsVmlld1JlY3Quc2V0V2lkdGgoc2Nyb2xsVmll
d1JlY3Qud2lkdGgoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgpOwogICAgICAgICBzY3JvbGxW
aWV3UmVjdC5zZXRIZWlnaHQoc2Nyb2xsVmlld1JlY3QuaGVpZ2h0KCkgLSBob3Jpem9udGFsU2Ny
b2xsYmFySGVpZ2h0KTsKICAgICB9CkBAIC0xMDkxLDYgKzExMDUsOCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkK
IAogICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoeCgpLCB5KCkpOwogICAgICAgICBkb2N1bWVu
dERpcnR5UmVjdC5tb3ZlQnkoLWxvY2F0aW9uKCkpOworICAgICAgICBpZiAobV9wbGFjZVNjcm9s
bGJhck9uTGVmdCkKKyAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoKCksIDApOwogCiAgICAgICAgIGlmICghcGFpbnRzRW50aXJlQ29udGVudHMoKSkg
ewogICAgICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKC1zY3JvbGxYKCksIC1zY3JvbGxZKCkp
OwpAQCAtMTEyNiwxMiArMTE0MiwyNCBAQCB2b2lkIFNjcm9sbFZpZXc6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcGFpbnRQYW5T
Y3JvbGxJY29uKGNvbnRleHQpOwogfQogCitpbnQgU2Nyb2xsVmlldzo6dmVydGljYWxTY3JvbGxi
YXJXaWR0aCgpIGNvbnN0Cit7CisgICAgaWYgKHZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZlcnRp
Y2FsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICByZXR1cm4gdmVy
dGljYWxTY3JvbGxiYXIoKS0+d2lkdGgoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IFNjcm9s
bFZpZXc6Omhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdAoreworICAgIGlmIChob3Jp
em9udGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Ny
b2xsYmFyKCkpCisgICAgICAgIHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCktPndpZHRoKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgU2Nyb2xsVmlldzo6Y2FsY3VsYXRlT3ZlcmhhbmdB
cmVhc0ZvclBhaW50aW5nKEludFJlY3QmIGhvcml6b250YWxPdmVyaGFuZ1JlY3QsIEludFJlY3Qm
IHZlcnRpY2FsT3ZlcmhhbmdSZWN0KQogewotICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRo
ID0gKHZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIXZlcnRpY2FsU2Nyb2xsYmFyKCktPmlzT3Zlcmxh
eVNjcm9sbGJhcigpKQotICAgICAgICA/IHZlcnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCkgOiAw
OwotICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gKGhvcml6b250YWxTY3JvbGxi
YXIoKSAmJiAhaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKLSAg
ICAgICAgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDogMDsKKyAgICBpbnQgdmVy
dGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKKyAg
ICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IHRoaXMtPmhvcml6b250YWxTY3JvbGxi
YXJIZWlnaHQoKTsKIAogICAgIGludCBwaHlzaWNhbFNjcm9sbFkgPSBzY3JvbGxQb3NpdGlvbigp
LnkoKSArIHNjcm9sbE9yaWdpbigpLnkoKTsKICAgICBpZiAocGh5c2ljYWxTY3JvbGxZIDwgMCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDg4MDU1NGViYjNjNDQzZGVi
NWMwNWVkNDMzYTE5YmM1NzJmNDA3ZTEuLjE2YmRkZDUyMGQwMjhmMTRjN2I3MTdmM2RiMjdkMGU4
NzQ1YzgxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTc4LDYgKzc4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVydGljYWxTY3JvbGxiYXIuZ2V0KCk7IH0KICAg
ICBib29sIGlzU2Nyb2xsVmlld1Njcm9sbGJhcihjb25zdCBXaWRnZXQqIGNoaWxkKSBjb25zdCB7
IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgPT0gY2hpbGQgfHwgdmVydGljYWxTY3JvbGxi
YXIoKSA9PSBjaGlsZDsgfQogCisgICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSBjb25z
dDsKKyAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpIGNvbnN0OworCiAgICAgdm9p
ZCBwb3NpdGlvblNjcm9sbGJhckxheWVycygpOwogCiAgICAgLy8gRnVuY3Rpb25zIGZvciBzZXR0
aW5nIGFuZCByZXRyaWV2aW5nIHRoZSBzY3JvbGxpbmcgbW9kZSBpbiBlYWNoIGF4aXMgKGhvcml6
b250YWwvdmVydGljYWwpLiBUaGUgbW9kZSBoYXMgdmFsdWVzIG9mCkBAIC0xMzQsNiArMTM3LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhbkJsaXRPblNjcm9sbChib29sKTsKICAgICBib29s
IGNhbkJsaXRPblNjcm9sbCgpIGNvbnN0OwogCisgICAgLy8gV2hldGhlciBjb250ZW50IGFuZCBz
Y3JvbGxiYXJzIHNob3VsZCBiZSBsYXllZCBvdXQgcmlnaHQgdG8gbGVmdCBpbnN0ZWFkIG9mIGxl
ZnQgdG8gcmlnaHQuCisgICAgYm9vbCBwbGFjZVNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAg
IHZvaWQgc2V0UGxhY2VTY3JvbGxiYXJPbkxlZnQoYm9vbCk7CisKICAgICAvLyBUaGUgdmlzaWJs
ZSBjb250ZW50IHJlY3QgaGFzIGEgbG9jYXRpb24gdGhhdCBpcyB0aGUgc2Nyb2xsZWQgb2Zmc2V0
IG9mIHRoZSBkb2N1bWVudC4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIHRoZSB2aWV3cG9ydCB3
aWR0aAogICAgIC8vIGFuZCBoZWlnaHQuIEJ5IGRlZmF1bHQgdGhlIHNjcm9sbGJhcnMgdGhlbXNl
bHZlcyBhcmUgZXhjbHVkZWQgZnJvbSB0aGlzIHJlY3RhbmdsZSwgYnV0IGFuIG9wdGlvbmFsIGJv
b2xlYW4gYXJndW1lbnQgYWxsb3dzIHRoZW0gdG8gYmUKICAgICAvLyBpbmNsdWRlZC4KQEAgLTM3
MSw2ICszNzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wYWludHNFbnRpcmVDb250ZW50czsK
ICAgICBib29sIG1fY2xpcHNSZXBhaW50czsKICAgICBib29sIG1fZGVsZWdhdGVzU2Nyb2xsaW5n
OworICAgIGJvb2wgbV9wbGFjZVNjcm9sbGJhck9uTGVmdDsKIAogICAgIHZvaWQgaW5pdCgpOwog
ICAgIHZvaWQgZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA5YmNiY2FiMjg1MzU2YjY5ZjNhY2M0OTg2Nzlm
YmI5NTZmZTlkZjUwLi5iYjM2OGNhOWRhYjYyODZlNWIyMDA1MTkwYTYxYjQwZjFmNjY0YmM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmNwcApAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUgPHFhYnN0cmFjdGFuaW1hdGlvbi5oPgog
I2luY2x1ZGUgPHFkZWJ1Zy5oPgogI2luY2x1ZGUgPHFldmVudGxvb3AuaD4KKyNpbmNsdWRlIDxx
Z3VpYXBwbGljYXRpb24uaD4KICNpbmNsdWRlIDxxd2luZG93Lmg+CiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNzU3LDYgKzc1OCwxMSBA
QCBib29sIENocm9tZUNsaWVudFF0OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudFF0OjpzaG91bGRQbGFjZVNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFFHdWlBcHBsaWNhdGlvbjo6bGF5b3V0RGlyZWN0
aW9uKCkgPT0gUXQ6OlJpZ2h0VG9MZWZ0OworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVF0KGNsaWVudCwgdGhpcykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CmluZGV4IDlkNWJhYWNhZTNlYTc1ODYxNGQ5NmIxYzgzYmE1YTI4NTI4MmUwOGIuLjZiNjdmZThj
MDMzMmQ0Njg0MTZkMDVjOGFmYjlmM2U0YTlhMGRlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTIwMCw2ICsyMDAsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJD
b3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBPVkVSUklERTsK
KwogICAgIFFXZWJGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKiBjcmVhdGVGdWxsU2NyZWVuVmlkZW9I
YW5kbGVyKCk7CiAKICAgICBRV2ViUGFnZUFkYXB0ZXIqIG1fd2ViUGFnZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCmluZGV4
IDc2MzNiZjc4ZGFjZTBhZGJkYmJiYjg0MTAxNjEwNTBkMGQ1YWE0MjUuLmRkYTBhZTVkN2VhODFl
YzNhYjBmZmMwMThmMTgwZmY5NmNjYjU4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcApAQCAtNTM0LDYgKzUzNCwxMCBA
QCB2b2lkIFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJlbGF0aXZlQ29vcmRzKFFQYWludGVyKiBw
YWludGVyLCBpbnQgbGF5ZXJzLCBjb25zdAogCiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0
ZSh4LCB5KTsKICAgICAgICAgICAgIHJlY3QudHJhbnNsYXRlKC14LCAteSk7CisgICAgICAgICAg
ICBpZiAodmlldy0+cGxhY2VTY3JvbGxiYXJPbkxlZnQoKSkgeworICAgICAgICAgICAgICAgIGNv
bnRleHQudHJhbnNsYXRlKHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCk7CisgICAg
ICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoLXZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgo
KSwgMCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2Ny
b2xsWCwgLXNjcm9sbFkpOwogICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoc2Nyb2xsWCwgc2Ny
b2xsWSk7CiAgICAgICAgICAgICBjb250ZXh0LmNsaXAodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212593</attachid>
            <date>2013-09-25 09:59:40 -0700</date>
            <delta_ts>2013-09-26 03:43:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121224-20130925185939.patch</filename>
            <type>text/plain</type>
            <size>18668</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEzMTRiMDAwNTdmYWM3
OTg5NzBjMTk1Mzc3MzRlZGUyMzFhNmY5MS4uNDFhN2IzZjMwZjM5ZGNkMjRjYTRiZjAyNzczYzNl
ZDIxOWI5M2YxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA5LTI1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1
cHBvcnQgaGF2aW5nIHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxheW91dCBvZiBzY3JvbGxiYXJzIGluIFNjcm9sbFZp
ZXcuCisKKyAgICAgICAgVGVzdDogc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRt
bAorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6c2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aW5pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpTY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYWNlU2Ny
b2xsYmFyT25MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFBsYWNlU2Ny
b2xsYmFyT25MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVD
b250ZW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnJlY3RUb0NvcHlPblNjcm9sbCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3Ojp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6Omhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6Y2FsY3VsYXRlT3ZlcmhhbmdBcmVhc0ZvclBhaW50aW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0UGxhY2VTY3JvbGxiYXJPbkxlZnQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDEzLTA5LTI1ICBBbGJlcnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5j
b20+CiAKICAgICAgICAgRml4IHdhcm5pbmcgaW4gbWFrZXByb3AucGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggYTM3OWRiYmFhMWFhN2JhMjk1MGU4MTJlZjg1ZTY5NGY2MWEzZTIxNC4uMzhlNTVlMTA0MTJi
MWFkMTQ1Y2U1MzUxMTg1ZmYyMGI0MjMxZjY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
OSBAQAogMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRp
Z2lhLmNvbT4KIAorICAgICAgICBTdXBwb3J0IGhhdmluZyBzY3JvbGxiYXJzIG9uIHRoZSBsZWZ0
IGluIHJpZ2h0LXRvLWxlZnQgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUgbGVmdCB3
aGVuIFFHdWlBcHBsaWNhdGlvbiBpcyBzZXQgdG8gcmlnaHQtdG8tbGVmdCBsYXlvdXQuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9R
V2ViRnJhbWVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJl
bGF0aXZlQ29vcmRzKToKKworMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRdIEZpeCBidWlsZCB3aXRoIFF0IDUu
MiBRdFBvc2l0aW9uIG1vZHVsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxMDg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDFj
M2EwYmU0M2NkMDk1MjQ4Yzg5N2Y5ZWQ5OTE0OTA4NDE0OWVlZDcuLmUxNDE5OWIxYjEwNDgwYWE3
MjJmYjAyY2YxOWIwZTJiNTczMDQyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApA
QCAtMjQwLDYgKzI0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJs
dXIoY29uc3QgTm9kZSopIHsgfTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRF
bnRpcmVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IHNob3VsZFBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBBbGxvd3MgcG9ydHMgdG8g
Y3VzdG9taXplIHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVkIGJ5IHRoaXMgcGFn
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBkMTMxZjQwZTM4ODYwNmJjOWJjOTNm
ZGQwYWU1NmM3OTczZGI0MDgzLi43NjQ5Y2RmZjkzZDM4MWY5NzliNjVhYjQ1ZTgzZTM1MzlmNjNj
YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNDcsNiArMzQ3LDggQEAgdm9p
ZCBGcmFtZVZpZXc6OmluaXQoKQogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKICAg
ICBpZiAocGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRQYWludEVudGlyZUNv
bnRlbnRzKCkpCiAgICAgICAgIHNldFBhaW50c0VudGlyZUNvbnRlbnRzKHRydWUpOworICAgIGlm
IChwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFBsYWNlU2Nyb2xsYmFyT25M
ZWZ0KCkpCisgICAgICAgIHNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KHRydWUpOwogfQogICAgIAog
dm9pZCBGcmFtZVZpZXc6OnByZXBhcmVGb3JEZXRhY2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAppbmRleCAxOGIwZTJkYzRjY2IxY2E5NDQ2MzQ5NzcxNDZlZGQ1NWFlZDk2
Yzc4Li45YmMwNTBiMDgwYTI3MmNkZDVlMmNhYTEwMzhkY2NkMjEwYjVlOGNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTYsNiArNTYsNyBAQCBTY3JvbGxWaWV3
OjpTY3JvbGxWaWV3KCkKICAgICAsIG1fcGFpbnRzRW50aXJlQ29udGVudHMoZmFsc2UpCiAgICAg
LCBtX2NsaXBzUmVwYWludHModHJ1ZSkKICAgICAsIG1fZGVsZWdhdGVzU2Nyb2xsaW5nKGZhbHNl
KQorICAgICwgbV9wbGFjZVNjcm9sbGJhck9uTGVmdChmYWxzZSkKIHsKIH0KIApAQCAtNjMsNiAr
NjQsMjAgQEAgU2Nyb2xsVmlldzo6flNjcm9sbFZpZXcoKQogewogfQogCitib29sIFNjcm9sbFZp
ZXc6OnBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGFjZVNj
cm9sbGJhck9uTGVmdDsKK30KKwordm9pZCBTY3JvbGxWaWV3OjpzZXRQbGFjZVNjcm9sbGJhck9u
TGVmdChib29sIGIpCit7CisgICAgaWYgKG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQgPT0gYikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wbGFjZVNjcm9sbGJhck9uTGVmdCA9IGI7CisgICAgdXBk
YXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7Cit9CisKIHZvaWQgU2Nyb2xsVmlldzo6YWRk
Q2hpbGQoUGFzc1JlZlB0cjxXaWRnZXQ+IHBycENoaWxkKSAKIHsKICAgICBXaWRnZXQqIGNoaWxk
ID0gcHJwQ2hpbGQuZ2V0KCk7CkBAIC0yNTAsMTAgKzI2NSw4IEBAIEludFNpemUgU2Nyb2xsVmll
dzo6dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNT
Y3JvbGxiCiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSAwOwogCiAgICAgaWYg
KHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Nyb2xsYmFycykgewotICAgICAgICBpZiAo
U2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2FsU2Nyb2xsYmFyKCkpCi0gICAgICAgICAg
ICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRpY2FsQmFyLT5pc092ZXJsYXlTY3JvbGxi
YXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsKLSAgICAgICAgaWYgKFNjcm9sbGJhciog
aG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxiYXIoKSkKLSAgICAgICAgICAgIGhvcml6
b250YWxTY3JvbGxiYXJIZWlnaHQgPSAhaG9yaXpvbnRhbEJhci0+aXNPdmVybGF5U2Nyb2xsYmFy
KCkgPyBob3Jpem9udGFsQmFyLT5oZWlnaHQoKSA6IDA7CisgICAgICAgIHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CisgICAgICAgIGhvcml6
b250YWxTY3JvbGxiYXJIZWlnaHQgPSB0aGlzLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCk7
CiAgICAgfQogCiAgICAgcmV0dXJuIEludFNpemUobWF4KDAsIHdpZHRoKCkgLSB2ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKSwKQEAgLTI3MSw2ICsyODQsNyBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OnZp
c2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRlc1Njcm9sbGJhcnMgc2Nv
bAogCiAgICAgRmxvYXRTaXplIHZpc2libGVDb250ZW50U2l6ZSA9IHVuc2NhbGVkVmlzaWJsZUNv
bnRlbnRTaXplKHNjb2xsYmFySW5jbHVzaW9uKTsKICAgICB2aXNpYmxlQ29udGVudFNpemUuc2Nh
bGUoMSAvIHZpc2libGVDb250ZW50U2NhbGVGYWN0b3IoKSk7CisKICAgICByZXR1cm4gSW50UmVj
dChJbnRQb2ludChtX3Njcm9sbE9mZnNldCksIGV4cGFuZGVkSW50U2l6ZSh2aXNpYmxlQ29udGVu
dFNpemUpKTsKIH0KICNlbmRpZgpAQCAtNjQwLDcgKzY1NCw4IEBAIHZvaWQgU2Nyb2xsVmlldzo6
dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICBp
bnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgpOwogICAgICAgICBpbnQgcGFnZVN0ZXAg
PSBtYXgobWF4PGludD4oY2xpZW50SGVpZ2h0ICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3Rl
cFdoZW5QYWdpbmcoKSwgY2xpZW50SGVpZ2h0IC0gU2Nyb2xsYmFyOjptYXhPdmVybGFwQmV0d2Vl
blBhZ2VzKCkpLCAxKTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxi
YXItPmZyYW1lUmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2QmFyUmVjdCh3aWR0aCgpIC0gbV92
ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwgCisgICAgICAgIGludCBzY3JvbGxiYXJPZmZzZXQg
PSBtX3BsYWNlU2Nyb2xsYmFyT25MZWZ0ID8gMCA6ICh3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9s
bGJhci0+d2lkdGgoKSk7CisgICAgICAgIEludFJlY3QgdkJhclJlY3Qoc2Nyb2xsYmFyT2Zmc2V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
bV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWlnaHQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXIt
PmhlaWdodCgpIDogMCkpOwpAQCAtNjkyLDcgKzcwNyw3IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6
cmVjdFRvQ29weU9uU2Nyb2xsKCkgY29uc3QKICAgICBpZiAoaGFzT3ZlcmxheVNjcm9sbGJhcnMo
KSkgewogICAgICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9ICh2ZXJ0aWNhbFNjcm9s
bGJhcigpICYmICFoYXNMYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpID8gdmVydGljYWxTY3Jv
bGxiYXIoKS0+d2lkdGgoKSA6IDA7CiAgICAgICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVp
Z2h0ID0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaGFzTGF5ZXJGb3JIb3Jpem9udGFsU2Ny
b2xsYmFyKCkpID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7Ci0gICAgICAg
IAorCiAgICAgICAgIHNjcm9sbFZpZXdSZWN0LnNldFdpZHRoKHNjcm9sbFZpZXdSZWN0LndpZHRo
KCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKTsKICAgICAgICAgc2Nyb2xsVmlld1JlY3Quc2V0
SGVpZ2h0KHNjcm9sbFZpZXdSZWN0LmhlaWdodCgpIC0gaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdo
dCk7CiAgICAgfQpAQCAtMTEyOSw2ICsxMTQ0LDggQEAgdm9pZCBTY3JvbGxWaWV3OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICAgICAg
Y29udGV4dC0+dHJhbnNsYXRlKHgoKSwgeSgpKTsKICAgICAgICAgZG9jdW1lbnREaXJ0eVJlY3Qu
bW92ZUJ5KC1sb2NhdGlvbigpKTsKKyAgICAgICAgaWYgKG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQp
CisgICAgICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUodmVydGljYWxTY3JvbGxiYXJXaWR0aCgp
LCAwKTsKIAogICAgICAgICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpIHsKICAgICAgICAg
ICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc2Nyb2xsWCgpLCAtc2Nyb2xsWSgpKTsKQEAgLTExNjQs
MTIgKzExODEsMjQgQEAgdm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHBhaW50UGFuU2Nyb2xsSWNvbihj
b250ZXh0KTsKIH0KIAoraW50IFNjcm9sbFZpZXc6OnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSBj
b25zdAoreworICAgIGlmICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNjcm9sbGJh
cigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKKyAgICAgICAgcmV0dXJuIHZlcnRpY2FsU2Nyb2xs
YmFyKCktPndpZHRoKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBTY3JvbGxWaWV3Ojpob3Jp
em9udGFsU2Nyb2xsYmFySGVpZ2h0KCkgY29uc3QKK3sKKyAgICBpZiAoaG9yaXpvbnRhbFNjcm9s
bGJhcigpICYmICFob3Jpem9udGFsU2Nyb2xsYmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKQor
ICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT53aWR0aCgpOworICAgIHJldHVy
biAwOworfQorCiB2b2lkIFNjcm9sbFZpZXc6OmNhbGN1bGF0ZU92ZXJoYW5nQXJlYXNGb3JQYWlu
dGluZyhJbnRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdSZWN0LCBJbnRSZWN0JiB2ZXJ0aWNhbE92
ZXJoYW5nUmVjdCkKIHsKLSAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9ICh2ZXJ0aWNh
bFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIo
KSkKLSAgICAgICAgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMDsKLSAgICBpbnQg
aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9udGFsU2Nyb2xsYmFyKCkgJiYgIWhv
cml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xsYmFyKCkpCi0gICAgICAgID8gaG9y
aXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7CisgICAgaW50IHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CisgICAgaW50IGhvcml6
b250YWxTY3JvbGxiYXJIZWlnaHQgPSB0aGlzLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCk7
CiAKICAgICBpbnQgcGh5c2ljYWxTY3JvbGxZID0gc2Nyb2xsUG9zaXRpb24oKS55KCkgKyBzY3Jv
bGxPcmlnaW4oKS55KCk7CiAgICAgaWYgKHBoeXNpY2FsU2Nyb2xsWSA8IDApIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCAzY2I0YjAzMTEyZWU3YTY4YjVlMmFkMGEyYjY3
MDM3OGJmYTlmNTkxLi43NWEyZWI2NTczYWY0ODVhMzliNzIyOWIxM2FiMjY1MjRhMzQ5YjM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC03OCw2ICs3OCw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpOyB9CiAgICAgYm9vbCBpc1Nj
cm9sbFZpZXdTY3JvbGxiYXIoY29uc3QgV2lkZ2V0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gaG9y
aXpvbnRhbFNjcm9sbGJhcigpID09IGNoaWxkIHx8IHZlcnRpY2FsU2Nyb2xsYmFyKCkgPT0gY2hp
bGQ7IH0KIAorICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgY29uc3Q7CisgICAgaW50
IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdDsKKwogICAgIHZvaWQgcG9zaXRpb25T
Y3JvbGxiYXJMYXllcnMoKTsKIAogICAgIC8vIEZ1bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgcmV0
cmlldmluZyB0aGUgc2Nyb2xsaW5nIG1vZGUgaW4gZWFjaCBheGlzIChob3Jpem9udGFsL3ZlcnRp
Y2FsKS4gVGhlIG1vZGUgaGFzIHZhbHVlcyBvZgpAQCAtMTM0LDYgKzEzNywxMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRDYW5CbGl0T25TY3JvbGwoYm9vbCk7CiAgICAgYm9vbCBjYW5CbGl0T25T
Y3JvbGwoKSBjb25zdDsKIAorICAgIC8vIFdoZXRoZXIgY29udGVudCBhbmQgc2Nyb2xsYmFycyBz
aG91bGQgYmUgbGF5ZWQgb3V0IHJpZ2h0IHRvIGxlZnQgaW5zdGVhZCBvZiBsZWZ0IHRvIHJpZ2h0
LgorICAgIGJvb2wgcGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBjb25zdDsKKyAgICB2b2lkIHNldFBs
YWNlU2Nyb2xsYmFyT25MZWZ0KGJvb2wpOworCiAgICAgLy8gVGhlIHZpc2libGUgY29udGVudCBy
ZWN0IGhhcyBhIGxvY2F0aW9uIHRoYXQgaXMgdGhlIHNjcm9sbGVkIG9mZnNldCBvZiB0aGUgZG9j
dW1lbnQuIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSB0aGUgdmlld3BvcnQgd2lkdGgKICAgICAv
LyBhbmQgaGVpZ2h0LiBCeSBkZWZhdWx0IHRoZSBzY3JvbGxiYXJzIHRoZW1zZWx2ZXMgYXJlIGV4
Y2x1ZGVkIGZyb20gdGhpcyByZWN0YW5nbGUsIGJ1dCBhbiBvcHRpb25hbCBib29sZWFuIGFyZ3Vt
ZW50IGFsbG93cyB0aGVtIHRvIGJlCiAgICAgLy8gaW5jbHVkZWQuCkBAIC0zNzMsNiArMzgwLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcGFpbnRzRW50aXJlQ29udGVudHM7CiAgICAgYm9vbCBt
X2NsaXBzUmVwYWludHM7CiAgICAgYm9vbCBtX2RlbGVnYXRlc1Njcm9sbGluZzsKKyAgICBib29s
IG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQ7CiAKICAgICB2b2lkIGluaXQoKTsKICAgICB2b2lkIGRl
c3Ryb3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzYjc4Zjg1M2Y3
NzU5NTUwMDQwMDkxYzZmNmUwNzk3MzRmODgzODZkLi5mZGE2Y2IzY2IyMTFiNzRkYjYxYzdiNDAx
NzlkNjIyNjM4ZGVjOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0y
NTEsMTMgKzI1MSwxNiBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQ
YWdlKiBwYWdlKQogICAgIHBhZ2UtPnNldFBhZ2VTY2FsZUZhY3RvcigxLCBJbnRQb2ludCgwLCAw
KSk7CiAgICAgcGFnZS0+c2V0UGFnaW5hdGlvbihQYWdpbmF0aW9uKCkpOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEZyYW1lVmlldyogbWFpbkZyYW1lVmlldyA9IHBh
Z2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKG1haW5GcmFtZVZpZXcpIHsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0SGVh
ZGVySGVpZ2h0KDApOwogICAgICAgICBtYWluRnJhbWVWaWV3LT5zZXRGb290ZXJIZWlnaHQoMCk7
CiAgICAgfQogI2VuZGlmCisgICAgaWYgKG1haW5GcmFtZVZpZXcpCisgICAgICAgIG1haW5GcmFt
ZVZpZXctPnNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGZhbHNlKTsKKwogICAgIFRleHRSdW46OnNl
dEFsbG93c1JvdW5kaW5nSGFja3MoZmFsc2UpOwogICAgIFdlYkNvcmU6Om92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5n
czo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKQEAgLTgyNiw2ICs4MjksMTYgQEAg
dm9pZCBJbnRlcm5hbHM6OnNldFBhZ2luYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIG1vZGUsIGludCBnYXAsIGkKICAgICBwYWdlLT5zZXRQYWdpbmF0aW9uKHBhZ2luYXRp
b24pOwogfQogCit2b2lkIEludGVybmFsczo6c2V0UGxhY2VTY3JvbGxiYXJPbkxlZnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC0+dmll
dygpLT5zZXRQbGFjZVNjcm9sbGJhck9uTGVmdChlbmFibGVkKTsKK30KKwogU3RyaW5nIEludGVy
bmFsczo6Y29uZmlndXJhdGlvbkZvclZpZXdwb3J0KERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQg
ZGV2aWNlUGl4ZWxSYXRpbywgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQg
YXZhaWxhYmxlV2lkdGgsIGludCBhdmFpbGFibGVIZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IGI3MmMxOTg3ZDY1NGEzMDdiYjcxZmZmZDZjZGI5ODg3ZWNj
ZjU4MWMuLmM1ZDJmMzVmYTU3MDQzZTk3OTUzZmQwODA4OWNhZmZmMzhjNWE3NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTQyLDYgKzE0Miw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFBhZ2luYXRpb24oRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAs
IGludCBwYWdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIGNvbmZpZ3VyYXRp
b25Gb3JWaWV3cG9ydChEb2N1bWVudCosIGZsb2F0IGRldmljZVBpeGVsUmF0aW8sIGludCBkZXZp
Y2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxh
YmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIHNldFBsYWNlU2Nyb2xsYmFy
T25MZWZ0KERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBi
b29sIHdhc0xhc3RDaGFuZ2VVc2VyRWRpdChFbGVtZW50KiB0ZXh0RmllbGQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBib29sIGVsZW1lbnRTaG91bGRBdXRvQ29tcGxldGUoRWxlbWVudCogaW5wdXRF
bGVtZW50LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIHN1Z2dlc3RlZFZhbHVlKEVsZW1l
bnQqIGlucHV0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCmluZGV4IDllZjdiMzdmZmUzN2U0NWNjZTU3NTUwOWVmOWQ3NjBmMGNhNjM2MjMu
LmYwYmM0ZGQ5NzZiMDczOTYwYzA3MmNiODQ5ZGY1ZDQ4YmVlYWM4MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkyLDYgKzkyLDggQEAKIAogICAgIFtSYWlzZXNFeGNl
cHRpb25dIHZvaWQgc2V0UGFnaW5hdGlvbihEb2N1bWVudCBkb2N1bWVudCwgRE9NU3RyaW5nIG1v
ZGUsIGxvbmcgZ2FwLCBvcHRpb25hbCBsb25nIHBhZ2VMZW5ndGgpOwogCisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBzZXRQbGFjZVNjcm9sbGJhck9uTGVmdChEb2N1bWVudCBkb2N1bWVudCwg
Ym9vbGVhbiBlbmFibGVkKTsKKwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBjb25m
aWd1cmF0aW9uRm9yVmlld3BvcnQoRG9jdW1lbnQgZG9jdW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXZpY2VXaWR0aCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXgg
OWJjYmNhYjI4NTM1NmI2OWYzYWNjNDk4Njc5ZmJiOTU2ZmU5ZGY1MC4uYmIzNjhjYTlkYWI2Mjg2
ZTViMjAwNTE5MGE2MWI0MGYxZjY2NGJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTcyLDYgKzcyLDcgQEAKICNpbmNs
dWRlIDxxYWJzdHJhY3RhbmltYXRpb24uaD4KICNpbmNsdWRlIDxxZGVidWcuaD4KICNpbmNsdWRl
IDxxZXZlbnRsb29wLmg+CisjaW5jbHVkZSA8cWd1aWFwcGxpY2F0aW9uLmg+CiAjaW5jbHVkZSA8
cXdpbmRvdy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KQEAgLTc1Nyw2ICs3NTgsMTEgQEAgYm9vbCBDaHJvbWVDbGllbnRRdDo6aGFzT3Bl
bmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWVDbGll
bnRRdDo6c2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAoreworICAgIHJldHVybiBR
R3VpQXBwbGljYXRpb246OmxheW91dERpcmVjdGlvbigpID09IFF0OjpSaWdodFRvTGVmdDsKK30K
KwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQb3B1cE1lbnVRdChjbGllbnQsIHRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCA5ZDViYWFjYWUzZWE3NTg2MTRkOTZi
MWM4M2JhNWEyODUyODJlMDhiLi42YjY3ZmU4YzAzMzJkNDY4NDE2ZDA1YzhhZmI5ZjNlNGE5YTBk
ZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oCkBAIC0yMDAsNiArMjAwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0No
YW5nZWQodW5zaWduZWQpIHsgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgT1ZFUlJJREU7CisKICAgICBRV2ViRnVsbFNjcmVlblZpZGVvSGFu
ZGxlciogY3JlYXRlRnVsbFNjcmVlblZpZGVvSGFuZGxlcigpOwogCiAgICAgUVdlYlBhZ2VBZGFw
dGVyKiBtX3dlYlBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9RV2ViRnJhbWVBZGFwdGVyLmNwcAppbmRleCA3NjMzYmY3OGRhY2UwYWRiZGJiYmI4NDEwMTYx
MDUwZDBkNWFhNDI1Li5kZGEwYWU1ZDdlYTgxZWMzYWIwZmZjMDE4ZjE4MGZmOTZjY2I1ODQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRh
cHRlci5jcHAKQEAgLTUzNCw2ICs1MzQsMTAgQEAgdm9pZCBRV2ViRnJhbWVBZGFwdGVyOjpyZW5k
ZXJSZWxhdGl2ZUNvb3JkcyhRUGFpbnRlciogcGFpbnRlciwgaW50IGxheWVycywgY29uc3QKIAog
ICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoeCwgeSk7CiAgICAgICAgICAgICByZWN0LnRy
YW5zbGF0ZSgteCwgLXkpOworICAgICAgICAgICAgaWYgKHZpZXctPnBsYWNlU2Nyb2xsYmFyT25M
ZWZ0KCkpIHsKKyAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSh2aWV3LT52ZXJ0aWNh
bFNjcm9sbGJhcldpZHRoKCksIDApOworICAgICAgICAgICAgICAgIHJlY3QudHJhbnNsYXRlKC12
aWV3LT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOworICAgICAgICAgICAgfQogICAgICAg
ICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNjcm9sbFgsIC1zY3JvbGxZKTsKICAgICAgICAgICAg
IHJlY3QudHJhbnNsYXRlKHNjcm9sbFgsIHNjcm9sbFkpOwogICAgICAgICAgICAgY29udGV4dC5j
bGlwKHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NGI1OTJjNDEwYjFkZTdl
YjJkYWRlMTkyMjA5YmEzMzE3NWI0YTg0Li42NzAwOTYxYjQxNmQ0YjcxZjNlZDFkMjViN2IzYzky
ZDM5NTBiZmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDktMjUgIEFsbGFuIFNhbmRm
ZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBo
YXZpbmcgc2Nyb2xsYmFycyBvbiB0aGUgbGVmdCBpbiByaWdodC10by1sZWZ0IGxheW91dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMjI0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzY3JvbGxiYXJz
L3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHNj
cm9sbGJhcnMvc2Nyb2xsYmFyLW9uLXRoZS1sZWZ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRtbDogQWRkZWQuCisKIDIw
MTMtMDktMjUgIFNhbmdoeXVwIExlZSAgPHNoNTMubGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBVbnNraXAgcGFzc2luZyBmYXN0L3RleHQvZm9u
dC1rZXJuaW5nLmh0bWwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9s
bGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Nj
cm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNiYzdkM2YzNzFh
NWM2NDM2YTgyNmJjZjRlNmQxNzI2NTY4NTJkNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzM0
Mwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6b0NPfHsjUzlG
NU0/amN5c3kzZkEKelAqQWhQSEtIVXJCUS1nQHhIT2pgKSE1aHxJV1orVUhPKGp+KzA1TH4lKTsy
ciM1NjcwRmZHbHtJNWpEYD41ak0+CnowfFFUd3I7QjRxI2hrWnk0e3t6aDVNVmZ7dkJSSj10dnFr
S2ZJKUBxZyl7TlRZb31MZCRRJj1NJWUoZGNANEh8SQp6aDZLbV4rckAjRlR+bDttVX0pJUpVfVJ1
MFZxIyVuSUtkJm56QFZVdjVXR0c0QGJRV3dEK1khU2BSQztLXlh6SD4KellMYUFSVnFpI047YjM1
eEFnSTg9O05VaFlJMnNfTWlHaylCVlZtWGkrdCRHUipJbUdmR3J3WlojR2BefXJQXnFLCnpqME9u
KWRUJXNeakhaeSQ2b1JXJklHUV5+YXxmPjZhZmJFckpubitUd0xTfWhPJSg9RFMzajNeUDY8cl91
b3VKJQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Ny
b2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY0OGIxM2JkODZiZmUxOTI2YTkwMmI1MDE1ZTMyOTVkN2YwYzRmMzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDc4NXgyMDE2CisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXgy
MDE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXgyMDE2CisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4MjAwMAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA3Njl4MjAwMCBbYmdjb2xvcj0jMDAwMEZGXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRtbCBiL0xh
eW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW9uLXRoZS1sZWZ0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzA5ODYxMzUyNjU2ODBlMDM5MGEwMWMyODY0NjI4ZDZlNWY1NTA2NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW9uLXRoZS1sZWZ0Lmh0bWwK
QEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImhlaWdodDoyMDAwcHg7IGJhY2tncm91bmQtY29sb3I6IGJs
dWU7Ij4KKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRQbGFjZVNjcm9sbGJhck9u
TGVmdChkb2N1bWVudCwgdHJ1ZSk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212689</attachid>
            <date>2013-09-26 03:43:32 -0700</date>
            <delta_ts>2013-09-26 06:27:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121224-20130926124331.patch</filename>
            <type>text/plain</type>
            <size>19373</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEzMTRiMDAwNTdmYWM3
OTg5NzBjMTk1Mzc3MzRlZGUyMzFhNmY5MS4uNDFhN2IzZjMwZjM5ZGNkMjRjYTRiZjAyNzczYzNl
ZDIxOWI5M2YxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA5LTI1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1
cHBvcnQgaGF2aW5nIHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxheW91dCBvZiBzY3JvbGxiYXJzIGluIFNjcm9sbFZp
ZXcuCisKKyAgICAgICAgVGVzdDogc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRt
bAorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6c2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aW5pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpTY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYWNlU2Ny
b2xsYmFyT25MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFBsYWNlU2Ny
b2xsYmFyT25MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVD
b250ZW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnJlY3RUb0NvcHlPblNjcm9sbCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3Ojp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6Omhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6Y2FsY3VsYXRlT3ZlcmhhbmdBcmVhc0ZvclBhaW50aW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0UGxhY2VTY3JvbGxiYXJPbkxlZnQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDEzLTA5LTI1ICBBbGJlcnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5j
b20+CiAKICAgICAgICAgRml4IHdhcm5pbmcgaW4gbWFrZXByb3AucGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggYTM3OWRiYmFhMWFhN2JhMjk1MGU4MTJlZjg1ZTY5NGY2MWEzZTIxNC4uMzhlNTVlMTA0MTJi
MWFkMTQ1Y2U1MzUxMTg1ZmYyMGI0MjMxZjY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
OSBAQAogMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRp
Z2lhLmNvbT4KIAorICAgICAgICBTdXBwb3J0IGhhdmluZyBzY3JvbGxiYXJzIG9uIHRoZSBsZWZ0
IGluIHJpZ2h0LXRvLWxlZnQgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUgbGVmdCB3
aGVuIFFHdWlBcHBsaWNhdGlvbiBpcyBzZXQgdG8gcmlnaHQtdG8tbGVmdCBsYXlvdXQuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9R
V2ViRnJhbWVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJl
bGF0aXZlQ29vcmRzKToKKworMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRdIEZpeCBidWlsZCB3aXRoIFF0IDUu
MiBRdFBvc2l0aW9uIG1vZHVsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxMDg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMjJkNzIwM2MyOTRk
MDI4MWFlZjBlMGJhOGYzZGY0MzQ0NDY5MDg5Ni4uMzNlZDI3ZDU2MTkzZmE2NzdiOTQxNjllNTk5
YWRjNzQ5NWQyMzU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTg3LDYgKzg3LDcgQEAgX19a
TjdXZWJDb3JlMTBTY3JvbGxWaWV3MThzZXRGaXhlZExheW91dFNpemVFUktOU183SW50U2l6ZUUK
IF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2ZVNjcm9sbGJhcnNFYgogX19aTjdX
ZWJDb3JlMTBTY3JvbGxWaWV3MjFzZXREZWxlZ2F0ZXNTY3JvbGxpbmdFYgogX19aTjdXZWJDb3Jl
MTBTY3JvbGxWaWV3MjNzZXRQYWludHNFbnRpcmVDb250ZW50c0ViCitfX1pON1dlYkNvcmUxMFNj
cm9sbFZpZXcyM3NldFBsYWNlU2Nyb2xsYmFyT25MZWZ0RWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xs
VmlldzIzc2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRFYmIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmll
dzI0d2luZG93UmVzaXplclJlY3RDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzVw
YWludEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183SW50UmVjdEUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCmluZGV4IDFjM2EwYmU0M2NkMDk1MjQ4Yzg5N2Y5ZWQ5OTE0OTA4NDE0OWVl
ZDcuLmUxNDE5OWIxYjEwNDgwYWE3MjJmYjAyY2YxOWIwZTJiNTczMDQyN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjQwLDYgKzI0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXplIHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVy
cyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBk
MTMxZjQwZTM4ODYwNmJjOWJjOTNmZGQwYWU1NmM3OTczZGI0MDgzLi43NjQ5Y2RmZjkzZDM4MWY5
NzliNjVhYjQ1ZTgzZTM1MzlmNjNjYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0zNDcsNiArMzQ3LDggQEAgdm9pZCBGcmFtZVZpZXc6OmluaXQoKQogICAgIFBhZ2UqIHBhZ2Ug
PSBmcmFtZSgpLnBhZ2UoKTsKICAgICBpZiAocGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5zaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkpCiAgICAgICAgIHNldFBhaW50c0VudGlyZUNv
bnRlbnRzKHRydWUpOworICAgIGlmIChwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNo
b3VsZFBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIHNldFBsYWNlU2Nyb2xsYmFyT25M
ZWZ0KHRydWUpOwogfQogICAgIAogdm9pZCBGcmFtZVZpZXc6OnByZXBhcmVGb3JEZXRhY2goKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAxOGIwZTJkYzRjY2IxY2E5
NDQ2MzQ5NzcxNDZlZGQ1NWFlZDk2Yzc4Li45YmMwNTBiMDgwYTI3MmNkZDVlMmNhYTEwMzhkY2Nk
MjEwYjVlOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTYs
NiArNTYsNyBAQCBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkKICAgICAsIG1fcGFpbnRzRW50aXJl
Q29udGVudHMoZmFsc2UpCiAgICAgLCBtX2NsaXBzUmVwYWludHModHJ1ZSkKICAgICAsIG1fZGVs
ZWdhdGVzU2Nyb2xsaW5nKGZhbHNlKQorICAgICwgbV9wbGFjZVNjcm9sbGJhck9uTGVmdChmYWxz
ZSkKIHsKIH0KIApAQCAtNjMsNiArNjQsMjAgQEAgU2Nyb2xsVmlldzo6flNjcm9sbFZpZXcoKQog
ewogfQogCitib29sIFNjcm9sbFZpZXc6OnBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wbGFjZVNjcm9sbGJhck9uTGVmdDsKK30KKwordm9pZCBTY3JvbGxWaWV3
OjpzZXRQbGFjZVNjcm9sbGJhck9uTGVmdChib29sIGIpCit7CisgICAgaWYgKG1fcGxhY2VTY3Jv
bGxiYXJPbkxlZnQgPT0gYikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wbGFjZVNjcm9sbGJh
ck9uTGVmdCA9IGI7CisgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7Cit9CisK
IHZvaWQgU2Nyb2xsVmlldzo6YWRkQ2hpbGQoUGFzc1JlZlB0cjxXaWRnZXQ+IHBycENoaWxkKSAK
IHsKICAgICBXaWRnZXQqIGNoaWxkID0gcHJwQ2hpbGQuZ2V0KCk7CkBAIC0yNTAsMTAgKzI2NSw4
IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoVmlzaWJs
ZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiCiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJI
ZWlnaHQgPSAwOwogCiAgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Nyb2xs
YmFycykgewotICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2FsU2Ny
b2xsYmFyKCkpCi0gICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRpY2Fs
QmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsKLSAg
ICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxiYXIo
KSkKLSAgICAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSAhaG9yaXpvbnRhbEJh
ci0+aXNPdmVybGF5U2Nyb2xsYmFyKCkgPyBob3Jpem9udGFsQmFyLT5oZWlnaHQoKSA6IDA7Cisg
ICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCk7CisgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSB0aGlzLT5ob3Jpem9u
dGFsU2Nyb2xsYmFySGVpZ2h0KCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEludFNpemUobWF4KDAs
IHdpZHRoKCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKSwKQEAgLTI3MSw2ICsyODQsNyBAQCBJ
bnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgc2NvbAogCiAgICAgRmxvYXRTaXplIHZpc2libGVDb250ZW50U2l6
ZSA9IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKHNjb2xsYmFySW5jbHVzaW9uKTsKICAgICB2
aXNpYmxlQ29udGVudFNpemUuc2NhbGUoMSAvIHZpc2libGVDb250ZW50U2NhbGVGYWN0b3IoKSk7
CisKICAgICByZXR1cm4gSW50UmVjdChJbnRQb2ludChtX3Njcm9sbE9mZnNldCksIGV4cGFuZGVk
SW50U2l6ZSh2aXNpYmxlQ29udGVudFNpemUpKTsKIH0KICNlbmRpZgpAQCAtNjQwLDcgKzY1NCw4
IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNp
cmVkT2Zmc2V0KQogICAgICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgpOwog
ICAgICAgICBpbnQgcGFnZVN0ZXAgPSBtYXgobWF4PGludD4oY2xpZW50SGVpZ2h0ICogU2Nyb2xs
YmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwgY2xpZW50SGVpZ2h0IC0gU2Nyb2xs
YmFyOjptYXhPdmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsKICAgICAgICAgSW50UmVjdCBvbGRS
ZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2
QmFyUmVjdCh3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwgCisgICAgICAg
IGludCBzY3JvbGxiYXJPZmZzZXQgPSBtX3BsYWNlU2Nyb2xsYmFyT25MZWZ0ID8gMCA6ICh3aWR0
aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSk7CisgICAgICAgIEludFJlY3QgdkJh
clJlY3Qoc2Nyb2xsYmFyT2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIgPyBt
X2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpIDogMCkpOwpAQCAtNjkyLDcgKzcwNyw3IEBA
IEludFJlY3QgU2Nyb2xsVmlldzo6cmVjdFRvQ29weU9uU2Nyb2xsKCkgY29uc3QKICAgICBpZiAo
aGFzT3ZlcmxheVNjcm9sbGJhcnMoKSkgewogICAgICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJX
aWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICFoYXNMYXllckZvclZlcnRpY2FsU2Nyb2xs
YmFyKCkpID8gdmVydGljYWxTY3JvbGxiYXIoKS0+d2lkdGgoKSA6IDA7CiAgICAgICAgIGludCBo
b3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaGFz
TGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5o
ZWlnaHQoKSA6IDA7Ci0gICAgICAgIAorCiAgICAgICAgIHNjcm9sbFZpZXdSZWN0LnNldFdpZHRo
KHNjcm9sbFZpZXdSZWN0LndpZHRoKCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKTsKICAgICAg
ICAgc2Nyb2xsVmlld1JlY3Quc2V0SGVpZ2h0KHNjcm9sbFZpZXdSZWN0LmhlaWdodCgpIC0gaG9y
aXpvbnRhbFNjcm9sbGJhckhlaWdodCk7CiAgICAgfQpAQCAtMTEyOSw2ICsxMTQ0LDggQEAgdm9p
ZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKHgoKSwgeSgpKTsKICAgICAg
ICAgZG9jdW1lbnREaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlvbigpKTsKKyAgICAgICAgaWYgKG1f
cGxhY2VTY3JvbGxiYXJPbkxlZnQpCisgICAgICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUodmVy
dGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKIAogICAgICAgICBpZiAoIXBhaW50c0VudGlyZUNv
bnRlbnRzKCkpIHsKICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc2Nyb2xsWCgpLCAt
c2Nyb2xsWSgpKTsKQEAgLTExNjQsMTIgKzExODEsMjQgQEAgdm9pZCBTY3JvbGxWaWV3OjpwYWlu
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAg
IHBhaW50UGFuU2Nyb2xsSWNvbihjb250ZXh0KTsKIH0KIAoraW50IFNjcm9sbFZpZXc6OnZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgoKSBjb25zdAoreworICAgIGlmICh2ZXJ0aWNhbFNjcm9sbGJhcigp
ICYmICF2ZXJ0aWNhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKKyAgICAgICAg
cmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K2ludCBTY3JvbGxWaWV3Ojpob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkgY29uc3QKK3sKKyAg
ICBpZiAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFob3Jpem9udGFsU2Nyb2xsYmFyKCktPmlz
T3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigp
LT53aWR0aCgpOworICAgIHJldHVybiAwOworfQorCiB2b2lkIFNjcm9sbFZpZXc6OmNhbGN1bGF0
ZU92ZXJoYW5nQXJlYXNGb3JQYWludGluZyhJbnRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdSZWN0
LCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCkKIHsKLSAgICBpbnQgdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNjcm9sbGJhcigp
LT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKLSAgICAgICAgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53
aWR0aCgpIDogMDsKLSAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9u
dGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xs
YmFyKCkpCi0gICAgICAgID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7Cisg
ICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCk7CisgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSB0aGlzLT5ob3Jpem9u
dGFsU2Nyb2xsYmFySGVpZ2h0KCk7CiAKICAgICBpbnQgcGh5c2ljYWxTY3JvbGxZID0gc2Nyb2xs
UG9zaXRpb24oKS55KCkgKyBzY3JvbGxPcmlnaW4oKS55KCk7CiAgICAgaWYgKHBoeXNpY2FsU2Ny
b2xsWSA8IDApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCAzY2I0YjAz
MTEyZWU3YTY4YjVlMmFkMGEyYjY3MDM3OGJmYTlmNTkxLi43NWEyZWI2NTczYWY0ODVhMzliNzIy
OWIxM2FiMjY1MjRhMzQ5YjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBA
IC03OCw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcm9sbGJhciogdmVydGljYWxT
Y3JvbGxiYXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdl
dCgpOyB9CiAgICAgYm9vbCBpc1Njcm9sbFZpZXdTY3JvbGxiYXIoY29uc3QgV2lkZ2V0KiBjaGls
ZCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpID09IGNoaWxkIHx8IHZlcnRp
Y2FsU2Nyb2xsYmFyKCkgPT0gY2hpbGQ7IH0KIAorICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCkgY29uc3Q7CisgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdDsK
KwogICAgIHZvaWQgcG9zaXRpb25TY3JvbGxiYXJMYXllcnMoKTsKIAogICAgIC8vIEZ1bmN0aW9u
cyBmb3Igc2V0dGluZyBhbmQgcmV0cmlldmluZyB0aGUgc2Nyb2xsaW5nIG1vZGUgaW4gZWFjaCBh
eGlzIChob3Jpem9udGFsL3ZlcnRpY2FsKS4gVGhlIG1vZGUgaGFzIHZhbHVlcyBvZgpAQCAtMTM0
LDYgKzEzNywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYW5CbGl0T25TY3JvbGwoYm9vbCk7
CiAgICAgYm9vbCBjYW5CbGl0T25TY3JvbGwoKSBjb25zdDsKIAorICAgIC8vIFdoZXRoZXIgY29u
dGVudCBhbmQgc2Nyb2xsYmFycyBzaG91bGQgYmUgbGF5ZWQgb3V0IHJpZ2h0IHRvIGxlZnQgaW5z
dGVhZCBvZiBsZWZ0IHRvIHJpZ2h0LgorICAgIGJvb2wgcGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBj
b25zdDsKKyAgICB2b2lkIHNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGJvb2wpOworCiAgICAgLy8g
VGhlIHZpc2libGUgY29udGVudCByZWN0IGhhcyBhIGxvY2F0aW9uIHRoYXQgaXMgdGhlIHNjcm9s
bGVkIG9mZnNldCBvZiB0aGUgZG9jdW1lbnQuIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSB0aGUg
dmlld3BvcnQgd2lkdGgKICAgICAvLyBhbmQgaGVpZ2h0LiBCeSBkZWZhdWx0IHRoZSBzY3JvbGxi
YXJzIHRoZW1zZWx2ZXMgYXJlIGV4Y2x1ZGVkIGZyb20gdGhpcyByZWN0YW5nbGUsIGJ1dCBhbiBv
cHRpb25hbCBib29sZWFuIGFyZ3VtZW50IGFsbG93cyB0aGVtIHRvIGJlCiAgICAgLy8gaW5jbHVk
ZWQuCkBAIC0zNzMsNiArMzgwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGFpbnRzRW50aXJl
Q29udGVudHM7CiAgICAgYm9vbCBtX2NsaXBzUmVwYWludHM7CiAgICAgYm9vbCBtX2RlbGVnYXRl
c1Njcm9sbGluZzsKKyAgICBib29sIG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQ7CiAKICAgICB2b2lk
IGluaXQoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCAzYjc4Zjg1M2Y3NzU5NTUwMDQwMDkxYzZmNmUwNzk3MzRmODgzODZkLi5mZGE2
Y2IzY2IyMTFiNzRkYjYxYzdiNDAxNzlkNjIyNjM4ZGVjOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0yNTEsMTMgKzI1MSwxNiBAQCB2b2lkIEludGVybmFsczo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIHBhZ2UtPnNldFBhZ2VTY2FsZUZh
Y3RvcigxLCBJbnRQb2ludCgwLCAwKSk7CiAgICAgcGFnZS0+c2V0UGFnaW5hdGlvbihQYWdpbmF0
aW9uKCkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEZyYW1lVmll
dyogbWFpbkZyYW1lVmlldyA9IHBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1haW5GcmFtZVZpZXcpIHsKICAgICAgICAg
bWFpbkZyYW1lVmlldy0+c2V0SGVhZGVySGVpZ2h0KDApOwogICAgICAgICBtYWluRnJhbWVWaWV3
LT5zZXRGb290ZXJIZWlnaHQoMCk7CiAgICAgfQogI2VuZGlmCisgICAgaWYgKG1haW5GcmFtZVZp
ZXcpCisgICAgICAgIG1haW5GcmFtZVZpZXctPnNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGZhbHNl
KTsKKwogICAgIFRleHRSdW46OnNldEFsbG93c1JvdW5kaW5nSGFja3MoZmFsc2UpOwogICAgIFdl
YkNvcmU6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsK
ICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsK
QEAgLTgyNiw2ICs4MjksMTYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2luYXRpb24oRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAsIGkKICAgICBwYWdlLT5z
ZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pOwogfQogCit2b2lkIEludGVybmFsczo6c2V0UGxhY2VT
Y3JvbGxiYXJPbkxlZnQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBkb2N1bWVudC0+dmlldygpLT5zZXRQbGFjZVNjcm9sbGJhck9uTGVmdChlbmFibGVk
KTsKK30KKwogU3RyaW5nIEludGVybmFsczo6Y29uZmlndXJhdGlvbkZvclZpZXdwb3J0KERvY3Vt
ZW50KiBkb2N1bWVudCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgaW50IGRldmljZVdpZHRoLCBp
bnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgsIGludCBhdmFpbGFibGVIZWlnaHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5w
YWdlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGI3MmMxOTg3ZDY1NGEz
MDdiYjcxZmZmZDZjZGI5ODg3ZWNjZjU4MWMuLmM1ZDJmMzVmYTU3MDQzZTk3OTUzZmQwODA4OWNh
ZmZmMzhjNWE3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTQyLDYgKzE0
Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2luYXRpb24oRG9jdW1lbnQqLCBjb25zdCBT
dHJpbmcmIG1vZGUsIGludCBnYXAsIGludCBwYWdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgU3RyaW5nIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChEb2N1bWVudCosIGZsb2F0IGRldmlj
ZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWls
YWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2
b2lkIHNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CisKICAgICBib29sIHdhc0xhc3RDaGFuZ2VVc2VyRWRpdChFbGVtZW50KiB0
ZXh0RmllbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIGVsZW1lbnRTaG91bGRBdXRvQ29t
cGxldGUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5n
IHN1Z2dlc3RlZFZhbHVlKEVsZW1lbnQqIGlucHV0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDllZjdiMzdmZmUzN2U0NWNjZTU3
NTUwOWVmOWQ3NjBmMGNhNjM2MjMuLmYwYmM0ZGQ5NzZiMDczOTYwYzA3MmNiODQ5ZGY1ZDQ4YmVl
YWM4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkyLDYgKzkyLDgg
QEAKIAogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0UGFnaW5hdGlvbihEb2N1bWVudCBk
b2N1bWVudCwgRE9NU3RyaW5nIG1vZGUsIGxvbmcgZ2FwLCBvcHRpb25hbCBsb25nIHBhZ2VMZW5n
dGgpOwogCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRQbGFjZVNjcm9sbGJhck9uTGVm
dChEb2N1bWVudCBkb2N1bWVudCwgYm9vbGVhbiBlbmFibGVkKTsKKwogICAgIFtSYWlzZXNFeGNl
cHRpb25dIERPTVN0cmluZyBjb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRG9jdW1lbnQgZG9jdW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXZpY2VQ
aXhlbFJhdGlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBk
ZXZpY2VXaWR0aCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5jcHAKaW5kZXggOWJjYmNhYjI4NTM1NmI2OWYzYWNjNDk4Njc5ZmJiOTU2ZmU5
ZGY1MC4uYmIzNjhjYTlkYWI2Mjg2ZTViMjAwNTE5MGE2MWI0MGYxZjY2NGJjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAg
LTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlIDxxYWJzdHJhY3RhbmltYXRpb24uaD4KICNpbmNsdWRl
IDxxZGVidWcuaD4KICNpbmNsdWRlIDxxZXZlbnRsb29wLmg+CisjaW5jbHVkZSA8cWd1aWFwcGxp
Y2F0aW9uLmg+CiAjaW5jbHVkZSA8cXdpbmRvdy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTc1Nyw2ICs3NTgsMTEgQEAgYm9vbCBD
aHJvbWVDbGllbnRRdDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorYm9vbCBDaHJvbWVDbGllbnRRdDo6c2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBj
b25zdAoreworICAgIHJldHVybiBRR3VpQXBwbGljYXRpb246OmxheW91dERpcmVjdGlvbigpID09
IFF0OjpSaWdodFRvTGVmdDsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVu
dFF0OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVRdChjbGllbnQsIHRoaXMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCA5
ZDViYWFjYWUzZWE3NTg2MTRkOTZiMWM4M2JhNWEyODUyODJlMDhiLi42YjY3ZmU4YzAzMzJkNDY4
NDE2ZDA1YzhhZmI5ZjNlNGE5YTBkZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0yMDAsNiArMjAwLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Ny
b2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIG51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQogCisgICAgdmlydHVhbCBi
b29sIHNob3VsZFBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgT1ZFUlJJREU7CisKICAgICBR
V2ViRnVsbFNjcmVlblZpZGVvSGFuZGxlciogY3JlYXRlRnVsbFNjcmVlblZpZGVvSGFuZGxlcigp
OwogCiAgICAgUVdlYlBhZ2VBZGFwdGVyKiBtX3dlYlBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcAppbmRleCA3NjMzYmY3
OGRhY2UwYWRiZGJiYmI4NDEwMTYxMDUwZDBkNWFhNDI1Li5kZGEwYWU1ZDdlYTgxZWMzYWIwZmZj
MDE4ZjE4MGZmOTZjY2I1ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKQEAgLTUzNCw2ICs1MzQsMTAgQEAgdm9pZCBR
V2ViRnJhbWVBZGFwdGVyOjpyZW5kZXJSZWxhdGl2ZUNvb3JkcyhRUGFpbnRlciogcGFpbnRlciwg
aW50IGxheWVycywgY29uc3QKIAogICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoeCwgeSk7
CiAgICAgICAgICAgICByZWN0LnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICAgICAgaWYgKHZp
ZXctPnBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAgICAgICAgICBjb250ZXh0LnRy
YW5zbGF0ZSh2aWV3LT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOworICAgICAgICAgICAg
ICAgIHJlY3QudHJhbnNsYXRlKC12aWV3LT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNjcm9sbFgsIC1z
Y3JvbGxZKTsKICAgICAgICAgICAgIHJlY3QudHJhbnNsYXRlKHNjcm9sbFgsIHNjcm9sbFkpOwog
ICAgICAgICAgICAgY29udGV4dC5jbGlwKHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2NGI1OTJjNDEwYjFkZTdlYjJkYWRlMTkyMjA5YmEzMzE3NWI0YTg0Li42NzAwOTYxYjQx
NmQ0YjcxZjNlZDFkMjViN2IzYzkyZDM5NTBiZmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTMtMDktMjUgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+
CisKKyAgICAgICAgU3VwcG9ydCBoYXZpbmcgc2Nyb2xsYmFycyBvbiB0aGUgbGVmdCBpbiByaWdo
dC10by1sZWZ0IGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIxMjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzY3JvbGxiYXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLW9uLXRoZS1sZWZ0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxl
ZnQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDktMjUgIFNhbmdoeXVwIExlZSAgPHNoNTMubGVlQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBVbnNraXAg
cGFzc2luZyBmYXN0L3RleHQvZm9udC1rZXJuaW5nLmh0bWwgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC5wbmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTNiYzdkM2YzNzFhNWM2NDM2YTgyNmJjZjRlNmQxNzI2NTY4NTJkNwpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMzM0Mwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJh
PmkxQiVRbFlicFJ6b0NPfHsjUzlGNU0/amN5c3kzZkEKelAqQWhQSEtIVXJCUS1nQHhIT2pgKSE1
aHxJV1orVUhPKGp+KzA1TH4lKTsyciM1NjcwRmZHbHtJNWpEYD41ak0+CnowfFFUd3I7QjRxI2hr
Wnk0e3t6aDVNVmZ7dkJSSj10dnFrS2ZJKUBxZyl7TlRZb31MZCRRJj1NJWUoZGNANEh8SQp6aDZL
bV4rckAjRlR+bDttVX0pJUpVfVJ1MFZxIyVuSUtkJm56QFZVdjVXR0c0QGJRV3dEK1khU2BSQztL
Xlh6SD4KellMYUFSVnFpI047YjM1eEFnSTg9O05VaFlJMnNfTWlHaylCVlZtWGkrdCRHUipJbUdm
R3J3WlojR2BefXJQXnFLCnpqME9uKWRUJXNeakhaeSQ2b1JXJklHUV5+YXxmPjZhZmJFckpubitU
d0xTfWhPJSg9RFMzajNeUDY8cl91b3VKJQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0OGIxM2JkODZiZmUxOTI2YTkwMmI1MDE1ZTMyOTVkN2Yw
YzRmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJh
ci1vbi10aGUtbGVmdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCww
KSBzaXplIDc4NXgyMDE2CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDc4NXgyMDE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDc4NXgyMDE2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4MjAw
MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3Njl4MjAwMCBbYmdjb2xv
cj0jMDAwMEZGXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXIt
b24tdGhlLWxlZnQuaHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW9uLXRo
ZS1sZWZ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA5ODYxMzUyNjU2ODBlMDM5MGEwMWMyODY0NjI4ZDZl
NWY1NTA2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xs
YmFyLW9uLXRoZS1sZWZ0Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImhlaWdodDoyMDAwcHg7
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ij4KKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFs
cy5zZXRQbGFjZVNjcm9sbGJhck9uTGVmdChkb2N1bWVudCwgdHJ1ZSk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212700</attachid>
            <date>2013-09-26 06:27:47 -0700</date>
            <delta_ts>2014-01-28 14:10:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121224-20130926152746.patch</filename>
            <type>text/plain</type>
            <size>20998</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEzMTRiMDAwNTdmYWM3
OTg5NzBjMTk1Mzc3MzRlZGUyMzFhNmY5MS4uNDFhN2IzZjMwZjM5ZGNkMjRjYTRiZjAyNzczYzNl
ZDIxOWI5M2YxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA5LTI1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFN1
cHBvcnQgaGF2aW5nIHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgaW4gcmlnaHQtdG8tbGVmdCBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxheW91dCBvZiBzY3JvbGxiYXJzIGluIFNjcm9sbFZp
ZXcuCisKKyAgICAgICAgVGVzdDogc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRt
bAorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudDo6c2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxlZnQpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aW5pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpTY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYWNlU2Ny
b2xsYmFyT25MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFBsYWNlU2Ny
b2xsYmFyT25MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVuc2NhbGVkVmlz
aWJsZUNvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVD
b250ZW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnJlY3RUb0NvcHlPblNjcm9sbCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3Ojp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6Omhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6Y2FsY3VsYXRlT3ZlcmhhbmdBcmVhc0ZvclBhaW50aW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0UGxhY2VTY3JvbGxiYXJPbkxlZnQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDEzLTA5LTI1ICBBbGJlcnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5j
b20+CiAKICAgICAgICAgRml4IHdhcm5pbmcgaW4gbWFrZXByb3AucGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggYTM3OWRiYmFhMWFhN2JhMjk1MGU4MTJlZjg1ZTY5NGY2MWEzZTIxNC4uMzhlNTVlMTA0MTJi
MWFkMTQ1Y2U1MzUxMTg1ZmYyMGI0MjMxZjY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
OSBAQAogMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRp
Z2lhLmNvbT4KIAorICAgICAgICBTdXBwb3J0IGhhdmluZyBzY3JvbGxiYXJzIG9uIHRoZSBsZWZ0
IGluIHJpZ2h0LXRvLWxlZnQgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUgbGVmdCB3
aGVuIFFHdWlBcHBsaWNhdGlvbiBpcyBzZXQgdG8gcmlnaHQtdG8tbGVmdCBsYXlvdXQuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9R
V2ViRnJhbWVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJl
bGF0aXZlQ29vcmRzKToKKworMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KKwogICAgICAgICBbUXRdIEZpeCBidWlsZCB3aXRoIFF0IDUu
MiBRdFBvc2l0aW9uIG1vZHVsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxMDg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMjJkNzIwM2MyOTRk
MDI4MWFlZjBlMGJhOGYzZGY0MzQ0NDY5MDg5Ni4uMzNlZDI3ZDU2MTkzZmE2NzdiOTQxNjllNTk5
YWRjNzQ5NWQyMzU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTg3LDYgKzg3LDcgQEAgX19a
TjdXZWJDb3JlMTBTY3JvbGxWaWV3MThzZXRGaXhlZExheW91dFNpemVFUktOU183SW50U2l6ZUUK
IF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2ZVNjcm9sbGJhcnNFYgogX19aTjdX
ZWJDb3JlMTBTY3JvbGxWaWV3MjFzZXREZWxlZ2F0ZXNTY3JvbGxpbmdFYgogX19aTjdXZWJDb3Jl
MTBTY3JvbGxWaWV3MjNzZXRQYWludHNFbnRpcmVDb250ZW50c0ViCitfX1pON1dlYkNvcmUxMFNj
cm9sbFZpZXcyM3NldFBsYWNlU2Nyb2xsYmFyT25MZWZ0RWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xs
VmlldzIzc2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRFYmIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmll
dzI0d2luZG93UmVzaXplclJlY3RDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzVw
YWludEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183SW50UmVjdEUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCmluZGV4IDFjM2EwYmU0M2NkMDk1MjQ4Yzg5N2Y5ZWQ5OTE0OTA4NDE0OWVl
ZDcuLmUxNDE5OWIxYjEwNDgwYWE3MjJmYjAyY2YxOWIwZTJiNTczMDQyN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjQwLDYgKzI0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXplIHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVy
cyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBk
MTMxZjQwZTM4ODYwNmJjOWJjOTNmZGQwYWU1NmM3OTczZGI0MDgzLi43NjQ5Y2RmZjkzZDM4MWY5
NzliNjVhYjQ1ZTgzZTM1MzlmNjNjYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0zNDcsNiArMzQ3LDggQEAgdm9pZCBGcmFtZVZpZXc6OmluaXQoKQogICAgIFBhZ2UqIHBhZ2Ug
PSBmcmFtZSgpLnBhZ2UoKTsKICAgICBpZiAocGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5zaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkpCiAgICAgICAgIHNldFBhaW50c0VudGlyZUNv
bnRlbnRzKHRydWUpOworICAgIGlmIChwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNo
b3VsZFBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIHNldFBsYWNlU2Nyb2xsYmFyT25M
ZWZ0KHRydWUpOwogfQogICAgIAogdm9pZCBGcmFtZVZpZXc6OnByZXBhcmVGb3JEZXRhY2goKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAxOGIwZTJkYzRjY2IxY2E5
NDQ2MzQ5NzcxNDZlZGQ1NWFlZDk2Yzc4Li45YmMwNTBiMDgwYTI3MmNkZDVlMmNhYTEwMzhkY2Nk
MjEwYjVlOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTYs
NiArNTYsNyBAQCBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkKICAgICAsIG1fcGFpbnRzRW50aXJl
Q29udGVudHMoZmFsc2UpCiAgICAgLCBtX2NsaXBzUmVwYWludHModHJ1ZSkKICAgICAsIG1fZGVs
ZWdhdGVzU2Nyb2xsaW5nKGZhbHNlKQorICAgICwgbV9wbGFjZVNjcm9sbGJhck9uTGVmdChmYWxz
ZSkKIHsKIH0KIApAQCAtNjMsNiArNjQsMjAgQEAgU2Nyb2xsVmlldzo6flNjcm9sbFZpZXcoKQog
ewogfQogCitib29sIFNjcm9sbFZpZXc6OnBsYWNlU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wbGFjZVNjcm9sbGJhck9uTGVmdDsKK30KKwordm9pZCBTY3JvbGxWaWV3
OjpzZXRQbGFjZVNjcm9sbGJhck9uTGVmdChib29sIGIpCit7CisgICAgaWYgKG1fcGxhY2VTY3Jv
bGxiYXJPbkxlZnQgPT0gYikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wbGFjZVNjcm9sbGJh
ck9uTGVmdCA9IGI7CisgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7Cit9CisK
IHZvaWQgU2Nyb2xsVmlldzo6YWRkQ2hpbGQoUGFzc1JlZlB0cjxXaWRnZXQ+IHBycENoaWxkKSAK
IHsKICAgICBXaWRnZXQqIGNoaWxkID0gcHJwQ2hpbGQuZ2V0KCk7CkBAIC0yNTAsMTAgKzI2NSw4
IEBAIEludFNpemUgU2Nyb2xsVmlldzo6dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUoVmlzaWJs
ZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiCiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJI
ZWlnaHQgPSAwOwogCiAgICAgaWYgKHNjcm9sbGJhckluY2x1c2lvbiA9PSBFeGNsdWRlU2Nyb2xs
YmFycykgewotICAgICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbEJhciA9IHZlcnRpY2FsU2Ny
b2xsYmFyKCkpCi0gICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gIXZlcnRpY2Fs
QmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSA/IHZlcnRpY2FsQmFyLT53aWR0aCgpIDogMDsKLSAg
ICAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbEJhciA9IGhvcml6b250YWxTY3JvbGxiYXIo
KSkKLSAgICAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSAhaG9yaXpvbnRhbEJh
ci0+aXNPdmVybGF5U2Nyb2xsYmFyKCkgPyBob3Jpem9udGFsQmFyLT5oZWlnaHQoKSA6IDA7Cisg
ICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCk7CisgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSB0aGlzLT5ob3Jpem9u
dGFsU2Nyb2xsYmFySGVpZ2h0KCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEludFNpemUobWF4KDAs
IHdpZHRoKCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKSwKQEAgLTI3MSw2ICsyODQsNyBAQCBJ
bnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChWaXNpYmxlQ29udGVudFJlY3RJ
bmNsdWRlc1Njcm9sbGJhcnMgc2NvbAogCiAgICAgRmxvYXRTaXplIHZpc2libGVDb250ZW50U2l6
ZSA9IHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKHNjb2xsYmFySW5jbHVzaW9uKTsKICAgICB2
aXNpYmxlQ29udGVudFNpemUuc2NhbGUoMSAvIHZpc2libGVDb250ZW50U2NhbGVGYWN0b3IoKSk7
CisKICAgICByZXR1cm4gSW50UmVjdChJbnRQb2ludChtX3Njcm9sbE9mZnNldCksIGV4cGFuZGVk
SW50U2l6ZSh2aXNpYmxlQ29udGVudFNpemUpKTsKIH0KICNlbmRpZgpAQCAtNjQwLDcgKzY1NCw4
IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNp
cmVkT2Zmc2V0KQogICAgICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgpOwog
ICAgICAgICBpbnQgcGFnZVN0ZXAgPSBtYXgobWF4PGludD4oY2xpZW50SGVpZ2h0ICogU2Nyb2xs
YmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwgY2xpZW50SGVpZ2h0IC0gU2Nyb2xs
YmFyOjptYXhPdmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsKICAgICAgICAgSW50UmVjdCBvbGRS
ZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2
QmFyUmVjdCh3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwgCisgICAgICAg
IGludCBzY3JvbGxiYXJPZmZzZXQgPSBtX3BsYWNlU2Nyb2xsYmFyT25MZWZ0ID8gMCA6ICh3aWR0
aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSk7CisgICAgICAgIEludFJlY3QgdkJh
clJlY3Qoc2Nyb2xsYmFyT2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIgPyBt
X2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpIDogMCkpOwpAQCAtNjkyLDcgKzcwNyw3IEBA
IEludFJlY3QgU2Nyb2xsVmlldzo6cmVjdFRvQ29weU9uU2Nyb2xsKCkgY29uc3QKICAgICBpZiAo
aGFzT3ZlcmxheVNjcm9sbGJhcnMoKSkgewogICAgICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJX
aWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICFoYXNMYXllckZvclZlcnRpY2FsU2Nyb2xs
YmFyKCkpID8gdmVydGljYWxTY3JvbGxiYXIoKS0+d2lkdGgoKSA6IDA7CiAgICAgICAgIGludCBo
b3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaGFz
TGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5o
ZWlnaHQoKSA6IDA7Ci0gICAgICAgIAorCiAgICAgICAgIHNjcm9sbFZpZXdSZWN0LnNldFdpZHRo
KHNjcm9sbFZpZXdSZWN0LndpZHRoKCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKTsKICAgICAg
ICAgc2Nyb2xsVmlld1JlY3Quc2V0SGVpZ2h0KHNjcm9sbFZpZXdSZWN0LmhlaWdodCgpIC0gaG9y
aXpvbnRhbFNjcm9sbGJhckhlaWdodCk7CiAgICAgfQpAQCAtMTEyOSw2ICsxMTQ0LDggQEAgdm9p
ZCBTY3JvbGxWaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKHgoKSwgeSgpKTsKICAgICAg
ICAgZG9jdW1lbnREaXJ0eVJlY3QubW92ZUJ5KC1sb2NhdGlvbigpKTsKKyAgICAgICAgaWYgKG1f
cGxhY2VTY3JvbGxiYXJPbkxlZnQpCisgICAgICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUodmVy
dGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKIAogICAgICAgICBpZiAoIXBhaW50c0VudGlyZUNv
bnRlbnRzKCkpIHsKICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc2Nyb2xsWCgpLCAt
c2Nyb2xsWSgpKTsKQEAgLTExNjQsMTIgKzExODEsMjQgQEAgdm9pZCBTY3JvbGxWaWV3OjpwYWlu
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAg
IHBhaW50UGFuU2Nyb2xsSWNvbihjb250ZXh0KTsKIH0KIAoraW50IFNjcm9sbFZpZXc6OnZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgoKSBjb25zdAoreworICAgIGlmICh2ZXJ0aWNhbFNjcm9sbGJhcigp
ICYmICF2ZXJ0aWNhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKKyAgICAgICAg
cmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K2ludCBTY3JvbGxWaWV3Ojpob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkgY29uc3QKK3sKKyAg
ICBpZiAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmICFob3Jpem9udGFsU2Nyb2xsYmFyKCktPmlz
T3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigp
LT53aWR0aCgpOworICAgIHJldHVybiAwOworfQorCiB2b2lkIFNjcm9sbFZpZXc6OmNhbGN1bGF0
ZU92ZXJoYW5nQXJlYXNGb3JQYWludGluZyhJbnRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdSZWN0
LCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCkKIHsKLSAgICBpbnQgdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCA9ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNjcm9sbGJhcigp
LT5pc092ZXJsYXlTY3JvbGxiYXIoKSkKLSAgICAgICAgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53
aWR0aCgpIDogMDsKLSAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9u
dGFsU2Nyb2xsYmFyKCkgJiYgIWhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xs
YmFyKCkpCi0gICAgICAgID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7Cisg
ICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCk7CisgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQgPSB0aGlzLT5ob3Jpem9u
dGFsU2Nyb2xsYmFySGVpZ2h0KCk7CiAKICAgICBpbnQgcGh5c2ljYWxTY3JvbGxZID0gc2Nyb2xs
UG9zaXRpb24oKS55KCkgKyBzY3JvbGxPcmlnaW4oKS55KCk7CiAgICAgaWYgKHBoeXNpY2FsU2Ny
b2xsWSA8IDApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCAzY2I0YjAz
MTEyZWU3YTY4YjVlMmFkMGEyYjY3MDM3OGJmYTlmNTkxLi43NWEyZWI2NTczYWY0ODVhMzliNzIy
OWIxM2FiMjY1MjRhMzQ5YjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBA
IC03OCw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcm9sbGJhciogdmVydGljYWxT
Y3JvbGxiYXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdl
dCgpOyB9CiAgICAgYm9vbCBpc1Njcm9sbFZpZXdTY3JvbGxiYXIoY29uc3QgV2lkZ2V0KiBjaGls
ZCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpID09IGNoaWxkIHx8IHZlcnRp
Y2FsU2Nyb2xsYmFyKCkgPT0gY2hpbGQ7IH0KIAorICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCkgY29uc3Q7CisgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdDsK
KwogICAgIHZvaWQgcG9zaXRpb25TY3JvbGxiYXJMYXllcnMoKTsKIAogICAgIC8vIEZ1bmN0aW9u
cyBmb3Igc2V0dGluZyBhbmQgcmV0cmlldmluZyB0aGUgc2Nyb2xsaW5nIG1vZGUgaW4gZWFjaCBh
eGlzIChob3Jpem9udGFsL3ZlcnRpY2FsKS4gVGhlIG1vZGUgaGFzIHZhbHVlcyBvZgpAQCAtMTM0
LDYgKzEzNywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYW5CbGl0T25TY3JvbGwoYm9vbCk7
CiAgICAgYm9vbCBjYW5CbGl0T25TY3JvbGwoKSBjb25zdDsKIAorICAgIC8vIFdoZXRoZXIgY29u
dGVudCBhbmQgc2Nyb2xsYmFycyBzaG91bGQgYmUgbGF5ZWQgb3V0IHJpZ2h0IHRvIGxlZnQgaW5z
dGVhZCBvZiBsZWZ0IHRvIHJpZ2h0LgorICAgIGJvb2wgcGxhY2VTY3JvbGxiYXJPbkxlZnQoKSBj
b25zdDsKKyAgICB2b2lkIHNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGJvb2wpOworCiAgICAgLy8g
VGhlIHZpc2libGUgY29udGVudCByZWN0IGhhcyBhIGxvY2F0aW9uIHRoYXQgaXMgdGhlIHNjcm9s
bGVkIG9mZnNldCBvZiB0aGUgZG9jdW1lbnQuIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSB0aGUg
dmlld3BvcnQgd2lkdGgKICAgICAvLyBhbmQgaGVpZ2h0LiBCeSBkZWZhdWx0IHRoZSBzY3JvbGxi
YXJzIHRoZW1zZWx2ZXMgYXJlIGV4Y2x1ZGVkIGZyb20gdGhpcyByZWN0YW5nbGUsIGJ1dCBhbiBv
cHRpb25hbCBib29sZWFuIGFyZ3VtZW50IGFsbG93cyB0aGVtIHRvIGJlCiAgICAgLy8gaW5jbHVk
ZWQuCkBAIC0zNzMsNiArMzgwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGFpbnRzRW50aXJl
Q29udGVudHM7CiAgICAgYm9vbCBtX2NsaXBzUmVwYWludHM7CiAgICAgYm9vbCBtX2RlbGVnYXRl
c1Njcm9sbGluZzsKKyAgICBib29sIG1fcGxhY2VTY3JvbGxiYXJPbkxlZnQ7CiAKICAgICB2b2lk
IGluaXQoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCAzYjc4Zjg1M2Y3NzU5NTUwMDQwMDkxYzZmNmUwNzk3MzRmODgzODZkLi5mZGE2
Y2IzY2IyMTFiNzRkYjYxYzdiNDAxNzlkNjIyNjM4ZGVjOGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0yNTEsMTMgKzI1MSwxNiBAQCB2b2lkIEludGVybmFsczo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIHBhZ2UtPnNldFBhZ2VTY2FsZUZh
Y3RvcigxLCBJbnRQb2ludCgwLCAwKSk7CiAgICAgcGFnZS0+c2V0UGFnaW5hdGlvbihQYWdpbmF0
aW9uKCkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEZyYW1lVmll
dyogbWFpbkZyYW1lVmlldyA9IHBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1haW5GcmFtZVZpZXcpIHsKICAgICAgICAg
bWFpbkZyYW1lVmlldy0+c2V0SGVhZGVySGVpZ2h0KDApOwogICAgICAgICBtYWluRnJhbWVWaWV3
LT5zZXRGb290ZXJIZWlnaHQoMCk7CiAgICAgfQogI2VuZGlmCisgICAgaWYgKG1haW5GcmFtZVZp
ZXcpCisgICAgICAgIG1haW5GcmFtZVZpZXctPnNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGZhbHNl
KTsKKwogICAgIFRleHRSdW46OnNldEFsbG93c1JvdW5kaW5nSGFja3MoZmFsc2UpOwogICAgIFdl
YkNvcmU6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsK
ICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsK
QEAgLTgyNiw2ICs4MjksMTYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2luYXRpb24oRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAsIGkKICAgICBwYWdlLT5z
ZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pOwogfQogCit2b2lkIEludGVybmFsczo6c2V0UGxhY2VT
Y3JvbGxiYXJPbkxlZnQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBkb2N1bWVudC0+dmlldygpLT5zZXRQbGFjZVNjcm9sbGJhck9uTGVmdChlbmFibGVk
KTsKK30KKwogU3RyaW5nIEludGVybmFsczo6Y29uZmlndXJhdGlvbkZvclZpZXdwb3J0KERvY3Vt
ZW50KiBkb2N1bWVudCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgaW50IGRldmljZVdpZHRoLCBp
bnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgsIGludCBhdmFpbGFibGVIZWlnaHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5w
YWdlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGI3MmMxOTg3ZDY1NGEz
MDdiYjcxZmZmZDZjZGI5ODg3ZWNjZjU4MWMuLmM1ZDJmMzVmYTU3MDQzZTk3OTUzZmQwODA4OWNh
ZmZmMzhjNWE3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTQyLDYgKzE0
Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2luYXRpb24oRG9jdW1lbnQqLCBjb25zdCBT
dHJpbmcmIG1vZGUsIGludCBnYXAsIGludCBwYWdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgU3RyaW5nIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChEb2N1bWVudCosIGZsb2F0IGRldmlj
ZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWls
YWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2
b2lkIHNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CisKICAgICBib29sIHdhc0xhc3RDaGFuZ2VVc2VyRWRpdChFbGVtZW50KiB0
ZXh0RmllbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIGVsZW1lbnRTaG91bGRBdXRvQ29t
cGxldGUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5n
IHN1Z2dlc3RlZFZhbHVlKEVsZW1lbnQqIGlucHV0RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDllZjdiMzdmZmUzN2U0NWNjZTU3
NTUwOWVmOWQ3NjBmMGNhNjM2MjMuLmYwYmM0ZGQ5NzZiMDczOTYwYzA3MmNiODQ5ZGY1ZDQ4YmVl
YWM4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkyLDYgKzkyLDgg
QEAKIAogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0UGFnaW5hdGlvbihEb2N1bWVudCBk
b2N1bWVudCwgRE9NU3RyaW5nIG1vZGUsIGxvbmcgZ2FwLCBvcHRpb25hbCBsb25nIHBhZ2VMZW5n
dGgpOwogCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRQbGFjZVNjcm9sbGJhck9uTGVm
dChEb2N1bWVudCBkb2N1bWVudCwgYm9vbGVhbiBlbmFibGVkKTsKKwogICAgIFtSYWlzZXNFeGNl
cHRpb25dIERPTVN0cmluZyBjb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRG9jdW1lbnQgZG9jdW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXZpY2VQ
aXhlbFJhdGlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBk
ZXZpY2VXaWR0aCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4K
aW5kZXggMjMzYmI1ZWE0ZWYxOTM5MjQ3YjhkODA0NDE5YzgyN2M0MGIzZDcyMi4uMTJiYzU2Mjc4
NTFlNTU1N2YwYzNmN2VlMzllOWFlZmZiYjA3ZGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0
b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTI5MCw2ICsyOTAsNyBAQCBFWFBPUlRTCiAgICAg
ICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zZXRTYW5zU2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdl
YkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWiwgP3NldFNh
bnNTZXJpZkZvbnRGYW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUVBQVhBRUJWQXRvbWljU3RyaW5n
QFdURkBAVzRVU2NyaXB0Q29kZUBAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zZXRT
Y3JvbGxiYXJzU3VwcHJlc3NlZEBTY3JvbGxWaWV3QFdlYkNvcmVAQFFBRVhfTjBAWiwgP3NldFNj
cm9sbGJhcnNTdXBwcmVzc2VkQFNjcm9sbFZpZXdAV2ViQ29yZUBAUUVBQVhfTjBAWikKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP3NldERlbGVnYXRlc1Njcm9sbGluZ0BTY3JvbGxWaWV3QFdl
YkNvcmVAQFFBRVhfTkBaLCA/c2V0RGVsZWdhdGVzU2Nyb2xsaW5nQFNjcm9sbFZpZXdAV2ViQ29y
ZUBAUUVBQVhfTkBaKQorICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/c2V0UGxhY2VTY3JvbGxi
YXJPbkxlZnRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX05AWiwgP3NldFBsYWNlU2Nyb2xsYmFy
T25MZWZ0QFNjcm9sbFZpZXdAV2ViQ29yZUBAUUVBQVhfTkBaKQogICAgICAgICBzeW1ib2xXaXRo
UG9pbnRlcig/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJD
b3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWiwgP3NldFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHNA
U2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUVBQVhBRUJWSW50UG9pbnRAMkBAWikKICAgICAgICAg
c3ltYm9sV2l0aFBvaW50ZXIoP3NldFNlcmlmRm9udEZhbWlseUBTZXR0aW5nc0BXZWJDb3JlQEBR
QUVYQUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFosID9zZXRTZXJpZkZvbnRG
YW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUVBQVhBRUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2Ny
aXB0Q29kZUBAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zZXRTdGFuZGFyZEZvbnRG
YW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlw
dENvZGVAQEBaLCA/c2V0U3RhbmRhcmRGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFFQUFY
QUVCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlwdENvZGVAQEBaKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA5YmNiY2Fi
Mjg1MzU2YjY5ZjNhY2M0OTg2NzlmYmI5NTZmZTlkZjUwLi5iYjM2OGNhOWRhYjYyODZlNWIyMDA1
MTkwYTYxYjQwZjFmNjY0YmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUgPHFh
YnN0cmFjdGFuaW1hdGlvbi5oPgogI2luY2x1ZGUgPHFkZWJ1Zy5oPgogI2luY2x1ZGUgPHFldmVu
dGxvb3AuaD4KKyNpbmNsdWRlIDxxZ3VpYXBwbGljYXRpb24uaD4KICNpbmNsdWRlIDxxd2luZG93
Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgpAQCAtNzU3LDYgKzc1OCwxMSBAQCBib29sIENocm9tZUNsaWVudFF0OjpoYXNPcGVuZWRQb3B1
cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudFF0Ojpz
aG91bGRQbGFjZVNjcm9sbGJhck9uTGVmdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFFHdWlBcHBs
aWNhdGlvbjo6bGF5b3V0RGlyZWN0aW9uKCkgPT0gUXQ6OlJpZ2h0VG9MZWZ0OworfQorCiBQYXNz
UmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVw
TWVudVF0KGNsaWVudCwgdGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDlkNWJhYWNhZTNlYTc1ODYxNGQ5NmIxYzgzYmE1
YTI4NTI4MmUwOGIuLjZiNjdmZThjMDMzMmQ0Njg0MTZkMDVjOGFmYjlmM2U0YTlhMGRlZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgK
QEAgLTIwMCw2ICsyMDAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1
bnNpZ25lZCkgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VTY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdCBPVkVSUklERTsKKwogICAgIFFXZWJGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKiBj
cmVhdGVGdWxsU2NyZWVuVmlkZW9IYW5kbGVyKCk7CiAKICAgICBRV2ViUGFnZUFkYXB0ZXIqIG1f
d2ViUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdl
YkZyYW1lQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJG
cmFtZUFkYXB0ZXIuY3BwCmluZGV4IDc2MzNiZjc4ZGFjZTBhZGJkYmJiYjg0MTAxNjEwNTBkMGQ1
YWE0MjUuLmRkYTBhZTVkN2VhODFlYzNhYjBmZmMwMThmMTgwZmY5NmNjYjU4NDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNw
cApAQCAtNTM0LDYgKzUzNCwxMCBAQCB2b2lkIFFXZWJGcmFtZUFkYXB0ZXI6OnJlbmRlclJlbGF0
aXZlQ29vcmRzKFFQYWludGVyKiBwYWludGVyLCBpbnQgbGF5ZXJzLCBjb25zdAogCiAgICAgICAg
ICAgICBjb250ZXh0LnRyYW5zbGF0ZSh4LCB5KTsKICAgICAgICAgICAgIHJlY3QudHJhbnNsYXRl
KC14LCAteSk7CisgICAgICAgICAgICBpZiAodmlldy0+cGxhY2VTY3JvbGxiYXJPbkxlZnQoKSkg
eworICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHZpZXctPnZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoKSwgMCk7CisgICAgICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoLXZpZXctPnZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBj
b250ZXh0LnRyYW5zbGF0ZSgtc2Nyb2xsWCwgLXNjcm9sbFkpOwogICAgICAgICAgICAgcmVjdC50
cmFuc2xhdGUoc2Nyb2xsWCwgc2Nyb2xsWSk7CiAgICAgICAgICAgICBjb250ZXh0LmNsaXAodmll
dy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY0YjU5MmM0MTBiMWRlN2ViMmRhZGUx
OTIyMDliYTMzMTc1YjRhODQuLjY3MDA5NjFiNDE2ZDRiNzFmM2VkMWQyNWI3YjNjOTJkMzk1MGJm
YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wOS0yNSAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBTdXBwb3J0IGhhdmluZyBz
Y3JvbGxiYXJzIG9uIHRoZSBsZWZ0IGluIHJpZ2h0LXRvLWxlZnQgbGF5b3V0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEyMjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNjcm9sbGJhcnMvc2Nyb2xs
YmFyLW9uLXRoZS1sZWZ0LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogc2Nyb2xsYmFy
cy9zY3JvbGxiYXItb24tdGhlLWxlZnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
Y3JvbGxiYXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC5odG1sOiBBZGRlZC4KKwogMjAxMy0wOS0y
NSAgU2FuZ2h5dXAgTGVlICA8c2g1My5sZWVAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0g
VW5yZXZpZXdlZCBnYXJkZW5pbmcuIFVuc2tpcCBwYXNzaW5nIGZhc3QvdGV4dC9mb250LWtlcm5p
bmcuaHRtbCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW9u
LXRoZS1sZWZ0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFy
LW9uLXRoZS1sZWZ0LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2JjN2QzZjM3MWE1YzY0MzZh
ODI2YmNmNGU2ZDE3MjY1Njg1MmQ3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMzQzCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpvQ098eyNTOUY1TT9qY3lz
eTNmQQp6UCpBaFBIS0hVckJRLWdAeEhPamApITVofElXWitVSE8oan4rMDVMfiUpOzJyIzU2NzBG
Zkdse0k1akRgPjVqTT4KejB8UVR3cjtCNHEjaGtaeTR7e3poNU1WZnt2QlJKPXR2cWtLZkkpQHFn
KXtOVFlvfUxkJFEmPU0lZShkY0A0SHxJCnpoNkttXityQCNGVH5sO21VfSklSlV9UnUwVnEjJW5J
S2QmbnpAVlV2NVdHRzRAYlFXd0QrWSFTYFJDO0teWHpIPgp6WUxhQVJWcWkjTjtiMzV4QWdJOD07
TlVoWUkyc19NaUdrKUJWVm1YaSt0JEdSKkltR2ZHcndaWiNHYF59clBecUsKemowT24pZFQlc15q
SFp5JDZvUlcmSUdRXn5hfGY+NmFmYkVySm5uK1R3TFN9aE8lKD1EUzNqM15QNjxyX3VvdUolCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxiYXJz
L3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3JvbGxi
YXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4YjEz
YmQ4NmJmZTE5MjZhOTAyYjUwMTVlMzI5NWQ3ZjBjNGYzMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3Njcm9sbGJhcnMvc2Nyb2xsYmFyLW9uLXRoZS1sZWZ0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDIwMTYKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDc4NXg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDIwMTYKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDIwMTYKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXgyMDAwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDc2OXgyMDAwIFtiZ2NvbG9yPSMwMDAwRkZdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zY3JvbGxiYXJzL3Njcm9sbGJhci1vbi10aGUtbGVmdC5odG1sIGIvTGF5b3V0VGVz
dHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDk4
NjEzNTI2NTY4MGUwMzkwYTAxYzI4NjQ2MjhkNmU1ZjU1MDY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc2Nyb2xsYmFycy9zY3JvbGxiYXItb24tdGhlLWxlZnQuaHRtbApAQCAtMCww
ICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMDBweDsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPgor
PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldFBsYWNlU2Nyb2xsYmFyT25MZWZ0KGRv
Y3VtZW50LCB0cnVlKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="234947"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
      

    </bug>

</bugzilla>