<?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>116181</bug_id>
          
          <creation_ts>2013-05-15 12:49:25 -0700</creation_ts>
          <short_desc>[EFL] Move EFL port off legacy clipboard</short_desc>
          <delta_ts>2013-05-17 09:57:09 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>116176</dependson>
    
    <dependson>116177</dependson>
          <blocked>115980</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>889463</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-15 12:49:25 -0700</bug_when>
    <thetext>I have a patch for this in the works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890118</commentid>
    <comment_count>1</comment_count>
      <attachid>202011</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-16 20:21:59 -0700</bug_when>
    <thetext>Created attachment 202011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890119</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-16 20:22:52 -0700</bug_when>
    <thetext>This patch is a bit silly because EFL does not implement clipboard operations at all. Because there is no EWS bot for EFL, I need help from someone who works on the EFL port to test this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890186</commentid>
    <comment_count>3</comment_count>
      <attachid>202011</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-16 20:33:45 -0700</bug_when>
    <thetext>Comment on attachment 202011
Patch

Attachment 202011 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/486271</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890187</commentid>
    <comment_count>4</comment_count>
      <attachid>202011</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-16 20:38:58 -0700</bug_when>
    <thetext>Comment on attachment 202011
Patch

Attachment 202011 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/493138</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890192</commentid>
    <comment_count>5</comment_count>
      <attachid>202043</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-16 20:44:33 -0700</bug_when>
    <thetext>Created attachment 202043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890194</commentid>
    <comment_count>6</comment_count>
      <attachid>202044</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-16 20:59:03 -0700</bug_when>
    <thetext>Created attachment 202044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890197</commentid>
    <comment_count>7</comment_count>
      <attachid>202044</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-16 21:02:50 -0700</bug_when>
    <thetext>Comment on attachment 202044
Patch

Attachment 202044 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/487268</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890198</commentid>
    <comment_count>8</comment_count>
      <attachid>202044</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-16 21:04:44 -0700</bug_when>
    <thetext>Comment on attachment 202044
Patch

Attachment 202044 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/489183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890199</commentid>
    <comment_count>9</comment_count>
      <attachid>202045</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-16 21:09:21 -0700</bug_when>
    <thetext>Created attachment 202045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890200</commentid>
    <comment_count>10</comment_count>
      <attachid>202045</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-16 21:14:45 -0700</bug_when>
    <thetext>Comment on attachment 202045
Patch

Attachment 202045 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/481773</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890201</commentid>
    <comment_count>11</comment_count>
      <attachid>202045</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-16 21:14:56 -0700</bug_when>
    <thetext>Comment on attachment 202045
Patch

Attachment 202045 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/491198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890314</commentid>
    <comment_count>12</comment_count>
      <attachid>202045</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2013-05-17 05:35:18 -0700</bug_when>
    <thetext>Comment on attachment 202045
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        * page/efl/EventHandlerEfl.cpp: Removed EventHandler::createDraggingClipboard
&gt; +        function since DRAG_SUPPORT is not defined for EFL anyway.

DRAG_SUPPORT is on for EFL by default. See wtf/FeatureDefines.h, OptionsEFL.cmake or the EWS build logs

&gt; Source/WebCore/ChangeLog:20
&gt; +        Deleted unneeded writePlainText, writeSelection, and writeURL functions.

The EWS bots seem to disagree that they are unneeded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890398</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 08:20:10 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        * page/efl/EventHandlerEfl.cpp: Removed EventHandler::createDraggingClipboard
&gt; &gt; +        function since DRAG_SUPPORT is not defined for EFL anyway.
&gt; 
&gt; DRAG_SUPPORT is on for EFL by default. See wtf/FeatureDefines.h, OptionsEFL.cmake or the EWS build logs

That seems silly. None of the underlying code for dragging seems to be there. It’s all just notImplemented().

Maybe there is some way to use dragging within a webpage without any of the platform dragging hooked up?

&gt; &gt; Source/WebCore/ChangeLog:20
&gt; &gt; +        Deleted unneeded writePlainText, writeSelection, and writeURL functions.
&gt; 
&gt; The EWS bots seem to disagree that they are unneeded.

Yes, they would be unneeded if DRAG_SUPPORT wasn’t on.

OK. I’ll do the version of this patch with lots more notImplemented(). As I said, very silly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890402</commentid>
    <comment_count>14</comment_count>
      <attachid>202092</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 08:25:00 -0700</bug_when>
    <thetext>Created attachment 202092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890405</commentid>
    <comment_count>15</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2013-05-17 08:31:02 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; &gt; +        * page/efl/EventHandlerEfl.cpp: Removed EventHandler::createDraggingClipboard
&gt; &gt; &gt; +        function since DRAG_SUPPORT is not defined for EFL anyway.
&gt; &gt; 
&gt; &gt; DRAG_SUPPORT is on for EFL by default. See wtf/FeatureDefines.h, OptionsEFL.cmake or the EWS build logs
&gt; 
&gt; That seems silly. None of the underlying code for dragging seems to be there. It’s all just notImplemented().

If it makes more sense, removing the line which enables it in OptionsEFL.cmake should be easy, and if that&apos;s OK with you #ifdef&apos;ing the part which enables it in FeatureDefines.h is also fine. This should also decrease the amount of silliness in this patch :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890408</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 08:38:48 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; If it makes more sense, removing the line which enables it in OptionsEFL.cmake should be easy, and if that&apos;s OK with you #ifdef&apos;ing the part which enables it in FeatureDefines.h is also fine. This should also decrease the amount of silliness in this patch :-)

I think my new try will probably be OK. But someone who works on EFL should figure out why the feature is on. There’s no point turning it on if the back end is not implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890410</commentid>
    <comment_count>17</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2013-05-17 08:46:55 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; But someone who works on EFL should figure out why the feature is on.

Before the CMake changes got in and FeatureDefines.h was created, it looks like it was on by default on !iOS in Platform.h (http://trac.webkit.org/browser/trunk/Source/WTF/wtf/Platform.h?rev=114985), so I guess people just implemented stubs to get the code compiling when the port was upstreamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890412</commentid>
    <comment_count>18</comment_count>
      <attachid>202092</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 08:50:55 -0700</bug_when>
    <thetext>Comment on attachment 202092
Patch

Attachment 202092 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/482822</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890425</commentid>
    <comment_count>19</comment_count>
      <attachid>202092</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:09:59 -0700</bug_when>
    <thetext>Comment on attachment 202092
Patch

Attachment 202092 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/497015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890427</commentid>
    <comment_count>20</comment_count>
      <attachid>202097</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 09:20:19 -0700</bug_when>
    <thetext>Created attachment 202097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890432</commentid>
    <comment_count>21</comment_count>
      <attachid>202097</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:24:47 -0700</bug_when>
    <thetext>Comment on attachment 202097
Patch

Attachment 202097 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/492369</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890433</commentid>
    <comment_count>22</comment_count>
      <attachid>202097</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:25:27 -0700</bug_when>
    <thetext>Comment on attachment 202097
Patch

Attachment 202097 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/493323</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890437</commentid>
    <comment_count>23</comment_count>
      <attachid>202098</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 09:25:57 -0700</bug_when>
    <thetext>Created attachment 202098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890438</commentid>
    <comment_count>24</comment_count>
      <attachid>202098</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:30:37 -0700</bug_when>
    <thetext>Comment on attachment 202098
Patch

Attachment 202098 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/493328</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890439</commentid>
    <comment_count>25</comment_count>
      <attachid>202099</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 09:31:39 -0700</bug_when>
    <thetext>Created attachment 202099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890441</commentid>
    <comment_count>26</comment_count>
      <attachid>202099</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:36:26 -0700</bug_when>
    <thetext>Comment on attachment 202099
Patch

Attachment 202099 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/486466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890444</commentid>
    <comment_count>27</comment_count>
      <attachid>202099</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:37:47 -0700</bug_when>
    <thetext>Comment on attachment 202099
Patch

Attachment 202099 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/481944</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890447</commentid>
    <comment_count>28</comment_count>
      <attachid>202101</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 09:41:35 -0700</bug_when>
    <thetext>Created attachment 202101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890453</commentid>
    <comment_count>29</comment_count>
      <attachid>202101</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:46:14 -0700</bug_when>
    <thetext>Comment on attachment 202101
Patch

Attachment 202101 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/497028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890455</commentid>
    <comment_count>30</comment_count>
      <attachid>202101</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 09:47:53 -0700</bug_when>
    <thetext>Comment on attachment 202101
Patch

Attachment 202101 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/492382</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890456</commentid>
    <comment_count>31</comment_count>
      <attachid>202103</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 09:48:22 -0700</bug_when>
    <thetext>Created attachment 202103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890468</commentid>
    <comment_count>32</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-17 09:57:09 -0700</bug_when>
    <thetext>Committed r150268: &lt;http://trac.webkit.org/changeset/150268&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202011</attachid>
            <date>2013-05-16 20:21:59 -0700</date>
            <delta_ts>2013-05-16 20:44:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130516202053.patch</filename>
            <type>text/plain</type>
            <size>12310</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYxODI1N2ZkYmQ3ZGVh
MjU2NmFhYjI0MGFkNjcxYmVlZjhhNjE4MS4uMDVhYmMzNTU4NGIzNDdmZTQ1NmRlMGZkNzczNTRl
MWVhZGNlZDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA1LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBEZWxldGVkIENsaXBib2FyZEVmbCBz
b3VyY2UgZmlsZXMuCisKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6IFN3aXRjaGVkIEVGTCBh
d2F5IGZyb20gImxlZ2FjeSIgbW9kZSBmb3IgQ2xpcGJvYXJkLgorCisgICAgICAgICogcGFnZS9l
ZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDogUmVtb3ZlZCBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nQ2xpcGJvYXJkCisgICAgICAgIGZ1bmN0aW9uIHNpbmNlIERSQUdfU1VQUE9SVCBpcyBub3Qg
ZGVmaW5lZCBmb3IgRUZMIGFueXdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
aDogUmVtb3ZlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcDog
QSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0CisgICAgICAgIGhhcyBu
byBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMhIEkgZGlkbid0IGFk
ZCBvbmUuCisgICAgICAgIERlbGV0ZWQgdW5uZWVkZWQgd3JpdGVQbGFpblRleHQsIHdyaXRlU2Vs
ZWN0aW9uLCBhbmQgd3JpdGVVUkwgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpoYXNEYXRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0
cmluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4K
KwogMjAxMy0wNS0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gTWFrZSBDbGlwYm9hcmQ6OmNyZWF0ZSBmdW5jdGlvbnMgZm9yIE1hYyBwbGF0Zm9ybSBp
bmRlcGVuZGVudCBieSBtb3ZpbmcgUGFzdGVib2FyZCBjcmVhdGlvbiB0byBQYXN0ZWJvYXJkIGZ1
bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBlMWU0ZjU1YzI4YWI5YTJiNTU4
M2QxZjc2MDMwZjlhNTMxY2Q5MzZhLi5mNjQ4YWQ0YzRmOGZiMWVkNzZhZTNmMzIwZmRmOTc5OTdj
ZDMxMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNTIsNyArNTIsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2VmbC9Bc3luY0ZpbGVTeXN0
ZW1FZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5jcHAKLSAgICBw
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVu
dUVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAogICAgIHBs
YXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKaW5kZXggODIxNDMw
NzdkOTlhYjNhOGJlMTVmMWEzNmExMDVlODA4ZTFiOTExYS4uZjYzMGRkZWI4NjQ5NDVlNjE3OTIy
YjY0NzdhY2RlZTcwM2RhMDM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBi
b2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaApAQCAtMzQsNyArMzQs
NyBAQAogLy8gVGhpcyBET00gb2JqZWN0IG5vdyB3b3JrcyBieSBjYWxsaW5nIHRocm91Z2ggdG8g
Y2xhc3NlcyBpbiB0aGUgcGxhdGZvcm0gbGF5ZXIuCiAvLyBTcGVjaWZpY2FsbHksIHRoZSBjbGFz
cyBjdXJyZW50bHkgbmFtZWQgUGFzdGVib2FyZC4gVGhlIGxlZ2FjeSBzdHlsZSBpbnN0ZWFkCiAv
LyB1c2VzIHRoaXMgYXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KLSNkZWZpbmUgV1RGX1VTRV9M
RUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oSU9TKSB8fCBQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKSkKKyNkZWZpbmUgV1RGX1VTRV9MRUdBQ1lfU1RZ
TEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKFdJ
TikpCiAKICNpZiBVU0UoTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9DTEFTUykKICNk
ZWZpbmUgTEVHQUNZX1ZJUlRVQUwgdmlydHVhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2
ZW50SGFuZGxlckVmbC5jcHAKaW5kZXggZTM2ZWRjYjRlYmU1ODhkM2Q0ZGQxMjExOWVhNzdjZGIy
ZGVjMTE4ZC4uZjg4ZmI5OGI3OGNlODExYTA1ZDk2YjI0YTI0ZTY1ZjRkMjc1ZWMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC0yOSw3ICsyOSw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAKLSNp
bmNsdWRlICJDbGlwYm9hcmRFZmwuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtOTYsMTMg
Kzk1LDYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2UKICAgICByZXR1cm4gdG9GcmFtZVZpZXco
d2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQp
OwogfQogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBF
dmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gQ2xpcGJvYXJkRWZsOjpjcmVhdGUoQ2xpcGJvYXJkV3JpdGFibGUsIENsaXBib2FyZDo6RHJh
Z0FuZERyb3ApOwotfQotI2VuZGlmCi0KIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVz
c0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1l
KiBzdWJmcmFtZSkKIHsKICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNl
UHJlc3NFdmVudChtZXYuZXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
bGlwYm9hcmRFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDRhYzIwY2Zj
OWFmMTNiMWZkZTVkMjZkYzRlMjMwYTBhMGIyMWNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTU1ICswLDAgQEAKLS8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQotICogIENv
cHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaXBib2Fy
ZEVmbC5oIgotCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUxpc3QuaCIKLSNpbmNsdWRlICJF
ZGl0b3IuaCIKLSNpbmNsdWRlICJGaWxlTGlzdC5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1QYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5lcmFsQ2xpcGJvYXJkKENs
aXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIEZyYW1lKikKLXsKLSAgICByZXR1cm4gQ2xpcGJv
YXJkRWZsOjpjcmVhdGUocG9saWN5LCBDbGlwYm9hcmQ6OkNvcHlBbmRQYXN0ZSk7Ci19Ci0KLVBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZShDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3ksIERyYWdEYXRhKiwgRnJhbWUqKQotewotICAgIHJldHVybiAwOwotfQotCi1DbGlwYm9hcmRF
Zmw6OkNsaXBib2FyZEVmbChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBDbGlwYm9hcmRU
eXBlIGNsaXBib2FyZFR5cGUpCi0gICAgOiBDbGlwYm9hcmQocG9saWN5LCBjbGlwYm9hcmRUeXBl
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLUNsaXBib2FyZEVmbDo6fkNsaXBib2Fy
ZEVmbCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6
OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVBsYWluVGV4dChjb25zdCBXVEY6OlN0cmluZyYpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OmNsZWFyQWxs
RGF0YSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotU3RyaW5nIENsaXBib2FyZEVm
bDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIENsaXBib2FyZEVmbDo6c2V0RGF0YShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1MaXN0SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZEVmbDo6
dHlwZXMoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIExpc3RI
YXNoU2V0PFN0cmluZz4oKTsKLX0KLQotUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJkRWZs
OjpmaWxlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsK
LX0KLQotSW50UG9pbnQgQ2xpcGJvYXJkRWZsOjpkcmFnTG9jYXRpb24oKSBjb25zdAotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFBvaW50KDAsIDApOwotfQotCi1DYWNo
ZWRJbWFnZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2UoKSBjb25zdAotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjpzZXREcmFn
SW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotTm9kZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2VFbGVtZW50KCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi12b2lkIENsaXBib2FyZEVm
bDo6c2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwgY29uc3QgSW50UG9pbnQmKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLURyYWdJbWFnZVJlZiBDbGlwYm9hcmRFZmw6OmNyZWF0ZURy
YWdJbWFnZShJbnRQb2ludCYpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFn
ZShFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVVUkwoY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1ib29sIENsaXBib2FyZEVmbDo6aGFzRGF0YSgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLSNpZiBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+
IENsaXBib2FyZEVmbDo6aXRlbXMoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0jZW5kaWYKLQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xp
cGJvYXJkRWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNGViNTIxN2I3ZmU3
NGI1ZWQzODQzYTczZDkzZWQxNTRlYTU3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVm
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKLSAqLwotCi0jaWZuZGVmIENsaXBib2FyZEVmbF9oCi0jZGVmaW5lIENsaXBib2FyZEVmbF9o
Ci0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3Mg
Q2FjaGVkSW1hZ2U7Ci0KLWNsYXNzIENsaXBib2FyZEVmbCA6IHB1YmxpYyBDbGlwYm9hcmQgewot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZEVmbD4gY3JlYXRlKENsaXBi
b2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIENsaXBib2FyZFR5cGUgY2xpcGJvYXJkVHlwZSA9IENv
cHlBbmRQYXN0ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJk
RWZsKHBvbGljeSwgY2xpcGJvYXJkVHlwZSkpOwotICAgIH0KLSAgICB+Q2xpcGJvYXJkRWZsKCk7
Ci0KLSAgICB2b2lkIGNsZWFyRGF0YShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNsZWFyQWxs
RGF0YSgpOwotICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIGJv
b2wgc2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKLQotICAgIExpc3RIYXNo
U2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsZUxp
c3Q+IGZpbGVzKCkgY29uc3Q7Ci0KLSAgICBJbnRQb2ludCBkcmFnTG9jYXRpb24oKSBjb25zdDsK
LSAgICBDYWNoZWRJbWFnZSogZHJhZ0ltYWdlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREcmFnSW1h
Z2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpOwotICAgIE5vZGUqIGRyYWdJbWFnZUVs
ZW1lbnQoKTsKLSAgICB2b2lkIHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSosIGNvbnN0IEludFBv
aW50Jik7Ci0KLSAgICB2aXJ0dWFsIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9p
bnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVs
ZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgd3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKik7Ci0gICAg
dmlydHVhbCB2b2lkIHdyaXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopOwotCi0gICAgdmlydHVhbCBi
b29sIGhhc0RhdGEoKTsKLQotICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBsYWluVGV4dChjb25zdCBX
VEY6OlN0cmluZyYpOwotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpOwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgQ2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgQ2xpcGJv
YXJkVHlwZSk7Ci19OwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9QYXN0ZWJvYXJkRWZsLmNwcAppbmRleCBkNDQzMGM2MTNhNzNiNTQ1YmEyNmU0YmIwMDM2Y2Uy
MGVmZTcwOGFhLi41NTlhMWMwN2JmMmQwMDA3MmMwNWRmZWM3OTY5YmVjOWYxYjgzYjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC0yMywx
NSArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIK
IAotI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCi0jaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJtYXJrdXAuaCIKLSNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTkgKzM4LDE0IEBAIFBhc3RlYm9h
cmQ6OlBhc3RlYm9hcmQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKQor
UGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVT
ZWxlY3Rpb24oUmFuZ2UqLCBib29sLCBGcmFtZSosIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4
dEZvckNsaXBib2FyZCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgUGFzdGVib2FyZCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6
d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCkBAIC05NCw0ICs4
MSwzOCBAQCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKICAgICByZXR1cm4g
U3RyaW5nKCk7CiB9CiAKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xl
YXIoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcg
UGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
U3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworTGlzdEhhc2hTZXQ8U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlcygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOwor
fQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202043</attachid>
            <date>2013-05-16 20:44:33 -0700</date>
            <delta_ts>2013-05-16 20:58:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130516204327.patch</filename>
            <type>text/plain</type>
            <size>12333</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYxODI1N2ZkYmQ3ZGVh
MjU2NmFhYjI0MGFkNjcxYmVlZjhhNjE4MS4uMDVhYmMzNTU4NGIzNDdmZTQ1NmRlMGZkNzczNTRl
MWVhZGNlZDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA1LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBEZWxldGVkIENsaXBib2FyZEVmbCBz
b3VyY2UgZmlsZXMuCisKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6IFN3aXRjaGVkIEVGTCBh
d2F5IGZyb20gImxlZ2FjeSIgbW9kZSBmb3IgQ2xpcGJvYXJkLgorCisgICAgICAgICogcGFnZS9l
ZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDogUmVtb3ZlZCBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nQ2xpcGJvYXJkCisgICAgICAgIGZ1bmN0aW9uIHNpbmNlIERSQUdfU1VQUE9SVCBpcyBub3Qg
ZGVmaW5lZCBmb3IgRUZMIGFueXdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
aDogUmVtb3ZlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcDog
QSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0CisgICAgICAgIGhhcyBu
byBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMhIEkgZGlkbid0IGFk
ZCBvbmUuCisgICAgICAgIERlbGV0ZWQgdW5uZWVkZWQgd3JpdGVQbGFpblRleHQsIHdyaXRlU2Vs
ZWN0aW9uLCBhbmQgd3JpdGVVUkwgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpoYXNEYXRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0
cmluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4K
KwogMjAxMy0wNS0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gTWFrZSBDbGlwYm9hcmQ6OmNyZWF0ZSBmdW5jdGlvbnMgZm9yIE1hYyBwbGF0Zm9ybSBp
bmRlcGVuZGVudCBieSBtb3ZpbmcgUGFzdGVib2FyZCBjcmVhdGlvbiB0byBQYXN0ZWJvYXJkIGZ1
bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBlMWU0ZjU1YzI4YWI5YTJiNTU4
M2QxZjc2MDMwZjlhNTMxY2Q5MzZhLi5mNjQ4YWQ0YzRmOGZiMWVkNzZhZTNmMzIwZmRmOTc5OTdj
ZDMxMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNTIsNyArNTIsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2VmbC9Bc3luY0ZpbGVTeXN0
ZW1FZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5jcHAKLSAgICBw
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVu
dUVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAogICAgIHBs
YXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKaW5kZXggODIxNDMw
NzdkOTlhYjNhOGJlMTVmMWEzNmExMDVlODA4ZTFiOTExYS4uZjYzMGRkZWI4NjQ5NDVlNjE3OTIy
YjY0NzdhY2RlZTcwM2RhMDM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBi
b2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaApAQCAtMzQsNyArMzQs
NyBAQAogLy8gVGhpcyBET00gb2JqZWN0IG5vdyB3b3JrcyBieSBjYWxsaW5nIHRocm91Z2ggdG8g
Y2xhc3NlcyBpbiB0aGUgcGxhdGZvcm0gbGF5ZXIuCiAvLyBTcGVjaWZpY2FsbHksIHRoZSBjbGFz
cyBjdXJyZW50bHkgbmFtZWQgUGFzdGVib2FyZC4gVGhlIGxlZ2FjeSBzdHlsZSBpbnN0ZWFkCiAv
LyB1c2VzIHRoaXMgYXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KLSNkZWZpbmUgV1RGX1VTRV9M
RUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oSU9TKSB8fCBQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKSkKKyNkZWZpbmUgV1RGX1VTRV9MRUdBQ1lfU1RZ
TEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShCTEFDS0JFUlJZKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKFdJ
TikpCiAKICNpZiBVU0UoTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9DTEFTUykKICNk
ZWZpbmUgTEVHQUNZX1ZJUlRVQUwgdmlydHVhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2
ZW50SGFuZGxlckVmbC5jcHAKaW5kZXggZTM2ZWRjYjRlYmU1ODhkM2Q0ZGQxMjExOWVhNzdjZGIy
ZGVjMTE4ZC4uZjg4ZmI5OGI3OGNlODExYTA1ZDk2YjI0YTI0ZTY1ZjRkMjc1ZWMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC0yOSw3ICsyOSw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAKLSNp
bmNsdWRlICJDbGlwYm9hcmRFZmwuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtOTYsMTMg
Kzk1LDYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2UKICAgICByZXR1cm4gdG9GcmFtZVZpZXco
d2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQp
OwogfQogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBF
dmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gQ2xpcGJvYXJkRWZsOjpjcmVhdGUoQ2xpcGJvYXJkV3JpdGFibGUsIENsaXBib2FyZDo6RHJh
Z0FuZERyb3ApOwotfQotI2VuZGlmCi0KIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVz
c0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1l
KiBzdWJmcmFtZSkKIHsKICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNl
UHJlc3NFdmVudChtZXYuZXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
bGlwYm9hcmRFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDRhYzIwY2Zj
OWFmMTNiMWZkZTVkMjZkYzRlMjMwYTBhMGIyMWNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTU1ICswLDAgQEAKLS8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQotICogIENv
cHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaXBib2Fy
ZEVmbC5oIgotCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUxpc3QuaCIKLSNpbmNsdWRlICJF
ZGl0b3IuaCIKLSNpbmNsdWRlICJGaWxlTGlzdC5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1QYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5lcmFsQ2xpcGJvYXJkKENs
aXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIEZyYW1lKikKLXsKLSAgICByZXR1cm4gQ2xpcGJv
YXJkRWZsOjpjcmVhdGUocG9saWN5LCBDbGlwYm9hcmQ6OkNvcHlBbmRQYXN0ZSk7Ci19Ci0KLVBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZShDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3ksIERyYWdEYXRhKiwgRnJhbWUqKQotewotICAgIHJldHVybiAwOwotfQotCi1DbGlwYm9hcmRF
Zmw6OkNsaXBib2FyZEVmbChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBDbGlwYm9hcmRU
eXBlIGNsaXBib2FyZFR5cGUpCi0gICAgOiBDbGlwYm9hcmQocG9saWN5LCBjbGlwYm9hcmRUeXBl
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLUNsaXBib2FyZEVmbDo6fkNsaXBib2Fy
ZEVmbCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6
OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVBsYWluVGV4dChjb25zdCBXVEY6OlN0cmluZyYpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OmNsZWFyQWxs
RGF0YSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotU3RyaW5nIENsaXBib2FyZEVm
bDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIENsaXBib2FyZEVmbDo6c2V0RGF0YShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1MaXN0SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZEVmbDo6
dHlwZXMoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIExpc3RI
YXNoU2V0PFN0cmluZz4oKTsKLX0KLQotUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJkRWZs
OjpmaWxlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsK
LX0KLQotSW50UG9pbnQgQ2xpcGJvYXJkRWZsOjpkcmFnTG9jYXRpb24oKSBjb25zdAotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFBvaW50KDAsIDApOwotfQotCi1DYWNo
ZWRJbWFnZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2UoKSBjb25zdAotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjpzZXREcmFn
SW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotTm9kZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2VFbGVtZW50KCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi12b2lkIENsaXBib2FyZEVm
bDo6c2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwgY29uc3QgSW50UG9pbnQmKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLURyYWdJbWFnZVJlZiBDbGlwYm9hcmRFZmw6OmNyZWF0ZURy
YWdJbWFnZShJbnRQb2ludCYpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFn
ZShFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVVUkwoY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1ib29sIENsaXBib2FyZEVmbDo6aGFzRGF0YSgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLSNpZiBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+
IENsaXBib2FyZEVmbDo6aXRlbXMoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0jZW5kaWYKLQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xp
cGJvYXJkRWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNGViNTIxN2I3ZmU3
NGI1ZWQzODQzYTczZDkzZWQxNTRlYTU3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVm
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKLSAqLwotCi0jaWZuZGVmIENsaXBib2FyZEVmbF9oCi0jZGVmaW5lIENsaXBib2FyZEVmbF9o
Ci0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3Mg
Q2FjaGVkSW1hZ2U7Ci0KLWNsYXNzIENsaXBib2FyZEVmbCA6IHB1YmxpYyBDbGlwYm9hcmQgewot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZEVmbD4gY3JlYXRlKENsaXBi
b2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIENsaXBib2FyZFR5cGUgY2xpcGJvYXJkVHlwZSA9IENv
cHlBbmRQYXN0ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJk
RWZsKHBvbGljeSwgY2xpcGJvYXJkVHlwZSkpOwotICAgIH0KLSAgICB+Q2xpcGJvYXJkRWZsKCk7
Ci0KLSAgICB2b2lkIGNsZWFyRGF0YShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNsZWFyQWxs
RGF0YSgpOwotICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIGJv
b2wgc2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKLQotICAgIExpc3RIYXNo
U2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsZUxp
c3Q+IGZpbGVzKCkgY29uc3Q7Ci0KLSAgICBJbnRQb2ludCBkcmFnTG9jYXRpb24oKSBjb25zdDsK
LSAgICBDYWNoZWRJbWFnZSogZHJhZ0ltYWdlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREcmFnSW1h
Z2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpOwotICAgIE5vZGUqIGRyYWdJbWFnZUVs
ZW1lbnQoKTsKLSAgICB2b2lkIHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSosIGNvbnN0IEludFBv
aW50Jik7Ci0KLSAgICB2aXJ0dWFsIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9p
bnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVs
ZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgd3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKik7Ci0gICAg
dmlydHVhbCB2b2lkIHdyaXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopOwotCi0gICAgdmlydHVhbCBi
b29sIGhhc0RhdGEoKTsKLQotICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBsYWluVGV4dChjb25zdCBX
VEY6OlN0cmluZyYpOwotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpOwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgQ2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgQ2xpcGJv
YXJkVHlwZSk7Ci19OwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9QYXN0ZWJvYXJkRWZsLmNwcAppbmRleCBkNDQzMGM2MTNhNzNiNTQ1YmEyNmU0YmIwMDM2Y2Uy
MGVmZTcwOGFhLi4zZGZhNWU2MWVhM2IzMTZkOTAzMTY4NjE4ZmM4ODE5ZjY3NjRlNDA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC0yNCwx
NCArMjQsOCBAQAogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5j
bHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUmVu
ZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSAiU3RyaW5n
SGFzaC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDE5ICs0MCwxNCBAQCBQYXN0
ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIFNtYXJ0UmVwbGFjZU9wdGlv
bikKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBh
c3RlKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
UGFzdGVib2FyZCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2Uq
LCBib29sLCBGcmFtZSosIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCkK
K1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogfQogCiB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlSW1hZ2UoTm9kZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKQpAQCAtOTQs
NCArODMsMzkgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSopCiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCitib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6
OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3Ry
aW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjp3
cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitMaXN0SGFzaFNldDxTdHJpbmc+IFBh
c3RlYm9hcmQ6OnR5cGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBM
aXN0SGFzaFNldDxTdHJpbmc+KCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJl
YWRGaWxlbmFtZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFZlY3Rv
cjxTdHJpbmc+KCk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202044</attachid>
            <date>2013-05-16 20:59:03 -0700</date>
            <delta_ts>2013-05-16 21:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130516205757.patch</filename>
            <type>text/plain</type>
            <size>12275</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uYWViZDNkZjIwYTE1M2RjNjVjNzQzZTI4YTljNjQ4
ZTViM2VlYjJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA1LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBEZWxldGVkIENsaXBib2FyZEVmbCBz
b3VyY2UgZmlsZXMuCisKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6IFN3aXRjaGVkIEVGTCBh
d2F5IGZyb20gImxlZ2FjeSIgbW9kZSBmb3IgQ2xpcGJvYXJkLgorCisgICAgICAgICogcGFnZS9l
ZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDogUmVtb3ZlZCBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nQ2xpcGJvYXJkCisgICAgICAgIGZ1bmN0aW9uIHNpbmNlIERSQUdfU1VQUE9SVCBpcyBub3Qg
ZGVmaW5lZCBmb3IgRUZMIGFueXdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
aDogUmVtb3ZlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcDog
QSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0CisgICAgICAgIGhhcyBu
byBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMhIEkgZGlkbid0IGFk
ZCBvbmUuCisgICAgICAgIERlbGV0ZWQgdW5uZWVkZWQgd3JpdGVQbGFpblRleHQsIHdyaXRlU2Vs
ZWN0aW9uLCBhbmQgd3JpdGVVUkwgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpoYXNEYXRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0
cmluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4K
KwogMjAxMy0wNS0xNiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9w
ZW5ib3NzYS5vcmc+CiAKICAgICAgICAgQWRkIHN0dWJzIGZvciBDb250ZXh0TWVudSBhbmQgQ29u
dGV4dE1lbnVJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGY0OTY2NDcyNTA5Nzlh
YzQ3YWZlNTNkYzI0YmE0MzJmOGUxNTA1N2EuLmRmNWMxY2Q5MmJlMjc4OWZlMzAyMjUwZTgzMTQ3
MTc3YzM0NjkzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01Miw3ICs1Miw2IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vZWZsL0FzeW5jRmls
ZVN5c3RlbUVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcAot
ICAgIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCiAgICAgcGxhdGZvcm0vQ29udGV4dE1l
bnVOb25lLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbU5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRleCA4MjE0MzA3
N2Q5OWFiM2E4YmUxNWYxYTM2YTEwNWU4MDhlMWI5MTFhLi5mNjMwZGRlYjg2NDk0NWU2MTc5MjJi
NjQ3N2FjZGVlNzAzZGEwMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0zNCw3ICszNCw3
IEBACiAvLyBUaGlzIERPTSBvYmplY3Qgbm93IHdvcmtzIGJ5IGNhbGxpbmcgdGhyb3VnaCB0byBj
bGFzc2VzIGluIHRoZSBwbGF0Zm9ybSBsYXllci4KIC8vIFNwZWNpZmljYWxseSwgdGhlIGNsYXNz
IGN1cnJlbnRseSBuYW1lZCBQYXN0ZWJvYXJkLiBUaGUgbGVnYWN5IHN0eWxlIGluc3RlYWQKIC8v
IHVzZXMgdGhpcyBhcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgotI2RlZmluZSBXVEZfVVNFX0xF
R0FDWV9TVFlMRV9BQlNUUkFDVF9DTElQQk9BUkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkp
IHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShXSU4pKQorI2RlZmluZSBXVEZfVVNFX0xFR0FDWV9TVFlM
RV9BQlNUUkFDVF9DTElQQk9BUkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lO
KSkKIAogI2lmIFVTRShMRUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTKQogI2Rl
ZmluZSBMRUdBQ1lfVklSVFVBTCB2aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcAppbmRleCBlMzZlZGNiNGViZTU4OGQzZDRkZDEyMTE5ZWE3N2NkYjJk
ZWMxMThkLi5mODhmYjk4Yjc4Y2U4MTFhMDVkOTZiMjRhMjRlNjVmNGQyNzVlYzNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTI5LDcgKzI5LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2lu
Y2x1ZGUgIkNsaXBib2FyZEVmbC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC05NiwxMyAr
OTUsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRnZQogICAgIHJldHVybiB0b0ZyYW1lVmlldyh3
aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7
CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAotewotICAgIHJldHVy
biBDbGlwYm9hcmRFZmw6OmNyZWF0ZShDbGlwYm9hcmRXcml0YWJsZSwgQ2xpcGJvYXJkOjpEcmFn
QW5kRHJvcCk7Ci19Ci0jZW5kaWYKLQogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNz
RXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUq
IHN1YmZyYW1lKQogewogICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQ
cmVzc0V2ZW50KG1ldi5ldmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Ns
aXBib2FyZEVmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNGFjMjBjZmM5
YWYxM2IxZmRlNWQyNmRjNGUyMzBhMGEwYjIxY2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2Fy
ZEVmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUgKzAsMCBAQAotLyoKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJk
RWZsLmgiCi0KLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIgotI2luY2x1ZGUgIkVk
aXRvci5oIgotI2luY2x1ZGUgIkZpbGVMaXN0LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xp
cGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqKQotewotICAgIHJldHVybiBDbGlwYm9h
cmRFZmw6OmNyZWF0ZShwb2xpY3ksIENsaXBib2FyZDo6Q29weUFuZFBhc3RlKTsKLX0KLQotUGFz
c1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlKENsaXBib2FyZEFjY2Vzc1BvbGlj
eSwgRHJhZ0RhdGEqLCBGcmFtZSopCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLUNsaXBib2FyZEVm
bDo6Q2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIENsaXBib2FyZFR5
cGUgY2xpcGJvYXJkVHlwZSkKLSAgICA6IENsaXBib2FyZChwb2xpY3ksIGNsaXBib2FyZFR5cGUp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotQ2xpcGJvYXJkRWZsOjp+Q2xpcGJvYXJk
RWZsKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6
Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBDbGlwYm9hcmRFZmw6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFdURjo6U3RyaW5nJikKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6Y2xlYXJBbGxE
YXRhKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1TdHJpbmcgQ2xpcGJvYXJkRWZs
OjpnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkRWZsOjpzZXREYXRhKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLUxpc3RIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkRWZsOjp0
eXBlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTGlzdEhh
c2hTZXQ8U3RyaW5nPigpOwotfQotCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBDbGlwYm9hcmRFZmw6
OmZpbGVzKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwot
fQotCi1JbnRQb2ludCBDbGlwYm9hcmRFZmw6OmRyYWdMb2NhdGlvbigpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50UG9pbnQoMCwgMCk7Ci19Ci0KLUNhY2hl
ZEltYWdlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OnNldERyYWdJ
bWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50JikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi1Ob2RlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZUVsZW1lbnQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZs
OjpzZXREcmFnSW1hZ2VFbGVtZW50KE5vZGUqLCBjb25zdCBJbnRQb2ludCYpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotRHJhZ0ltYWdlUmVmIENsaXBib2FyZEVmbDo6Y3JlYXRlRHJh
Z0ltYWdlKEludFBvaW50JikgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiAwOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVVSTChjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVJhbmdlKFJhbmdlKiwgRnJhbWUqKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkRWZsOjpoYXNEYXRhKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4g
Q2xpcGJvYXJkRWZsOjppdGVtcygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gMDsKLX0KLSNlbmRpZgotCi0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlw
Ym9hcmRFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA0ZWI1MjE3YjdmZTc0
YjVlZDM4NDNhNzNkOTNlZDE1NGVhNTdjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykg
MjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogIENvcHlyaWdodCAo
QykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQotICovCi0KLSNpZm5kZWYgQ2xpcGJvYXJkRWZsX2gKLSNkZWZpbmUgQ2xpcGJvYXJkRWZsX2gK
LQotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBD
YWNoZWRJbWFnZTsKLQotY2xhc3MgQ2xpcGJvYXJkRWZsIDogcHVibGljIENsaXBib2FyZCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkRWZsPiBjcmVhdGUoQ2xpcGJv
YXJkQWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBjbGlwYm9hcmRUeXBlID0gQ29w
eUFuZFBhc3RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmRF
ZmwocG9saWN5LCBjbGlwYm9hcmRUeXBlKSk7Ci0gICAgfQotICAgIH5DbGlwYm9hcmRFZmwoKTsK
LQotICAgIHZvaWQgY2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2xlYXJBbGxE
YXRhKCk7Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgYm9v
bCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwotCi0gICAgTGlzdEhhc2hT
ZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlz
dD4gZmlsZXMoKSBjb25zdDsKLQotICAgIEludFBvaW50IGRyYWdMb2NhdGlvbigpIGNvbnN0Owot
ICAgIENhY2hlZEltYWdlKiBkcmFnSW1hZ2UoKSBjb25zdDsKLSAgICB2b2lkIHNldERyYWdJbWFn
ZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7Ci0gICAgTm9kZSogZHJhZ0ltYWdlRWxl
bWVudCgpOwotICAgIHZvaWQgc2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwgY29uc3QgSW50UG9p
bnQmKTsKLQotICAgIHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZShJbnRQb2lu
dCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxl
bWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopOwotICAgIHZpcnR1YWwg
dm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgd3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKik7Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgaGFzRGF0YSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlUGxhaW5UZXh0KGNvbnN0IFdU
Rjo6U3RyaW5nJik7Ci0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7Ci0jZW5kaWYKLQot
cHJpdmF0ZToKLSAgICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9h
cmRUeXBlKTsKLX07Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IGQ0NDMwYzYxM2E3M2I1NDViYTI2ZTRiYjAwMzZjZTIw
ZWZlNzA4YWEuLjNkZmE1ZTYxZWEzYjMxNmQ5MDMxNjg2MThmYzg4MTlmNjc2NGU0MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKQEAgLTI0LDE0
ICsyNCw4IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNs
dWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZW5k
ZXJJbWFnZS5oIgotI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlICJTdHJpbmdI
YXNoLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTkgKzQwLDE0IEBAIFBhc3Rl
Ym9hcmQ6OlBhc3RlYm9hcmQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFz
dGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9u
KQorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFz
dGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YXN0ZWJvYXJkKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSos
IGJvb2wsIEZyYW1lKiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKQor
UGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9CiAKIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpCkBAIC05NCw0
ICs4MywzOSBAQCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6
Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJp
bmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFBhc3RlYm9hcmQ6Ondy
aXRlU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0xpc3RIYXNoU2V0PFN0cmluZz4gUGFz
dGVib2FyZDo6dHlwZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIExp
c3RIYXNoU2V0PFN0cmluZz4oKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVh
ZEZpbGVuYW1lcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gVmVjdG9y
PFN0cmluZz4oKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202045</attachid>
            <date>2013-05-16 21:09:21 -0700</date>
            <delta_ts>2013-05-17 08:24:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130516210814.patch</filename>
            <type>text/plain</type>
            <size>12284</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uYWViZDNkZjIwYTE1M2RjNjVjNzQzZTI4YTljNjQ4
ZTViM2VlYjJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA1LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBEZWxldGVkIENsaXBib2FyZEVmbCBz
b3VyY2UgZmlsZXMuCisKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6IFN3aXRjaGVkIEVGTCBh
d2F5IGZyb20gImxlZ2FjeSIgbW9kZSBmb3IgQ2xpcGJvYXJkLgorCisgICAgICAgICogcGFnZS9l
ZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDogUmVtb3ZlZCBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nQ2xpcGJvYXJkCisgICAgICAgIGZ1bmN0aW9uIHNpbmNlIERSQUdfU1VQUE9SVCBpcyBub3Qg
ZGVmaW5lZCBmb3IgRUZMIGFueXdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
aDogUmVtb3ZlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcDog
QSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0CisgICAgICAgIGhhcyBu
byBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMhIEkgZGlkbid0IGFk
ZCBvbmUuCisgICAgICAgIERlbGV0ZWQgdW5uZWVkZWQgd3JpdGVQbGFpblRleHQsIHdyaXRlU2Vs
ZWN0aW9uLCBhbmQgd3JpdGVVUkwgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpoYXNEYXRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0
cmluZyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4K
KwogMjAxMy0wNS0xNiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9w
ZW5ib3NzYS5vcmc+CiAKICAgICAgICAgQWRkIHN0dWJzIGZvciBDb250ZXh0TWVudSBhbmQgQ29u
dGV4dE1lbnVJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGY0OTY2NDcyNTA5Nzlh
YzQ3YWZlNTNkYzI0YmE0MzJmOGUxNTA1N2EuLmRmNWMxY2Q5MmJlMjc4OWZlMzAyMjUwZTgzMTQ3
MTc3YzM0NjkzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC01Miw3ICs1Miw2IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vZWZsL0FzeW5jRmls
ZVN5c3RlbUVmbC5jcHAKICAgICBwbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcAot
ICAgIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCiAgICAgcGxhdGZvcm0vQ29udGV4dE1l
bnVOb25lLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbU5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRleCA4MjE0MzA3
N2Q5OWFiM2E4YmUxNWYxYTM2YTEwNWU4MDhlMWI5MTFhLi5mNjMwZGRlYjg2NDk0NWU2MTc5MjJi
NjQ3N2FjZGVlNzAzZGEwMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0zNCw3ICszNCw3
IEBACiAvLyBUaGlzIERPTSBvYmplY3Qgbm93IHdvcmtzIGJ5IGNhbGxpbmcgdGhyb3VnaCB0byBj
bGFzc2VzIGluIHRoZSBwbGF0Zm9ybSBsYXllci4KIC8vIFNwZWNpZmljYWxseSwgdGhlIGNsYXNz
IGN1cnJlbnRseSBuYW1lZCBQYXN0ZWJvYXJkLiBUaGUgbGVnYWN5IHN0eWxlIGluc3RlYWQKIC8v
IHVzZXMgdGhpcyBhcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgotI2RlZmluZSBXVEZfVVNFX0xF
R0FDWV9TVFlMRV9BQlNUUkFDVF9DTElQQk9BUkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkp
IHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShXSU4pKQorI2RlZmluZSBXVEZfVVNFX0xFR0FDWV9TVFlM
RV9BQlNUUkFDVF9DTElQQk9BUkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lO
KSkKIAogI2lmIFVTRShMRUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTKQogI2Rl
ZmluZSBMRUdBQ1lfVklSVFVBTCB2aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcAppbmRleCBlMzZlZGNiNGViZTU4OGQzZDRkZDEyMTE5ZWE3N2NkYjJk
ZWMxMThkLi5mODhmYjk4Yjc4Y2U4MTFhMDVkOTZiMjRhMjRlNjVmNGQyNzVlYzNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTI5LDcgKzI5LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2lu
Y2x1ZGUgIkNsaXBib2FyZEVmbC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC05NiwxMyAr
OTUsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRnZQogICAgIHJldHVybiB0b0ZyYW1lVmlldyh3
aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7
CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAotewotICAgIHJldHVy
biBDbGlwYm9hcmRFZmw6OmNyZWF0ZShDbGlwYm9hcmRXcml0YWJsZSwgQ2xpcGJvYXJkOjpEcmFn
QW5kRHJvcCk7Ci19Ci0jZW5kaWYKLQogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNz
RXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUq
IHN1YmZyYW1lKQogewogICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQ
cmVzc0V2ZW50KG1ldi5ldmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Ns
aXBib2FyZEVmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNGFjMjBjZmM5
YWYxM2IxZmRlNWQyNmRjNGUyMzBhMGEwYjIxY2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2Fy
ZEVmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUgKzAsMCBAQAotLyoKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJk
RWZsLmgiCi0KLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIgotI2luY2x1ZGUgIkVk
aXRvci5oIgotI2luY2x1ZGUgIkZpbGVMaXN0LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xp
cGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqKQotewotICAgIHJldHVybiBDbGlwYm9h
cmRFZmw6OmNyZWF0ZShwb2xpY3ksIENsaXBib2FyZDo6Q29weUFuZFBhc3RlKTsKLX0KLQotUGFz
c1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlKENsaXBib2FyZEFjY2Vzc1BvbGlj
eSwgRHJhZ0RhdGEqLCBGcmFtZSopCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLUNsaXBib2FyZEVm
bDo6Q2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIENsaXBib2FyZFR5
cGUgY2xpcGJvYXJkVHlwZSkKLSAgICA6IENsaXBib2FyZChwb2xpY3ksIGNsaXBib2FyZFR5cGUp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotQ2xpcGJvYXJkRWZsOjp+Q2xpcGJvYXJk
RWZsKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6
Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBDbGlwYm9hcmRFZmw6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFdURjo6U3RyaW5nJikKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6Y2xlYXJBbGxE
YXRhKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1TdHJpbmcgQ2xpcGJvYXJkRWZs
OjpnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkRWZsOjpzZXREYXRhKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLUxpc3RIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkRWZsOjp0
eXBlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTGlzdEhh
c2hTZXQ8U3RyaW5nPigpOwotfQotCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBDbGlwYm9hcmRFZmw6
OmZpbGVzKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwot
fQotCi1JbnRQb2ludCBDbGlwYm9hcmRFZmw6OmRyYWdMb2NhdGlvbigpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50UG9pbnQoMCwgMCk7Ci19Ci0KLUNhY2hl
ZEltYWdlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OnNldERyYWdJ
bWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50JikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi1Ob2RlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZUVsZW1lbnQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZs
OjpzZXREcmFnSW1hZ2VFbGVtZW50KE5vZGUqLCBjb25zdCBJbnRQb2ludCYpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotRHJhZ0ltYWdlUmVmIENsaXBib2FyZEVmbDo6Y3JlYXRlRHJh
Z0ltYWdlKEludFBvaW50JikgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiAwOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVVSTChjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVJhbmdlKFJhbmdlKiwgRnJhbWUqKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkRWZsOjpoYXNEYXRhKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4g
Q2xpcGJvYXJkRWZsOjppdGVtcygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gMDsKLX0KLSNlbmRpZgotCi0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlw
Ym9hcmRFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA0ZWI1MjE3YjdmZTc0
YjVlZDM4NDNhNzNkOTNlZDE1NGVhNTdjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykg
MjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogIENvcHlyaWdodCAo
QykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQotICovCi0KLSNpZm5kZWYgQ2xpcGJvYXJkRWZsX2gKLSNkZWZpbmUgQ2xpcGJvYXJkRWZsX2gK
LQotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBD
YWNoZWRJbWFnZTsKLQotY2xhc3MgQ2xpcGJvYXJkRWZsIDogcHVibGljIENsaXBib2FyZCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkRWZsPiBjcmVhdGUoQ2xpcGJv
YXJkQWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBjbGlwYm9hcmRUeXBlID0gQ29w
eUFuZFBhc3RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGlwYm9hcmRF
ZmwocG9saWN5LCBjbGlwYm9hcmRUeXBlKSk7Ci0gICAgfQotICAgIH5DbGlwYm9hcmRFZmwoKTsK
LQotICAgIHZvaWQgY2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2xlYXJBbGxE
YXRhKCk7Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgYm9v
bCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwotCi0gICAgTGlzdEhhc2hT
ZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlz
dD4gZmlsZXMoKSBjb25zdDsKLQotICAgIEludFBvaW50IGRyYWdMb2NhdGlvbigpIGNvbnN0Owot
ICAgIENhY2hlZEltYWdlKiBkcmFnSW1hZ2UoKSBjb25zdDsKLSAgICB2b2lkIHNldERyYWdJbWFn
ZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7Ci0gICAgTm9kZSogZHJhZ0ltYWdlRWxl
bWVudCgpOwotICAgIHZvaWQgc2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwgY29uc3QgSW50UG9p
bnQmKTsKLQotICAgIHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZShJbnRQb2lu
dCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxl
bWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopOwotICAgIHZpcnR1YWwg
dm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgd3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKik7Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgaGFzRGF0YSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlUGxhaW5UZXh0KGNvbnN0IFdU
Rjo6U3RyaW5nJik7Ci0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7Ci0jZW5kaWYKLQot
cHJpdmF0ZToKLSAgICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9h
cmRUeXBlKTsKLX07Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IGQ0NDMwYzYxM2E3M2I1NDViYTI2ZTRiYjAwMzZjZTIw
ZWZlNzA4YWEuLjlhMWY1NWYxNGZjOTY4NTViZTdkNzg0OTcyNWIwZmIyNjA3MWM3NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKQEAgLTI0LDE0
ICsyNCw4IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNs
dWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZW5k
ZXJJbWFnZS5oIgotI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTkgKzQwLDE0
IEBAIFBhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBs
YWNlT3B0aW9uKQorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBQYXN0ZWJvYXJkKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlv
bihSYW5nZSosIGJvb2wsIEZyYW1lKiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xp
cGJvYXJkKQorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRl
KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9CiAKIHZvaWQg
UGFzdGVib2FyZDo6d3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYp
CkBAIC05NCw0ICs4MywzOSBAQCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKikK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJpbmcmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFBhc3Rl
Ym9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0xpc3RIYXNoU2V0PFN0
cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVi
b2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202092</attachid>
            <date>2013-05-17 08:25:00 -0700</date>
            <delta_ts>2013-05-17 09:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130517082353.patch</filename>
            <type>text/plain</type>
            <size>12191</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uOWEzYzM5ZWU2NDM5MTA2MTAxZDg3NmJjZTBjNDA2
ZWFkYTZhMThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA1LTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBEZWxldGVkIENsaXBib2FyZEVmbCBz
b3VyY2UgZmlsZXMuCisKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6IFN3aXRjaGVkIEVGTCBh
d2F5IGZyb20gImxlZ2FjeSIgbW9kZSBmb3IgQ2xpcGJvYXJkLgorCisgICAgICAgICogcGFnZS9l
ZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDogUmVtb3ZlZCBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nQ2xpcGJvYXJkCisgICAgICAgIGZ1bmN0aW9uIHNpbmNlIERSQUdfU1VQUE9SVCBpcyBub3Qg
ZGVmaW5lZCBmb3IgRUZMIGFueXdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
aDogUmVtb3ZlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcDog
QSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0CisgICAgICAgIGhhcyBu
byBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMhIEkgZGlkbid0IGFk
ZCBvbmUuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFz
dGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpoYXNEYXRhKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OnNldERyYWdJbWFnZSk6IEFkZGVkLgorCiAyMDEzLTA1LTE2ICBKZXN1cyBTYW5j
aGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBB
ZGQgc3R1YnMgZm9yIENvbnRleHRNZW51IGFuZCBDb250ZXh0TWVudUl0ZW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggZjQ5NjY0NzI1MDk3OWFjNDdhZmU1M2RjMjRiYTQzMmY4ZTE1MDU3
YS4uZGY1YzFjZDkyYmUyNzg5ZmUzMDIyNTBlODMxNDcxNzdjMzQ2OTMxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTUyLDcgKzUyLDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAKICAgICBwbGF0Zm9ybS9lZmwvQXN5bmNGaWxlU3lzdGVtRWZsLmNwcAogICAgIHBsYXRm
b3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuY3BwCi0gICAgcGxhdGZvcm0vZWZsL0NsaXBib2Fy
ZEVmbC5jcHAKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVudU5vbmUuY3BwCiAgICAgcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtTm9uZS5jcHAKICAgICBwbGF0Zm9ybS9lZmwvQ3Vyc29yRWZsLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NsaXBib2FyZC5oCmluZGV4IDgyMTQzMDc3ZDk5YWIzYThiZTE1ZjFhMzZhMTA1ZTgw
OGUxYjkxMWEuLmY2MzBkZGViODY0OTQ1ZTYxNzkyMmI2NDc3YWNkZWU3MDNkYTAzNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpcGJvYXJkLmgKQEAgLTM0LDcgKzM0LDcgQEAKIC8vIFRoaXMgRE9NIG9iamVjdCBu
b3cgd29ya3MgYnkgY2FsbGluZyB0aHJvdWdoIHRvIGNsYXNzZXMgaW4gdGhlIHBsYXRmb3JtIGxh
eWVyLgogLy8gU3BlY2lmaWNhbGx5LCB0aGUgY2xhc3MgY3VycmVudGx5IG5hbWVkIFBhc3RlYm9h
cmQuIFRoZSBsZWdhY3kgc3R5bGUgaW5zdGVhZAogLy8gdXNlcyB0aGlzIGFzIGFuIGFic3RyYWN0
IGJhc2UgY2xhc3MuCi0jZGVmaW5lIFdURl9VU0VfTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBC
T0FSRF9DTEFTUyAoUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKFdJ
TikpCisjZGVmaW5lIFdURl9VU0VfTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9DTEFT
UyAoUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShXSU4pKQogCiAjaWYgVVNFKExFR0FDWV9TVFlM
RV9BQlNUUkFDVF9DTElQQk9BUkRfQ0xBU1MpCiAjZGVmaW5lIExFR0FDWV9WSVJUVUFMIHZpcnR1
YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGUz
NmVkY2I0ZWJlNTg4ZDNkNGRkMTIxMTllYTc3Y2RiMmRlYzExOGQuLmY4OGZiOThiNzhjZTgxMWEw
NWQ5NmIyNGEyNGU2NWY0ZDI3NWVjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
ZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkRWZsLmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKQEAgLTk2LDEzICs5NSw2IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFdpZGdlCiAgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFu
ZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0NsaXBib2FyZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENsaXBib2FyZEVmbDo6Y3JlYXRlKENs
aXBib2FyZFdyaXRhYmxlLCBDbGlwYm9hcmQ6OkRyYWdBbmREcm9wKTsKLX0KLSNlbmRpZgotCiBi
b29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCiB7CiAgICAgc3ViZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQobWV2LmV2ZW50KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ0YWMyMGNmYzlhZjEzYjFmZGU1ZDI2ZGM0ZTIzMGEwYTBi
MjFjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE1NSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0
dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9G
VVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1
bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmRFZmwuaCIKLQotI2luY2x1ZGUgIkRhdGFU
cmFuc2Zlckl0ZW1MaXN0LmgiCi0jaW5jbHVkZSAiRWRpdG9yLmgiCi0jaW5jbHVkZSAiRmlsZUxp
c3QuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IEVkaXRvcjo6bmV3R2VuZXJhbENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5
LCBGcmFtZSopCi17Ci0gICAgcmV0dXJuIENsaXBib2FyZEVmbDo6Y3JlYXRlKHBvbGljeSwgQ2xp
cGJvYXJkOjpDb3B5QW5kUGFzdGUpOwotfQotCi1QYXNzUmVmUHRyPENsaXBib2FyZD4gQ2xpcGJv
YXJkOjpjcmVhdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBEcmFnRGF0YSosIEZyYW1lKikKLXsK
LSAgICByZXR1cm4gMDsKLX0KLQotQ2xpcGJvYXJkRWZsOjpDbGlwYm9hcmRFZmwoQ2xpcGJvYXJk
QWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBjbGlwYm9hcmRUeXBlKQotICAgIDog
Q2xpcGJvYXJkKHBvbGljeSwgY2xpcGJvYXJkVHlwZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotfQotCi1DbGlwYm9hcmRFZmw6On5DbGlwYm9hcmRFZmwoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjpjbGVhckRhdGEoY29uc3QgU3RyaW5nJikK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVQ
bGFpblRleHQoY29uc3QgV1RGOjpTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjpjbGVhckFsbERhdGEoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLVN0cmluZyBDbGlwYm9hcmRFZmw6OmdldERhdGEoY29uc3QgU3RyaW5nJikg
Y29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0K
LQotYm9vbCBDbGlwYm9hcmRFZmw6OnNldERhdGEoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotTGlz
dEhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRFZmw6OnR5cGVzKCkgY29uc3QKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7Ci19Ci0KLVBh
c3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZEVmbDo6ZmlsZXMoKSBjb25zdAotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLUludFBvaW50IENsaXBib2FyZEVm
bDo6ZHJhZ0xvY2F0aW9uKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBJbnRQb2ludCgwLCAwKTsKLX0KLQotQ2FjaGVkSW1hZ2UqIENsaXBib2FyZEVmbDo6ZHJh
Z0ltYWdlKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwot
fQotCi12b2lkIENsaXBib2FyZEVmbDo6c2V0RHJhZ0ltYWdlKENhY2hlZEltYWdlKiwgY29uc3Qg
SW50UG9pbnQmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLU5vZGUqIENsaXBib2Fy
ZEVmbDo6ZHJhZ0ltYWdlRWxlbWVudCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OnNldERyYWdJbWFnZUVsZW1lbnQoTm9k
ZSosIGNvbnN0IEludFBvaW50JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1EcmFn
SW1hZ2VSZWYgQ2xpcGJvYXJkRWZsOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmKSBjb25zdAot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xpcGJv
YXJkRWZsOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmLCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9p
ZCBDbGlwYm9hcmRFZmw6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6Ondy
aXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
Ym9vbCBDbGlwYm9hcmRFZmw6Omhhc0RhdGEoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi1Q
YXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBDbGlwYm9hcmRFZmw6Oml0ZW1zKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5MDRlYjUyMTdiN2ZlNzRiNWVkMzg0M2E3M2Q5M2VkMTU0ZWE1N2M4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaAorKysgL2Rldi9udWxsCkBAIC0xLDY5
ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9r
aWEgZGUgVGVjbm9sb2dpYQotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVj
dHJvbmljcwotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBDbGlwYm9h
cmRFZmxfaAotI2RlZmluZSBDbGlwYm9hcmRFZmxfaAotCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENhY2hlZEltYWdlOwotCi1jbGFzcyBDbGlw
Ym9hcmRFZmwgOiBwdWJsaWMgQ2xpcGJvYXJkIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxDbGlwYm9hcmRFZmw+IGNyZWF0ZShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBD
bGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUgPSBDb3B5QW5kUGFzdGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZEVmbChwb2xpY3ksIGNsaXBib2FyZFR5cGUp
KTsKLSAgICB9Ci0gICAgfkNsaXBib2FyZEVmbCgpOwotCi0gICAgdm9pZCBjbGVhckRhdGEoY29u
c3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjbGVhckFsbERhdGEoKTsKLSAgICBTdHJpbmcgZ2V0RGF0
YShjb25zdCBTdHJpbmcmKSBjb25zdDsKLSAgICBib29sIHNldERhdGEoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7Ci0KLSAgICBMaXN0SGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcygpIGNvbnN0OwotCi0gICAg
SW50UG9pbnQgZHJhZ0xvY2F0aW9uKCkgY29uc3Q7Ci0gICAgQ2FjaGVkSW1hZ2UqIGRyYWdJbWFn
ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0RHJhZ0ltYWdlKENhY2hlZEltYWdlKiwgY29uc3QgSW50
UG9pbnQmKTsKLSAgICBOb2RlKiBkcmFnSW1hZ2VFbGVtZW50KCk7Ci0gICAgdm9pZCBzZXREcmFn
SW1hZ2VFbGVtZW50KE5vZGUqLCBjb25zdCBJbnRQb2ludCYpOwotCi0gICAgdmlydHVhbCBEcmFn
SW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYsIEZyYW1lKik7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlVVJMKGNvbnN0IEtVUkwm
LCBjb25zdCBTdHJpbmcmLCBGcmFtZSopOwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZVJhbmdlKFJh
bmdlKiwgRnJhbWUqKTsKLQotICAgIHZpcnR1YWwgYm9vbCBoYXNEYXRhKCk7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVQbGFpblRleHQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLQotI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXJJdGVtTGlzdD4gaXRlbXMoKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIENsaXBib2FyZEVm
bChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIENsaXBib2FyZFR5cGUpOwotfTsKLX0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKaW5kZXgg
ZDQ0MzBjNjEzYTczYjU0NWJhMjZlNGJiMDAzNmNlMjBlZmU3MDhhYS4uZmNlNDZkZTZiNzcxMmMw
OWNiOTYxYjg3MjRiZjFlMWNlZmIwYmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9QYXN0ZWJvYXJkRWZsLmNwcApAQCAtMjQsMTQgKzI0LDggQEAKICNpbmNsdWRlICJQYXN0
ZWJvYXJkLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCi0jaW5jbHVkZSAibWFy
a3VwLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC05NCw0ICs4OCw2NCBAQCBTdHJpbmcgUGFzdGVib2FyZDo6cGxh
aW5UZXh0KEZyYW1lKikKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1Bhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3sKKyAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5
QW5kUGFzdGUoKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcCgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgp
OworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKGNvbnN0IERyYWdEYXRhJikKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBh
c3RlKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xlYXIo
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgUGFz
dGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFBhc3RlYm9hcmQ6OndyaXRlU3Ry
aW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0xpc3RIYXNoU2V0PFN0cmluZz4gUGFzdGVib2Fy
ZDo6dHlwZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIExpc3RIYXNo
U2V0PFN0cmluZz4oKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZpbGVu
YW1lcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gVmVjdG9yPFN0cmlu
Zz4oKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBj
b25zdCBJbnRQb2ludCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202097</attachid>
            <date>2013-05-17 09:20:19 -0700</date>
            <delta_ts>2013-05-17 09:25:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130517091912.patch</filename>
            <type>text/plain</type>
            <size>10923</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uODY4ZDBiOTU0ZTE5ZmIyYzgxMmMyMmFlZGY1NDZk
ZjA5OGMyMzZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA1LTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogU3dpdGNoZWQgRUZMIGF3YXkgZnJvbSAi
bGVnYWN5IiBtb2RlIGZvciBDbGlwYm9hcmQuCisKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVudEhh
bmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFn
Z2luZ0NsaXBib2FyZCk6IENoYW5nZWQgdG8gY2FsbCBDbGlwYm9hcmQgbWVtYmVyIGZ1bmN0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHA6IERlbGV0ZWQgbW9z
dCBvZiB0aGUgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpuZXdHZW5lcmFs
Q2xpcGJvYXJkKTogQ2hhbmdlZCB0byBjYWxsIENsaXBib2FyZCBtZW1iZXIgZnVuY3Rpb24uCisg
ICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IE1v
dmVkIGZyb20gQ2xpcGJvYXJkRWZsIHRvIENsaXBib2FyZC4KKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZDo6aXRlbXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJv
YXJkRWZsLmNwcDogQSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0Cisg
ICAgICAgIGhhcyBubyBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMh
IEkgZGlkbid0IGFkZCBhIG5ldyBvbmUuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OmNyZWF0ZVByaXZhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckRyYWdBbmREcm9wKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpoYXNEYXRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFk
U3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0cmlu
Zyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZSk6IEFkZGVkLgorCiAyMDEz
LTA1LTE2ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBBZGQgc3R1YnMgZm9yIENvbnRleHRNZW51IGFuZCBDb250ZXh0TWVu
dUl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRleCA4MjE0MzA3N2Q5OWFiM2E4YmUxNWYxYTM2
YTEwNWU4MDhlMWI5MTFhLi5mNjMwZGRlYjg2NDk0NWU2MTc5MjJiNjQ3N2FjZGVlNzAzZGEwMzRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0zNCw3ICszNCw3IEBACiAvLyBUaGlzIERPTSBv
YmplY3Qgbm93IHdvcmtzIGJ5IGNhbGxpbmcgdGhyb3VnaCB0byBjbGFzc2VzIGluIHRoZSBwbGF0
Zm9ybSBsYXllci4KIC8vIFNwZWNpZmljYWxseSwgdGhlIGNsYXNzIGN1cnJlbnRseSBuYW1lZCBQ
YXN0ZWJvYXJkLiBUaGUgbGVnYWN5IHN0eWxlIGluc3RlYWQKIC8vIHVzZXMgdGhpcyBhcyBhbiBh
YnN0cmFjdCBiYXNlIGNsYXNzLgotI2RlZmluZSBXVEZfVVNFX0xFR0FDWV9TVFlMRV9BQlNUUkFD
VF9DTElQQk9BUkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEVGTCkg
fHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFU
Rk9STShXSU4pKQorI2RlZmluZSBXVEZfVVNFX0xFR0FDWV9TVFlMRV9BQlNUUkFDVF9DTElQQk9B
UkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKSkKIAogI2lmIFVTRShMRUdB
Q1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTKQogI2RlZmluZSBMRUdBQ1lfVklSVFVB
TCB2aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRs
ZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApp
bmRleCBlMzZlZGNiNGViZTU4OGQzZDRkZDEyMTE5ZWE3N2NkYjJkZWMxMThkLi41MDE3ZWY1ZmU2
NDE5ZTkwYjU3MzA3ZjgzMmI1ZmZiMWNjYWEyZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
ZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2luY2x1ZGUgIkNsaXBib2FyZEVm
bC5oIgorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNp
bmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC05
OSw3ICs5OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpZGdlCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5n
Q2xpcGJvYXJkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ2xpcGJvYXJkRWZsOjpjcmVhdGUoQ2xp
cGJvYXJkV3JpdGFibGUsIENsaXBib2FyZDo6RHJhZ0FuZERyb3ApOworICAgIHJldHVybiBDbGlw
Ym9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAppbmRleCBkZDRhYzIwY2ZjOWFmMTNi
MWZkZTVkMjZkYzRlMjMwYTBhMGIyMWNlLi45MDQ3OGE0MTI3NGY2ZWE2YTE2YjU5MzIxMWZmYzdi
YzZhNDQyYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJv
YXJkRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmNwcApAQCAtMjMsMTMzICsyMywyNiBAQAogCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKLSNpbmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1QYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdH
ZW5lcmFsQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIEZyYW1lKikKLXsK
LSAgICByZXR1cm4gQ2xpcGJvYXJkRWZsOjpjcmVhdGUocG9saWN5LCBDbGlwYm9hcmQ6OkNvcHlB
bmRQYXN0ZSk7Ci19Ci0KLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZShD
bGlwYm9hcmRBY2Nlc3NQb2xpY3ksIERyYWdEYXRhKiwgRnJhbWUqKQotewotICAgIHJldHVybiAw
OwotfQotCi1DbGlwYm9hcmRFZmw6OkNsaXBib2FyZEVmbChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kg
cG9saWN5LCBDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUpCi0gICAgOiBDbGlwYm9hcmQocG9s
aWN5LCBjbGlwYm9hcmRUeXBlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLUNsaXBi
b2FyZEVmbDo6fkNsaXBib2FyZEVmbCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBDbGlwYm9hcmRFZmw6OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVBsYWluVGV4dChjb25z
dCBXVEY6OlN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlw
Ym9hcmRFZmw6OmNsZWFyQWxsRGF0YSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
U3RyaW5nIENsaXBib2FyZEVmbDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmKSBjb25zdAotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIENsaXBi
b2FyZEVmbDo6c2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1MaXN0SGFzaFNldDxTdHJp
bmc+IENsaXBib2FyZEVmbDo6dHlwZXMoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKLX0KLQotUGFzc1JlZlB0cjxGaWxl
TGlzdD4gQ2xpcGJvYXJkRWZsOjpmaWxlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gMDsKLX0KLQotSW50UG9pbnQgQ2xpcGJvYXJkRWZsOjpkcmFnTG9jYXRp
b24oKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFBvaW50
KDAsIDApOwotfQotCi1DYWNoZWRJbWFnZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2UoKSBjb25z
dAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xp
cGJvYXJkRWZsOjpzZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotTm9kZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1h
Z2VFbGVtZW50KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQog
Ci12b2lkIENsaXBib2FyZEVmbDo6c2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwgY29uc3QgSW50
UG9pbnQmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLURyYWdJbWFnZVJlZiBDbGlw
Ym9hcmRFZmw6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYpIGNvbnN0Ci17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYs
IEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVm
bDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVSYW5nZShSYW5n
ZSosIEZyYW1lKikKK1Bhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlw
Ym9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KHBvbGljeSk7CiB9CiAKLWJvb2wgQ2xpcGJvYXJkRWZsOjpoYXNEYXRhKCkKK3ZvaWQgQ2xpcGJv
YXJkOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmLCBGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZEVmbDo6aXRlbXMoKQorUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkOjppdGVtcygpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KICNlbmRpZgogCi0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTA0ZWI1MjE3YjdmZTc0YjVlZDM4NDNhNzNkOTNlZDE1NGVhNTdjOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvQ2xpcGJvYXJkRWZsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgot
ICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9n
aWEKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVt
cwotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0g
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgQ2xpcGJvYXJkRWZsX2gKLSNkZWZp
bmUgQ2xpcGJvYXJkRWZsX2gKLQotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci1jbGFzcyBDYWNoZWRJbWFnZTsKLQotY2xhc3MgQ2xpcGJvYXJkRWZsIDogcHVi
bGljIENsaXBib2FyZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJk
RWZsPiBjcmVhdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBj
bGlwYm9hcmRUeXBlID0gQ29weUFuZFBhc3RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBDbGlwYm9hcmRFZmwocG9saWN5LCBjbGlwYm9hcmRUeXBlKSk7Ci0gICAgfQotICAg
IH5DbGlwYm9hcmRFZmwoKTsKLQotICAgIHZvaWQgY2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpOwot
ICAgIHZvaWQgY2xlYXJBbGxEYXRhKCk7Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5n
JikgY29uc3Q7Ci0gICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OwotCi0gICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKLQotICAgIEludFBvaW50IGRyYWdM
b2NhdGlvbigpIGNvbnN0OwotICAgIENhY2hlZEltYWdlKiBkcmFnSW1hZ2UoKSBjb25zdDsKLSAg
ICB2b2lkIHNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7Ci0gICAg
Tm9kZSogZHJhZ0ltYWdlRWxlbWVudCgpOwotICAgIHZvaWQgc2V0RHJhZ0ltYWdlRWxlbWVudChO
b2RlKiwgY29uc3QgSW50UG9pbnQmKTsKLQotICAgIHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNyZWF0
ZURyYWdJbWFnZShJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopOwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5n
JiwgRnJhbWUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKik7
Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHdyaXRl
UGxhaW5UZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7Ci0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0
ZW1zKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5LCBDbGlwYm9hcmRUeXBlKTsKLX07Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IGQ0NDMwYzYxM2E3M2I1
NDViYTI2ZTRiYjAwMzZjZTIwZWZlNzA4YWEuLmZjZTQ2ZGU2Yjc3MTJjMDljYjk2MWI4NzI0YmYx
ZTFjZWZiMGJjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0
ZWJvYXJkRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2Fy
ZEVmbC5jcHAKQEAgLTI0LDE0ICsyNCw4IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVk
ZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKLSNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtOTQsNCArODgsNjQgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSop
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYXN0ZWJvYXJkKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9
CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworUGFzc093
blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBE
cmFnRGF0YSYpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCiti
b29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRT
dHJpbmcoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitMaXN0SGFzaFNldDxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7
Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK3Zv
aWQgUGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202098</attachid>
            <date>2013-05-17 09:25:57 -0700</date>
            <delta_ts>2013-05-17 09:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130517092450.patch</filename>
            <type>text/plain</type>
            <size>11002</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uODY4ZDBiOTU0ZTE5ZmIyYzgxMmMyMmFlZGY1NDZk
ZjA5OGMyMzZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA1LTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogU3dpdGNoZWQgRUZMIGF3YXkgZnJvbSAi
bGVnYWN5IiBtb2RlIGZvciBDbGlwYm9hcmQuCisKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVudEhh
bmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFn
Z2luZ0NsaXBib2FyZCk6IENoYW5nZWQgdG8gY2FsbCBDbGlwYm9hcmQgbWVtYmVyIGZ1bmN0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHA6IERlbGV0ZWQgbW9z
dCBvZiB0aGUgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpuZXdHZW5lcmFs
Q2xpcGJvYXJkKTogQ2hhbmdlZCB0byBjYWxsIENsaXBib2FyZCBtZW1iZXIgZnVuY3Rpb24uCisg
ICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IE1v
dmVkIGZyb20gQ2xpcGJvYXJkRWZsIHRvIENsaXBib2FyZC4KKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZDo6aXRlbXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJv
YXJkRWZsLmNwcDogQSBsb3Qgb2YgY29weXJpZ2h0IG5vdGljZXMgZm9yIGEgZmlsZSB0aGF0Cisg
ICAgICAgIGhhcyBubyBjb2RlIGluIGl0IG90aGVyIHRoYW4gbm90SW1wbGVtZW50ZWQgbGluZXMh
IEkgZGlkbid0IGFkZCBhIG5ldyBvbmUuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OmNyZWF0ZVByaXZhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckRyYWdBbmREcm9wKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpoYXNEYXRhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFk
U3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0cmlu
Zyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6dHlwZXMpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZSk6IEFkZGVkLgorCiAyMDEz
LTA1LTE2ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBBZGQgc3R1YnMgZm9yIENvbnRleHRNZW51IGFuZCBDb250ZXh0TWVu
dUl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRleCA4MjE0MzA3N2Q5OWFiM2E4YmUxNWYxYTM2
YTEwNWU4MDhlMWI5MTFhLi5mNjMwZGRlYjg2NDk0NWU2MTc5MjJiNjQ3N2FjZGVlNzAzZGEwMzRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0zNCw3ICszNCw3IEBACiAvLyBUaGlzIERPTSBv
YmplY3Qgbm93IHdvcmtzIGJ5IGNhbGxpbmcgdGhyb3VnaCB0byBjbGFzc2VzIGluIHRoZSBwbGF0
Zm9ybSBsYXllci4KIC8vIFNwZWNpZmljYWxseSwgdGhlIGNsYXNzIGN1cnJlbnRseSBuYW1lZCBQ
YXN0ZWJvYXJkLiBUaGUgbGVnYWN5IHN0eWxlIGluc3RlYWQKIC8vIHVzZXMgdGhpcyBhcyBhbiBh
YnN0cmFjdCBiYXNlIGNsYXNzLgotI2RlZmluZSBXVEZfVVNFX0xFR0FDWV9TVFlMRV9BQlNUUkFD
VF9DTElQQk9BUkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEVGTCkg
fHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFU
Rk9STShXSU4pKQorI2RlZmluZSBXVEZfVVNFX0xFR0FDWV9TVFlMRV9BQlNUUkFDVF9DTElQQk9B
UkRfQ0xBU1MgKFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKSkKIAogI2lmIFVTRShMRUdB
Q1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTKQogI2RlZmluZSBMRUdBQ1lfVklSVFVB
TCB2aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRs
ZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApp
bmRleCBlMzZlZGNiNGViZTU4OGQzZDRkZDEyMTE5ZWE3N2NkYjJkZWMxMThkLi41MDE3ZWY1ZmU2
NDE5ZTkwYjU3MzA3ZjgzMmI1ZmZiMWNjYWEyZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
ZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2luY2x1ZGUgIkNsaXBib2FyZEVm
bC5oIgorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNp
bmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC05
OSw3ICs5OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpZGdlCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5n
Q2xpcGJvYXJkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ2xpcGJvYXJkRWZsOjpjcmVhdGUoQ2xp
cGJvYXJkV3JpdGFibGUsIENsaXBib2FyZDo6RHJhZ0FuZERyb3ApOworICAgIHJldHVybiBDbGlw
Ym9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAppbmRleCBkZDRhYzIwY2ZjOWFmMTNi
MWZkZTVkMjZkYzRlMjMwYTBhMGIyMWNlLi42ZjRhNzM5Yzc5MWJmOGI1MjcyZmRkYmVkYWRkYzM1
ZjFmNjYyZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJv
YXJkRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmNwcApAQCAtMTksMTM3ICsxOSwzMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJDbGlwYm9hcmRFZmwuaCIKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKIAogI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlckl0ZW1MaXN0LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCi0jaW5jbHVk
ZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IEVkaXRvcjo6bmV3R2VuZXJhbENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3kgcG9saWN5LCBGcmFtZSopCi17Ci0gICAgcmV0dXJuIENsaXBib2FyZEVmbDo6Y3JlYXRlKHBv
bGljeSwgQ2xpcGJvYXJkOjpDb3B5QW5kUGFzdGUpOwotfQotCi1QYXNzUmVmUHRyPENsaXBib2Fy
ZD4gQ2xpcGJvYXJkOjpjcmVhdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBEcmFnRGF0YSosIEZy
YW1lKikKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotQ2xpcGJvYXJkRWZsOjpDbGlwYm9hcmRFZmwo
Q2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBjbGlwYm9hcmRUeXBl
KQotICAgIDogQ2xpcGJvYXJkKHBvbGljeSwgY2xpcGJvYXJkVHlwZSkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCi1DbGlwYm9hcmRFZmw6On5DbGlwYm9hcmRFZmwoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjpjbGVhckRhdGEoY29uc3Qg
U3RyaW5nJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVm
bDo6d3JpdGVQbGFpblRleHQoY29uc3QgV1RGOjpTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjpjbGVhckFsbERhdGEoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLVN0cmluZyBDbGlwYm9hcmRFZmw6OmdldERhdGEoY29uc3Qg
U3RyaW5nJikgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJp
bmcoKTsKLX0KLQotYm9vbCBDbGlwYm9hcmRFZmw6OnNldERhdGEoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLQotTGlzdEhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRFZmw6OnR5cGVzKCkgY29uc3QKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7
Ci19Ci0KLVBhc3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZEVmbDo6ZmlsZXMoKSBjb25zdAot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLUludFBvaW50IENs
aXBib2FyZEVmbDo6ZHJhZ0xvY2F0aW9uKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBJbnRQb2ludCgwLCAwKTsKLX0KLQotQ2FjaGVkSW1hZ2UqIENsaXBib2Fy
ZEVmbDo6ZHJhZ0ltYWdlKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiAwOwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6c2V0RHJhZ0ltYWdlKENhY2hlZEltYWdl
KiwgY29uc3QgSW50UG9pbnQmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLU5vZGUq
IENsaXBib2FyZEVmbDo6ZHJhZ0ltYWdlRWxlbWVudCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gMDsKLX0KIAotdm9pZCBDbGlwYm9hcmRFZmw6OnNldERyYWdJbWFnZUVs
ZW1lbnQoTm9kZSosIGNvbnN0IEludFBvaW50JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCi1EcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkRWZsOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQm
KSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZv
aWQgQ2xpcGJvYXJkRWZsOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJp
bmcmLCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9h
cmRFZmw6OndyaXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopCitQYXNzUmVmUHRyPENsaXBib2FyZD4g
RWRpdG9yOjpuZXdHZW5lcmFsQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ks
IEZyYW1lKikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBDbGlwYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShwb2xpY3kpOwogfQogCi1ib29sIENsaXBib2FyZEVmbDo6
aGFzRGF0YSgpCit2b2lkIENsaXBib2FyZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNG
RVJfSVRFTVMpCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBDbGlwYm9hcmRFZmw6
Oml0ZW1zKCkKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZDo6aXRl
bXMoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYK
IAotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJk
RWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNGViNTIxN2I3ZmU3NGI1ZWQzODQzYTczZDkzZWQx
NTRlYTU3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3Rp
dHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJv
RlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVm
IENsaXBib2FyZEVmbF9oCi0jZGVmaW5lIENsaXBib2FyZEVmbF9oCi0KLSNpbmNsdWRlICJDbGlw
Ym9hcmQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ2FjaGVkSW1hZ2U7Ci0KLWNs
YXNzIENsaXBib2FyZEVmbCA6IHB1YmxpYyBDbGlwYm9hcmQgewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPENsaXBib2FyZEVmbD4gY3JlYXRlKENsaXBib2FyZEFjY2Vzc1BvbGljeSBw
b2xpY3ksIENsaXBib2FyZFR5cGUgY2xpcGJvYXJkVHlwZSA9IENvcHlBbmRQYXN0ZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xpcGJvYXJkRWZsKHBvbGljeSwgY2xpcGJv
YXJkVHlwZSkpOwotICAgIH0KLSAgICB+Q2xpcGJvYXJkRWZsKCk7Ci0KLSAgICB2b2lkIGNsZWFy
RGF0YShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNsZWFyQWxsRGF0YSgpOwotICAgIFN0cmlu
ZyBnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIGJvb2wgc2V0RGF0YShjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKLQotICAgIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKCkgY29uc3Q7
Ci0KLSAgICBJbnRQb2ludCBkcmFnTG9jYXRpb24oKSBjb25zdDsKLSAgICBDYWNoZWRJbWFnZSog
ZHJhZ0ltYWdlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBj
b25zdCBJbnRQb2ludCYpOwotICAgIE5vZGUqIGRyYWdJbWFnZUVsZW1lbnQoKTsKLSAgICB2b2lk
IHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSosIGNvbnN0IEludFBvaW50Jik7Ci0KLSAgICB2aXJ0
dWFsIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJM
JiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVVUkwoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKik7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRl
UmFuZ2UoUmFuZ2UqLCBGcmFtZSopOwotCi0gICAgdmlydHVhbCBib29sIGhhc0RhdGEoKTsKLQot
ICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBsYWluVGV4dChjb25zdCBXVEY6OlN0cmluZyYpOwotCi0j
aWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERh
dGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpOwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgQ2xp
cGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgQ2xpcGJvYXJkVHlwZSk7Ci19OwotfQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJv
YXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNw
cAppbmRleCBkNDQzMGM2MTNhNzNiNTQ1YmEyNmU0YmIwMDM2Y2UyMGVmZTcwOGFhLi5mY2U0NmRl
NmI3NzEyYzA5Y2I5NjFiODcyNGJmMWUxY2VmYjBiYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC0yNCwxNCArMjQsOCBAQAogI2luY2x1
ZGUgIlBhc3RlYm9hcmQuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKLSNpbmNs
dWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNs
dWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk0LDQgKzg4LDY0IEBAIFN0cmluZyBQYXN0ZWJv
YXJkOjpwbGFpblRleHQoRnJhbWUqKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorUGFzc093
blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorewor
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7Cit9CisKK1Bhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIGNyZWF0
ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKQoreworICAgIHJldHVybiBjcmVhdGVGb3JD
b3B5QW5kUGFzdGUoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjpoYXNEYXRhKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYXN0ZWJvYXJk
OjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0
cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6
d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworTGlzdEhhc2hTZXQ8U3RyaW5nPiBQ
YXN0ZWJvYXJkOjp0eXBlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
TGlzdEhhc2hTZXQ8U3RyaW5nPigpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpy
ZWFkRmlsZW5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBWZWN0
b3I8U3RyaW5nPigpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1h
Z2VSZWYsIGNvbnN0IEludFBvaW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202099</attachid>
            <date>2013-05-17 09:31:39 -0700</date>
            <delta_ts>2013-05-17 09:41:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130517093032.patch</filename>
            <type>text/plain</type>
            <size>11146</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uMjFiZWMwMTI0ODQyYzgzNDM4MzJmYmM4YzFhY2Nm
MDQ5ZGEwZWE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA1LTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogU3dpdGNoZWQgRUZMIGF3YXkgZnJvbSAi
bGVnYWN5IiBtb2RlIGZvciBDbGlwYm9hcmQuCisKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVudEhh
bmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFn
Z2luZ0NsaXBib2FyZCk6IENoYW5nZWQgdG8gY2FsbCBDbGlwYm9hcmQgbWVtYmVyIGZ1bmN0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHA6IERlbGV0ZWQgbW9z
dCBvZiB0aGUgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpuZXdHZW5lcmFs
Q2xpcGJvYXJkKTogQ2hhbmdlZCB0byBjYWxsIENsaXBib2FyZCBtZW1iZXIgZnVuY3Rpb24uCisg
ICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6IE1vdmVkIGZyb20g
Q2xpcGJvYXJkRWZsIHRvIENsaXBib2FyZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogTW92ZWQgZnJvbSBDbGlwYm9hcmRFZmwgdG8gQ2xp
cGJvYXJkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjppdGVtcyk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwOiBBIGxvdCBvZiBjb3B5cmln
aHQgbm90aWNlcyBmb3IgYSBmaWxlIHRoYXQKKyAgICAgICAgaGFzIG5vIGNvZGUgaW4gaXQgb3Ro
ZXIgdGhhbiBub3RJbXBsZW1lbnRlZCBsaW5lcyEgSSBkaWRuJ3QgYWRkIGEgbmV3IG9uZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6Omhhc0RhdGEpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjp0eXBlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6cmVhZEZpbGVuYW1lcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
c2V0RHJhZ0ltYWdlKTogQWRkZWQuCisKIDIwMTMtMDUtMTYgIEplc3VzIFNhbmNoZXotUGFsZW5j
aWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIEFkZCBzdHVicyBm
b3IgQ29udGV4dE1lbnUgYW5kIENvbnRleHRNZW51SXRlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NsaXBib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCmlu
ZGV4IDgyMTQzMDc3ZDk5YWIzYThiZTE1ZjFhMzZhMTA1ZTgwOGUxYjkxMWEuLmY2MzBkZGViODY0
OTQ1ZTYxNzkyMmI2NDc3YWNkZWU3MDNkYTAzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DbGlwYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKQEAg
LTM0LDcgKzM0LDcgQEAKIC8vIFRoaXMgRE9NIG9iamVjdCBub3cgd29ya3MgYnkgY2FsbGluZyB0
aHJvdWdoIHRvIGNsYXNzZXMgaW4gdGhlIHBsYXRmb3JtIGxheWVyLgogLy8gU3BlY2lmaWNhbGx5
LCB0aGUgY2xhc3MgY3VycmVudGx5IG5hbWVkIFBhc3RlYm9hcmQuIFRoZSBsZWdhY3kgc3R5bGUg
aW5zdGVhZAogLy8gdXNlcyB0aGlzIGFzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCi0jZGVmaW5l
IFdURl9VU0VfTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9DTEFTUyAoUExBVEZPUk0o
QkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKFdJTikpCisjZGVmaW5lIFdURl9VU0Vf
TEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9DTEFTUyAoUExBVEZPUk0oQkxBQ0tCRVJS
WSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFFUKSB8fCBQ
TEFURk9STShXSU4pKQogCiAjaWYgVVNFKExFR0FDWV9TVFlMRV9BQlNUUkFDVF9DTElQQk9BUkRf
Q0xBU1MpCiAjZGVmaW5lIExFR0FDWV9WSVJUVUFMIHZpcnR1YWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGUzNmVkY2I0ZWJlNTg4ZDNkNGRkMTIx
MTllYTc3Y2RiMmRlYzExOGQuLjUwMTdlZjVmZTY0MTllOTBiNTczMDdmODMyYjVmZmIxY2NhYTJm
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAt
MjksNyArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkRWZsLmgiCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNs
dWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCwgV2lkZ2UKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAogewotICAgIHJl
dHVybiBDbGlwYm9hcmRFZmw6OmNyZWF0ZShDbGlwYm9hcmRXcml0YWJsZSwgQ2xpcGJvYXJkOjpE
cmFnQW5kRHJvcCk7CisgICAgcmV0dXJuIENsaXBib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
Q2xpcGJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRF
ZmwuY3BwCmluZGV4IGRkNGFjMjBjZmM5YWYxM2IxZmRlNWQyNmRjNGUyMzBhMGEwYjIxY2UuLmJl
MTlhNWU4MzEyZDZlZDRiM2FlMmZkZWEwNWVhOWM5YzBmNzIwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCkBAIC0xOSwxMzcgKzE5LDM2IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaXBib2FyZEVmbC5oIgorI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgogCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUxpc3QuaCIK
ICNpbmNsdWRlICJFZGl0b3IuaCIKLSNpbmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1QYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5lcmFs
Q2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIEZyYW1lKikKLXsKLSAgICBy
ZXR1cm4gQ2xpcGJvYXJkRWZsOjpjcmVhdGUocG9saWN5LCBDbGlwYm9hcmQ6OkNvcHlBbmRQYXN0
ZSk7Ci19Ci0KLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBDbGlwYm9hcmQ6OmNyZWF0ZShDbGlwYm9h
cmRBY2Nlc3NQb2xpY3ksIERyYWdEYXRhKiwgRnJhbWUqKQotewotICAgIHJldHVybiAwOwotfQot
Ci1DbGlwYm9hcmRFZmw6OkNsaXBib2FyZEVmbChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5
LCBDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUpCi0gICAgOiBDbGlwYm9hcmQocG9saWN5LCBj
bGlwYm9hcmRUeXBlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLUNsaXBib2FyZEVm
bDo6fkNsaXBib2FyZEVmbCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBD
bGlwYm9hcmRFZmw6OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVBsYWluVGV4dChjb25zdCBXVEY6
OlN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRF
Zmw6OmNsZWFyQWxsRGF0YSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotU3RyaW5n
IENsaXBib2FyZEVmbDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmKSBjb25zdAotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIENsaXBib2FyZEVm
bDo6c2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1MaXN0SGFzaFNldDxTdHJpbmc+IENs
aXBib2FyZEVmbDo6dHlwZXMoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKLX0KIAotUGFzc1JlZlB0cjxGaWxlTGlzdD4g
Q2xpcGJvYXJkRWZsOjpmaWxlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gMDsKLX0KLQotSW50UG9pbnQgQ2xpcGJvYXJkRWZsOjpkcmFnTG9jYXRpb24oKSBj
b25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFBvaW50KDAsIDAp
OwotfQotCi1DYWNoZWRJbWFnZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2UoKSBjb25zdAotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ2xpcGJvYXJk
RWZsOjpzZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotTm9kZSogQ2xpcGJvYXJkRWZsOjpkcmFnSW1hZ2VFbGVt
ZW50KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi12b2lk
IENsaXBib2FyZEVmbDo6c2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwgY29uc3QgSW50UG9pbnQm
KQorUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEVkaXRvcjo6bmV3R2VuZXJhbENsaXBib2FyZChDbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5LCBGcmFtZSopCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUocG9saWN5KTsK
IH0KIAotRHJhZ0ltYWdlUmVmIENsaXBib2FyZEVmbDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JikgY29uc3QKK0RyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2lu
dCYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KIAot
dm9pZCBDbGlwYm9hcmRFZmw6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiwgY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotfQotCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYsIEZyYW1lKikKK3ZvaWQgQ2xpcGJvYXJkOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2Uo
RWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDbGlwYm9hcmRFZmw6OndyaXRlUmFuZ2UoUmFuZ2Uq
LCBGcmFtZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBDbGlwYm9hcmRF
Zmw6Omhhc0RhdGEoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi1QYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW1MaXN0PiBDbGlwYm9hcmRFZmw6Oml0ZW1zKCkKK1Bhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZDo6aXRlbXMoKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYKIAotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkw
NGViNTIxN2I3ZmU3NGI1ZWQzODQzYTczZDkzZWQxNTRlYTU3YzguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NsaXBib2FyZEVmbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0g
KiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIENsaXBib2FyZEVmbF9oCi0jZGVmaW5lIENs
aXBib2FyZEVmbF9oCi0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotY2xhc3MgQ2FjaGVkSW1hZ2U7Ci0KLWNsYXNzIENsaXBib2FyZEVmbCA6IHB1YmxpYyBD
bGlwYm9hcmQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZEVmbD4g
Y3JlYXRlKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIENsaXBib2FyZFR5cGUgY2xpcGJv
YXJkVHlwZSA9IENvcHlBbmRQYXN0ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ2xpcGJvYXJkRWZsKHBvbGljeSwgY2xpcGJvYXJkVHlwZSkpOwotICAgIH0KLSAgICB+Q2xp
cGJvYXJkRWZsKCk7Ci0KLSAgICB2b2lkIGNsZWFyRGF0YShjb25zdCBTdHJpbmcmKTsKLSAgICB2
b2lkIGNsZWFyQWxsRGF0YSgpOwotICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNv
bnN0OwotICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKLQot
ICAgIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKCkgY29uc3Q7Ci0KLSAgICBJbnRQb2ludCBkcmFnTG9jYXRp
b24oKSBjb25zdDsKLSAgICBDYWNoZWRJbWFnZSogZHJhZ0ltYWdlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpOwotICAgIE5vZGUq
IGRyYWdJbWFnZUVsZW1lbnQoKTsKLSAgICB2b2lkIHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSos
IGNvbnN0IEludFBvaW50Jik7Ci0KLSAgICB2aXJ0dWFsIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2UoSW50UG9pbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZy
YW1lKik7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopOwotCi0g
ICAgdmlydHVhbCBib29sIGhhc0RhdGEoKTsKLQotICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBsYWlu
VGV4dChjb25zdCBXVEY6OlN0cmluZyYpOwotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRF
TVMpCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygp
OwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgQ2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1Bv
bGljeSwgQ2xpcGJvYXJkVHlwZSk7Ci19OwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAppbmRleCBkNDQzMGM2MTNhNzNiNTQ1YmEy
NmU0YmIwMDM2Y2UyMGVmZTcwOGFhLi5mY2U0NmRlNmI3NzEyYzA5Y2I5NjFiODcyNGJmMWUxY2Vm
YjBiYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2Fy
ZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwu
Y3BwCkBAIC0yNCwxNCArMjQsOCBAQAogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIklt
YWdlLmgiCi0jaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0j
aW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTk0LDQgKzg4LDY0IEBAIFN0cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRleHQoRnJhbWUqKQogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAorUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJk
OjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFz
dGVib2FyZCk7Cit9CisKK1Bhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
UHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCitQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkK
K3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisKK1Bhc3NPd25QdHI8
UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0Rh
dGEmKQoreworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworYm9vbCBQ
YXN0ZWJvYXJkOjpoYXNEYXRhKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5n
KGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworTGlzdEhhc2hTZXQ8U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlcygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOworfQor
CitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202101</attachid>
            <date>2013-05-17 09:41:35 -0700</date>
            <delta_ts>2013-05-17 09:48:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130517094029.patch</filename>
            <type>text/plain</type>
            <size>11274</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uZjczNjg5MGY0ZDVmNDAxZGY4MjhlNjgwYzc5YjU3
YzVjMzNmM2MwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA1LTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogU3dpdGNoZWQgRUZMIGF3YXkgZnJvbSAi
bGVnYWN5IiBtb2RlIGZvciBDbGlwYm9hcmQuCisKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVudEhh
bmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFn
Z2luZ0NsaXBib2FyZCk6IENoYW5nZWQgdG8gY2FsbCBDbGlwYm9hcmQgbWVtYmVyIGZ1bmN0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHA6IERlbGV0ZWQgbW9z
dCBvZiB0aGUgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpuZXdHZW5lcmFs
Q2xpcGJvYXJkKTogQ2hhbmdlZCB0byBjYWxsIENsaXBib2FyZCBtZW1iZXIgZnVuY3Rpb24uCisg
ICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6IE1vdmVkIGZyb20g
Q2xpcGJvYXJkRWZsIHRvIENsaXBib2FyZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogTW92ZWQgZnJvbSBDbGlwYm9hcmRFZmwgdG8gQ2xp
cGJvYXJkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjppdGVtcyk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwOiBBIGxvdCBvZiBjb3B5cmln
aHQgbm90aWNlcyBmb3IgYSBmaWxlIHRoYXQKKyAgICAgICAgaGFzIG5vIGNvZGUgaW4gaXQgb3Ro
ZXIgdGhhbiBub3RJbXBsZW1lbnRlZCBsaW5lcyEgSSBkaWRuJ3QgYWRkIGEgbmV3IG9uZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6Omhhc0RhdGEpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjp0eXBlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6cmVhZEZpbGVuYW1lcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
c2V0RHJhZ0ltYWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0
ZVBhc3RlYm9hcmQpOiBBZGRlZC4KKwogMjAxMy0wNS0xNiAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgQWRkIHN0dWJzIGZv
ciBDb250ZXh0TWVudSBhbmQgQ29udGV4dE1lbnVJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKaW5k
ZXggODIxNDMwNzdkOTlhYjNhOGJlMTVmMWEzNmExMDVlODA4ZTFiOTExYS4uZjYzMGRkZWI4NjQ5
NDVlNjE3OTIyYjY0NzdhY2RlZTcwM2RhMDM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NsaXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaApAQCAt
MzQsNyArMzQsNyBAQAogLy8gVGhpcyBET00gb2JqZWN0IG5vdyB3b3JrcyBieSBjYWxsaW5nIHRo
cm91Z2ggdG8gY2xhc3NlcyBpbiB0aGUgcGxhdGZvcm0gbGF5ZXIuCiAvLyBTcGVjaWZpY2FsbHks
IHRoZSBjbGFzcyBjdXJyZW50bHkgbmFtZWQgUGFzdGVib2FyZC4gVGhlIGxlZ2FjeSBzdHlsZSBp
bnN0ZWFkCiAvLyB1c2VzIHRoaXMgYXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KLSNkZWZpbmUg
V1RGX1VTRV9MRUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShC
TEFDS0JFUlJZKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKSkKKyNkZWZpbmUgV1RGX1VTRV9M
RUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpIHx8IFBM
QVRGT1JNKFdJTikpCiAKICNpZiBVU0UoTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9D
TEFTUykKICNkZWZpbmUgTEVHQUNZX1ZJUlRVQUwgdmlydHVhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKaW5kZXggZTM2ZWRjYjRlYmU1ODhkM2Q0ZGQxMjEx
OWVhNzdjZGIyZGVjMTE4ZC4uNTAxN2VmNWZlNjQxOWU5MGI1NzMwN2Y4MzJiNWZmYjFjY2FhMmY1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVy
LmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmRFZmwuaCIKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtOTksNyArOTksNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50
LCBXaWRnZQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBQYXNzUmVmUHRyPENsaXBib2FyZD4g
RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIENsaXBib2FyZEVmbDo6Y3JlYXRlKENsaXBib2FyZFdyaXRhYmxlLCBDbGlwYm9hcmQ6OkRy
YWdBbmREcm9wKTsKKyAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
bGlwYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVm
bC5jcHAKaW5kZXggZGQ0YWMyMGNmYzlhZjEzYjFmZGU1ZDI2ZGM0ZTIzMGEwYTBiMjFjZS4uYmUx
OWE1ZTgzMTJkNmVkNGIzYWUyZmRlYTA1ZWE5YzljMGY3MjA5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKQEAgLTE5LDEzNyArMTksMzYgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkRWZsLmgiCisjaW5j
bHVkZSAiQ2xpcGJvYXJkLmgiCiAKICNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgotI2luY2x1ZGUgIkZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxD
bGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqKQotewotICAgIHJl
dHVybiBDbGlwYm9hcmRFZmw6OmNyZWF0ZShwb2xpY3ksIENsaXBib2FyZDo6Q29weUFuZFBhc3Rl
KTsKLX0KLQotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlKENsaXBib2Fy
ZEFjY2Vzc1BvbGljeSwgRHJhZ0RhdGEqLCBGcmFtZSopCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LUNsaXBib2FyZEVmbDo6Q2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ks
IENsaXBib2FyZFR5cGUgY2xpcGJvYXJkVHlwZSkKLSAgICA6IENsaXBib2FyZChwb2xpY3ksIGNs
aXBib2FyZFR5cGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotQ2xpcGJvYXJkRWZs
Ojp+Q2xpcGJvYXJkRWZsKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENs
aXBib2FyZEVmbDo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFdURjo6
U3RyaW5nJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVm
bDo6Y2xlYXJBbGxEYXRhKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1TdHJpbmcg
Q2xpcGJvYXJkRWZsOjpnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0Ci17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkRWZs
OjpzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLUxpc3RIYXNoU2V0PFN0cmluZz4gQ2xp
cGJvYXJkRWZsOjp0eXBlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOwotfQogCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBD
bGlwYm9hcmRFZmw6OmZpbGVzKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiAwOwotfQotCi1JbnRQb2ludCBDbGlwYm9hcmRFZmw6OmRyYWdMb2NhdGlvbigpIGNv
bnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50UG9pbnQoMCwgMCk7
Ci19Ci0KLUNhY2hlZEltYWdlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZSgpIGNvbnN0Ci17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRF
Zmw6OnNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50JikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi1Ob2RlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZUVsZW1l
bnQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQg
Q2xpcGJvYXJkRWZsOjpzZXREcmFnSW1hZ2VFbGVtZW50KE5vZGUqLCBjb25zdCBJbnRQb2ludCYp
CitQYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5lcmFsQ2xpcGJvYXJkKENsaXBi
b2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIEZyYW1lKikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShwb2xpY3kpOwog
fQogCi1EcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkRWZsOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQm
KSBjb25zdAorRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogfQogCi12
b2lkIENsaXBib2FyZEVmbDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3Ry
aW5nJiwgRnJhbWUqKQordm9pZCBDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShF
bGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVSYW5nZShSYW5nZSos
IEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1ib29sIENsaXBib2FyZEVm
bDo6aGFzRGF0YSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZEVmbDo6aXRlbXMoKQorUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkOjppdGVtcygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gMDsKIH0KICNlbmRpZgogCi0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA0
ZWI1MjE3YjdmZTc0YjVlZDM4NDNhNzNkOTNlZDE1NGVhNTdjOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
Q2xpcGJvYXJkRWZsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogIENv
cHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICog
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgQ2xpcGJvYXJkRWZsX2gKLSNkZWZpbmUgQ2xp
cGJvYXJkRWZsX2gKLQotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBDYWNoZWRJbWFnZTsKLQotY2xhc3MgQ2xpcGJvYXJkRWZsIDogcHVibGljIENs
aXBib2FyZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkRWZsPiBj
cmVhdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBjbGlwYm9h
cmRUeXBlID0gQ29weUFuZFBhc3RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDbGlwYm9hcmRFZmwocG9saWN5LCBjbGlwYm9hcmRUeXBlKSk7Ci0gICAgfQotICAgIH5DbGlw
Ym9hcmRFZmwoKTsKLQotICAgIHZvaWQgY2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgY2xlYXJBbGxEYXRhKCk7Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJikgY29u
c3Q7Ci0gICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwotCi0g
ICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKLQotICAgIEludFBvaW50IGRyYWdMb2NhdGlv
bigpIGNvbnN0OwotICAgIENhY2hlZEltYWdlKiBkcmFnSW1hZ2UoKSBjb25zdDsKLSAgICB2b2lk
IHNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7Ci0gICAgTm9kZSog
ZHJhZ0ltYWdlRWxlbWVudCgpOwotICAgIHZvaWQgc2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwg
Y29uc3QgSW50UG9pbnQmKTsKLQotICAgIHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZShJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopOwot
ICAgIHZpcnR1YWwgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJh
bWUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKik7Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlUGxhaW5U
ZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7Ci0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7
Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNjZXNzUG9s
aWN5LCBDbGlwYm9hcmRUeXBlKTsKLX07Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IGQ0NDMwYzYxM2E3M2I1NDViYTI2
ZTRiYjAwMzZjZTIwZWZlNzA4YWEuLjljYzQ3OWMyYWU1ZTA4ZDRhZGYxYWJmNmJlZmNkMzc4NTFl
NTE5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJk
RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHAKQEAgLTI0LDE0ICsyNCw4IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSW1h
Z2UuaCIKLSNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNp
bmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
OTQsNCArODgsNjkgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSopCiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0
ZWJvYXJkKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQ
cml2YXRlKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisKK1Bh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQor
eworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0
YSYpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCitib29sIFBh
c3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitMaXN0SGFzaFNldDxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7Cit9CisK
K1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgd3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBh
c3RlYm9hcmQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202103</attachid>
            <date>2013-05-17 09:48:22 -0700</date>
            <delta_ts>2013-05-17 09:54:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116181-20130517094715.patch</filename>
            <type>text/plain</type>
            <size>11286</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYWM0OTNhYjFkMTc1
MTdlNzRjMTc1YTJlNTU0Mjk2NmYwOWNiYy4uZjczNjg5MGY0ZDVmNDAxZGY4MjhlNjgwYzc5YjU3
YzVjMzNmM2MwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA1LTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIEVGTCBwb3J0
IG9mZiBsZWdhY3kgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTYxODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogU3dpdGNoZWQgRUZMIGF3YXkgZnJvbSAi
bGVnYWN5IiBtb2RlIGZvciBDbGlwYm9hcmQuCisKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVudEhh
bmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFn
Z2luZ0NsaXBib2FyZCk6IENoYW5nZWQgdG8gY2FsbCBDbGlwYm9hcmQgbWVtYmVyIGZ1bmN0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHA6IERlbGV0ZWQgbW9z
dCBvZiB0aGUgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpuZXdHZW5lcmFs
Q2xpcGJvYXJkKTogQ2hhbmdlZCB0byBjYWxsIENsaXBib2FyZCBtZW1iZXIgZnVuY3Rpb24uCisg
ICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6IE1vdmVkIGZyb20g
Q2xpcGJvYXJkRWZsIHRvIENsaXBib2FyZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogTW92ZWQgZnJvbSBDbGlwYm9hcmRFZmwgdG8gQ2xp
cGJvYXJkLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjppdGVtcyk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwOiBBIGxvdCBvZiBjb3B5cmln
aHQgbm90aWNlcyBmb3IgYSBmaWxlIHRoYXQKKyAgICAgICAgaGFzIG5vIGNvZGUgaW4gaXQgb3Ro
ZXIgdGhhbiBub3RJbXBsZW1lbnRlZCBsaW5lcyEgSSBkaWRuJ3QgYWRkIGEgbmV3IG9uZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6Omhhc0RhdGEpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjp0eXBlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6cmVhZEZpbGVuYW1lcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
c2V0RHJhZ0ltYWdlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0
ZVBhc3RlYm9hcmQpOiBBZGRlZC4KKwogMjAxMy0wNS0xNiAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgQWRkIHN0dWJzIGZv
ciBDb250ZXh0TWVudSBhbmQgQ29udGV4dE1lbnVJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKaW5k
ZXggODIxNDMwNzdkOTlhYjNhOGJlMTVmMWEzNmExMDVlODA4ZTFiOTExYS4uZjYzMGRkZWI4NjQ5
NDVlNjE3OTIyYjY0NzdhY2RlZTcwM2RhMDM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NsaXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaApAQCAt
MzQsNyArMzQsNyBAQAogLy8gVGhpcyBET00gb2JqZWN0IG5vdyB3b3JrcyBieSBjYWxsaW5nIHRo
cm91Z2ggdG8gY2xhc3NlcyBpbiB0aGUgcGxhdGZvcm0gbGF5ZXIuCiAvLyBTcGVjaWZpY2FsbHks
IHRoZSBjbGFzcyBjdXJyZW50bHkgbmFtZWQgUGFzdGVib2FyZC4gVGhlIGxlZ2FjeSBzdHlsZSBp
bnN0ZWFkCiAvLyB1c2VzIHRoaXMgYXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KLSNkZWZpbmUg
V1RGX1VTRV9MRUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShC
TEFDS0JFUlJZKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV0lOKSkKKyNkZWZpbmUgV1RGX1VTRV9M
RUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTIChQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oUVQpIHx8IFBM
QVRGT1JNKFdJTikpCiAKICNpZiBVU0UoTEVHQUNZX1NUWUxFX0FCU1RSQUNUX0NMSVBCT0FSRF9D
TEFTUykKICNkZWZpbmUgTEVHQUNZX1ZJUlRVQUwgdmlydHVhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKaW5kZXggZTM2ZWRjYjRlYmU1ODhkM2Q0ZGQxMjEx
OWVhNzdjZGIyZGVjMTE4ZC4uNTAxN2VmNWZlNjQxOWU5MGI1NzMwN2Y4MzJiNWZmYjFjY2FhMmY1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVy
LmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmRFZmwuaCIKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtOTksNyArOTksNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50
LCBXaWRnZQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBQYXNzUmVmUHRyPENsaXBib2FyZD4g
RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIENsaXBib2FyZEVmbDo6Y3JlYXRlKENsaXBib2FyZFdyaXRhYmxlLCBDbGlwYm9hcmQ6OkRy
YWdBbmREcm9wKTsKKyAgICByZXR1cm4gQ2xpcGJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
bGlwYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVm
bC5jcHAKaW5kZXggZGQ0YWMyMGNmYzlhZjEzYjFmZGU1ZDI2ZGM0ZTIzMGEwYTBiMjFjZS4uYmUx
OWE1ZTgzMTJkNmVkNGIzYWUyZmRlYTA1ZWE5YzljMGY3MjA5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKQEAgLTE5LDEzNyArMTksMzYgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xpcGJvYXJkRWZsLmgiCisjaW5j
bHVkZSAiQ2xpcGJvYXJkLmgiCiAKICNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgotI2luY2x1ZGUgIkZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKLVBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxD
bGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqKQotewotICAgIHJl
dHVybiBDbGlwYm9hcmRFZmw6OmNyZWF0ZShwb2xpY3ksIENsaXBib2FyZDo6Q29weUFuZFBhc3Rl
KTsKLX0KLQotUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IENsaXBib2FyZDo6Y3JlYXRlKENsaXBib2Fy
ZEFjY2Vzc1BvbGljeSwgRHJhZ0RhdGEqLCBGcmFtZSopCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LUNsaXBib2FyZEVmbDo6Q2xpcGJvYXJkRWZsKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ks
IENsaXBib2FyZFR5cGUgY2xpcGJvYXJkVHlwZSkKLSAgICA6IENsaXBib2FyZChwb2xpY3ksIGNs
aXBib2FyZFR5cGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotQ2xpcGJvYXJkRWZs
Ojp+Q2xpcGJvYXJkRWZsKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENs
aXBib2FyZEVmbDo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotdm9pZCBDbGlwYm9hcmRFZmw6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFdURjo6
U3RyaW5nJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENsaXBib2FyZEVm
bDo6Y2xlYXJBbGxEYXRhKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1TdHJpbmcg
Q2xpcGJvYXJkRWZsOjpnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0Ci17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLWJvb2wgQ2xpcGJvYXJkRWZs
OjpzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLUxpc3RIYXNoU2V0PFN0cmluZz4gQ2xp
cGJvYXJkRWZsOjp0eXBlcygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOwotfQogCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBD
bGlwYm9hcmRFZmw6OmZpbGVzKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiAwOwotfQotCi1JbnRQb2ludCBDbGlwYm9hcmRFZmw6OmRyYWdMb2NhdGlvbigpIGNv
bnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50UG9pbnQoMCwgMCk7
Ci19Ci0KLUNhY2hlZEltYWdlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZSgpIGNvbnN0Ci17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBDbGlwYm9hcmRF
Zmw6OnNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50JikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi1Ob2RlKiBDbGlwYm9hcmRFZmw6OmRyYWdJbWFnZUVsZW1l
bnQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQg
Q2xpcGJvYXJkRWZsOjpzZXREcmFnSW1hZ2VFbGVtZW50KE5vZGUqLCBjb25zdCBJbnRQb2ludCYp
CitQYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5lcmFsQ2xpcGJvYXJkKENsaXBi
b2FyZEFjY2Vzc1BvbGljeSBwb2xpY3ksIEZyYW1lKikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBDbGlwYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShwb2xpY3kpOwog
fQogCi1EcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkRWZsOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQm
KSBjb25zdAorRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogfQogCi12
b2lkIENsaXBib2FyZEVmbDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KLXZvaWQgQ2xpcGJvYXJkRWZsOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3Ry
aW5nJiwgRnJhbWUqKQordm9pZCBDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShF
bGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENsaXBib2FyZEVmbDo6d3JpdGVSYW5nZShSYW5nZSos
IEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1ib29sIENsaXBib2FyZEVm
bDo6aGFzRGF0YSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZEVmbDo6aXRlbXMoKQorUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkOjppdGVtcygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gMDsKIH0KICNlbmRpZgogCi0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9DbGlwYm9hcmRFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA0
ZWI1MjE3YjdmZTc0YjVlZDM4NDNhNzNkOTNlZDE1NGVhNTdjOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
Q2xpcGJvYXJkRWZsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogIENv
cHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICog
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgQ2xpcGJvYXJkRWZsX2gKLSNkZWZpbmUgQ2xp
cGJvYXJkRWZsX2gKLQotI2luY2x1ZGUgIkNsaXBib2FyZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBDYWNoZWRJbWFnZTsKLQotY2xhc3MgQ2xpcGJvYXJkRWZsIDogcHVibGljIENs
aXBib2FyZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xpcGJvYXJkRWZsPiBj
cmVhdGUoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSwgQ2xpcGJvYXJkVHlwZSBjbGlwYm9h
cmRUeXBlID0gQ29weUFuZFBhc3RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDbGlwYm9hcmRFZmwocG9saWN5LCBjbGlwYm9hcmRUeXBlKSk7Ci0gICAgfQotICAgIH5DbGlw
Ym9hcmRFZmwoKTsKLQotICAgIHZvaWQgY2xlYXJEYXRhKGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgY2xlYXJBbGxEYXRhKCk7Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJikgY29u
c3Q7Ci0gICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwotCi0g
ICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKLQotICAgIEludFBvaW50IGRyYWdMb2NhdGlv
bigpIGNvbnN0OwotICAgIENhY2hlZEltYWdlKiBkcmFnSW1hZ2UoKSBjb25zdDsKLSAgICB2b2lk
IHNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7Ci0gICAgTm9kZSog
ZHJhZ0ltYWdlRWxlbWVudCgpOwotICAgIHZvaWQgc2V0RHJhZ0ltYWdlRWxlbWVudChOb2RlKiwg
Y29uc3QgSW50UG9pbnQmKTsKLQotICAgIHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZShJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopOwot
ICAgIHZpcnR1YWwgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJh
bWUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVSYW5nZShSYW5nZSosIEZyYW1lKik7Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlUGxhaW5U
ZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7Ci0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7
Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBDbGlwYm9hcmRFZmwoQ2xpcGJvYXJkQWNjZXNzUG9s
aWN5LCBDbGlwYm9hcmRUeXBlKTsKLX07Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IGQ0NDMwYzYxM2E3M2I1NDViYTI2
ZTRiYjAwMzZjZTIwZWZlNzA4YWEuLmZmZTlmZmNiMzcyOTk2OWVkN2I1YzI2ZWNlMGE5N2QwNTg5
MGMwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJk
RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5j
cHAKQEAgLTI0LDE0ICsyNCw4IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSW1h
Z2UuaCIKLSNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNp
bmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
OTQsNCArODgsNjkgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSopCiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCitQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0
ZWJvYXJkKTsKK30KKworUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQ
cml2YXRlKCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Cit9CisKK1Bh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQor
eworICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKK30KKworUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0
YSYpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworfQorCitib29sIFBh
c3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitMaXN0SGFzaFNldDxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7Cit9CisK
K1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQYXN0ZWJv
YXJkKGNvbnN0IFBhc3RlYm9hcmQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0K
</data>
<flag name="review"
          id="223522"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>