<?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>139681</bug_id>
          
          <creation_ts>2014-12-16 09:59:57 -0800</creation_ts>
          <short_desc>Touch support is reported even when the device doesn&apos;t have a touch screen</short_desc>
          <delta_ts>2019-05-27 11:25:04 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://people.igalia.com/clopez/checktouch.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141466</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>carlosg</cc>
    
    <cc>cgarcia</cc>
    
    <cc>chavarria1991</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mcdado</cc>
    
    <cc>nekohayo</cc>
    
    <cc>pochu27</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055991</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-12-16 09:59:57 -0800</bug_when>
    <thetext>Hi,

WebKitGTK+ reports that it has touch capabilities support even when the device where it&apos;s running don&apos;t has such capabilities. My laptop don&apos;t has any touch support and on the following test I get reported that my device has a touch screen. http://people.igalia.com/clopez/checktouch.html

Both with Firefox=34 and Chromium=38 (Xorg) on the same device (my laptop) and on the same test I get reported that I have a normal screen device without touch support.

Ideally, WebKitGTK+ should check if the device where it runs has a touch screen device (not sure how to do this) and then report touch capabilities based on that.

This has caused for example that click events don&apos;t work on the JS plot library (Flotr2) &lt;https://github.com/HumbleSoftware/Flotr2/pull/295&gt;. This is a bug on that library since the user can still use a mouse even if her device has touch capabilities.

But I think that we should not report touch capabilities when the device where we run don&apos;t has that, otherwise from time to time some pages that assume that we are touch capable are going to break.

More info: https://hacks.mozilla.org/2013/04/detecting-touch-its-the-why-not-the-how/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056324</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-17 06:25:42 -0800</bug_when>
    <thetext>The problem is that TOUCH_EVENTS is a compile time option. Both firefox and chromium say I&apos;m using a normal screen in my touch screen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056326</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-12-17 07:33:22 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Both firefox and chromium say I&apos;m using a normal screen in my touch screen

According to http://caniuse.com/#feat=touch Chromium should support it.

If you open chrome://flags/#touch-events on chromium, there is a &quot;Enable touch events&quot; switch. On my case is set to auto. Maybe if you force it to on (instead of auto) works.

The code they use for detecting if you have a touch screen seems to be there: https://chromium.googlesource.com/chromium/chromium/+/trunk/ui/events/x/touch_factory_x11.cc (Line 81)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056332</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-17 08:37:07 -0800</bug_when>
    <thetext>It&apos;s automatic here as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056369</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-17 10:27:26 -0800</bug_when>
    <thetext>We can make touch also a runtime feature, it&apos;s indeed listed in RuntimeEnabledFeatures, but ot actually used. However, I&apos;m not sure it&apos;s possible to use &quot;ontouchstart&quot; in window to check if touch is enabled. That could be used to check if wk has been build with touch events enabled, but not if the feature is enabled at runtime. I don&apos;t think it&apos;s possible to not include attributes depending on runtime features. In case of touch being disabled at runtime, you could check if window.ontouchstart is undefined, for example, or if document.createEvent(&apos;TouchEvent&apos;) raises an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056528</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-12-17 13:24:14 -0800</bug_when>
    <thetext>I guess we need something like what was implemented on https://bugs.webkit.org/show_bug.cgi?id=30240 for V8, but for JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056790</commentid>
    <comment_count>6</comment_count>
      <attachid>243496</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-18 09:31:46 -0800</bug_when>
    <thetext>Created attachment 243496
Patch

This disables touch events at run time, but &quot;ontouchstart&quot; in window would still return true. I still think the right check should be something like &quot;ontouchstart&quot; in window &amp;&amp; typeof window.ontouchstart != &apos;undefined&apos; to check both that wk is compiled with touch events enabled and that there&apos;s a touchscreen connected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059821</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-08 08:32:27 -0800</bug_when>
    <thetext>Darin, what do you think about this approach? Do you know whether it&apos;s possible/desirable to make &quot;ontouchstart&quot; in window return false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059831</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-08 08:59:32 -0800</bug_when>
    <thetext>It really bothers me that website developers check for the presence of the &quot;ontouchstart&quot; property in the window object as the way to detect &quot;touch capabilities&quot;. The whole point of that article is that it’s a bad idea. It’s certainly a hack, not a well considered technique. These &quot;on&lt;xxx&gt;&quot; properties are conveniences that allow you to set up an event listener without calling the addEventListener function. But the presence of such a convenience doesn’t tell you what events the webpage will receive! I don’t think the fact that a web engine allows you to set up a handler for the &quot;touchstart&quot; event means that you can count on the device being used to generate such events. It&apos;s like assuming because I know a few words of Spanish that I would prefer that you bring me the menu in Spanish rather than the one in English that I can read much more easily.

Some WebKit ports want have capabilities dynamically determined at runtime, with all traces of those capabilities hidden from the web platform. This is challenging to do in an efficient way. The normal way WebKit exposes DOM APIs doesn’t make it easy to have ones that are super-efficient but also dynamically present or not based on runtime capabilities. Because the Chrome team was vitally interested in having experimental features that could be turned on and off in their web browser, they made adding this feature to WebKit a high priority, but implemented it only for V8. That might have been because the engineers doing this work didn’t know how to do it efficiently for WebKit’s native JavaScript engine, or it might just be that they didn’t care about the feature outside their own use of it. I’m not sure everyone that is part of the WebKit project today agrees we want this feature in the WebKit tree. We should discuss what it would take to do this. The technical details are mostly about how to maintain the performance of the DOM bindings and also about how to keep things as simple as possible while adding even more switches. I don’t know if anyone at Apple is interested in working on this--it doesn’t seem that we need it for Mac or iOS at this time--and I also don’t know if anyone in the WebKit community has looked into what it will take to add this. There certainly will be a cost in complexity, but the benefit might be worthwhile.

PS: To make these websites work, we don’t want &quot;ontouchstart&quot; to return false, we want the expression &apos;&quot;ontouchstart&quot; in window&apos; to return false. It&apos;s no better and not helpful to talk about &quot;typeof window.ontouchstart != &apos;undefined&apos;&quot; for multiple reasons. For one thing, presumably the websites doing these checks already exist, so it’s not like we can change them, so I think that stops the conversation before it even begins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130183</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-10-02 00:49:30 -0700</bug_when>
    <thetext>*** Bug 146782 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130194</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-10-02 01:12:42 -0700</bug_when>
    <thetext>It&apos;s sad but I&apos;m afraid the touch events support is breaking more sites than what it fixes. I&apos;ve found today some jquery elements that use &quot;ontouchstart&quot; in document.documentElement to decide whether to add listeners for mouse events or not. I agree that&apos;s wrong, because it&apos;s also assuming that if you have a touch input device you can&apos;t use any other non touch devices (like having a laptop with a touch screen and a usb mouse, which is my case). But unfortunately this wrong way is more and more common, so the only thing I can think of is disabling touch events support by default. People building for an embedded device with touch capabilities could enable it. My main concern is that we won&apos;t test it anymore. Another option could be making it a runtime feature that WTR can enable, like my patch tried to do but without enabling/disabling it automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130218</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-02 07:01:42 -0700</bug_when>
    <thetext>In GNOME, our primary device targets are touchscreen laptops, non-touchscreen laptops, and desktops. We don&apos;t target embedded devices, but touch support is extremely important and must be present by default.

(In reply to comment #10)
&gt; It&apos;s sad but I&apos;m afraid the touch events support is breaking more sites than
&gt; what it fixes. I&apos;ve found today some jquery elements that use &quot;ontouchstart&quot;
&gt; in document.documentElement to decide whether to add listeners for mouse
&gt; events or not. I agree that&apos;s wrong, because it&apos;s also assuming that if you
&gt; have a touch input device you can&apos;t use any other non touch devices (like
&gt; having a laptop with a touch screen and a usb mouse, which is my case).

This is such an absurdly-common case that I think we should not attempt to support those sites. They can&apos;t possibly work properly in other browsers, regardless of whether ontouchstart is dynamically available or not, for the reason you mention. We should try to get in touch with the jquery developers to fix this before more sites start using it....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142233</commentid>
    <comment_count>12</comment_count>
    <who name="Jeff Fortin">nekohayo</who>
    <bug_when>2015-11-16 08:37:59 -0800</bug_when>
    <thetext>This indeed affects apps like Kanboard that depend on jQuery to detect touch support, as seen on https://github.com/fguillot/kanboard/issues/1382#issuecomment-156870832</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151992</commentid>
    <comment_count>13</comment_count>
      <attachid>243496</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-02 10:32:06 -0800</bug_when>
    <thetext>Comment on attachment 243496
Patch

Darin has several reservations about supporting runtime-enabled events, and it seems this patch is unlikely to fix websites in practice, correct? I think this requires at least discussion on webkit-dev, and possibly with W3C and other browsers.

If we are going to enable touch events at runtime, we should at least try to match the behavior of other engines. I am not sure, but I strongly suspect other engines are not checking whether the device uses a touchscreen, else the broken jQuery that makes a binary choice between using touch events or mouse events would not exist. Perhaps for compatibility, we should not be checking for whether a touchscreen is present, but for whether a non-touch input devices exist. E.g. if a mouse is plugged into your touchscreen computer, it&apos;s more important for the mouse to work than for the touchscreen to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342394</commentid>
    <comment_count>14</comment_count>
    <who name="David Gasperoni">mcdado</who>
    <bug_when>2017-08-25 08:55:36 -0700</bug_when>
    <thetext>I was wondering if `&apos;ontouchstart&apos; in document.documentElement` should return true when in Responsive Design Mode. It would make sure many libraries (including Boostrap 3) are going to behave like on mobile Safari.

I was trying to debug a situation where a `.dropdown-backdrop` had higher z-index than `.dropdown-menu` (my fault) and I couldn&apos;t reproduce it in Safari (neither 10.1.2 or TP 38) while I could in Firefox 56.0b5. In Firefox&apos;s responsive mode, `&apos;ontouchstart&apos; in document.documentElement` return true when the page is loaded with a touch-enabled profile.

Maybe that would be an interesting proposition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342412</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-25 09:38:37 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13)
&gt; Comment on attachment 243496 [details]
&gt; Patch
&gt; 
&gt; Darin has several reservations about supporting runtime-enabled events, and
&gt; it seems this patch is unlikely to fix websites in practice, correct? I
&gt; think this requires at least discussion on webkit-dev, and possibly with W3C
&gt; and other browsers.

My understanding is that this situation has changed in the past year, and Apple now wants to support runtime-enabled events. (Darin, is this true?) So I think it&apos;s fine for us to do this now.

&gt; If we are going to enable touch events at runtime, we should at least try to
&gt; match the behavior of other engines. I am not sure, but I strongly suspect
&gt; other engines are not checking whether the device uses a touchscreen, else
&gt; the broken jQuery that makes a binary choice between using touch events or
&gt; mouse events would not exist. Perhaps for compatibility, we should not be
&gt; checking for whether a touchscreen is present, but for whether a non-touch
&gt; input devices exist. E.g. if a mouse is plugged into your touchscreen
&gt; computer, it&apos;s more important for the mouse to work than for the touchscreen
&gt; to work.

This is still seems very important to change.

(In reply to David Gasperoni from comment #14)
&gt; I was wondering if `&apos;ontouchstart&apos; in document.documentElement` should
&gt; return true when in Responsive Design Mode. It would make sure many
&gt; libraries (including Boostrap 3) are going to behave like on mobile Safari.
&gt; 
&gt; I was trying to debug a situation where a `.dropdown-backdrop` had higher
&gt; z-index than `.dropdown-menu` (my fault) and I couldn&apos;t reproduce it in
&gt; Safari (neither 10.1.2 or TP 38) while I could in Firefox 56.0b5. In
&gt; Firefox&apos;s responsive mode, `&apos;ontouchstart&apos; in document.documentElement`
&gt; return true when the page is loaded with a touch-enabled profile.
&gt; 
&gt; Maybe that would be an interesting proposition.

I honestly have no idea what this means. Responsive Design Mode is a Safari developer option, right? Safari does not have to simultaneously support both touchscreen devices and traditional input devices due to Apple&apos;s decision not to manufacture touchscreen laptops, so I don&apos;t think Safari&apos;s behavior is at all relevant here. Currently ontouchstart always returns true if touch events are enabled at build time (so true on iOS, false on macOS, true for GTK+). The patch here would change it to return true only if touch events are supported by the user&apos;s monitor at runtime. My proposal is to change it to return true only if the user does not have a mouse or other pointer input device attached at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342414</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-25 09:42:40 -0700</bug_when>
    <thetext>Ah, I guess Responsive Design Mode is for developers testing their websites on phone-sized screens, right? If it&apos;s just a testing tool, then that might make sense indeed. Not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342417</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-25 09:43:43 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #15)
&gt; Currently ontouchstart always returns true if touch
&gt; events are enabled at build time

Of course I mean that testing if it is present will return true. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342419</commentid>
    <comment_count>18</comment_count>
    <who name="David Gasperoni">mcdado</who>
    <bug_when>2017-08-25 09:44:32 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #16)
&gt; Ah, I guess Responsive Design Mode is for developers testing their websites
&gt; on phone-sized screens, right? If it&apos;s just a testing tool, then that might
&gt; make sense indeed. Not sure.

Yes, it&apos;s the equivalent of Firefox&apos;s [Responsive Design Mode](https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode) and Chrome&apos;s [Device Mode](https://developers.google.com/web/tools/chrome-devtools/device-mode/).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538152</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-22 04:12:09 -0700</bug_when>
    <thetext>*** Bug 197773 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538156</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-22 05:03:51 -0700</bug_when>
    <thetext>*** Bug 197735 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538168</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-22 06:45:41 -0700</bug_when>
    <thetext>There are more and more sites broken because of this. I think the main concern is still the way to detect the touch mode to enable tocuh events at runtime. Checking if there&apos;s a touch device present as my path did is would break for user having a touch screen but using mainly a mouse (that used to be my case indeed). So, I think we have several options here:

 a) Enable/disable at runtime based on presence of a touch device. It will be still broken only for people having a touch screen by using a mouse.

 b) Stop building with touch events enabled by default. People building for specific hw with touch screen only can simply enable them at build time. Sites using touch events will be broken for people having touch screens. Most of the sties have a fallback mose using mose events, I think.

 c) Add a setting and expose the touch events at runtime depending on the setting (there&apos;s now EnabledBySetting). The setting could be auto by default, meaning it will be detected. It will be broken again for the case of using a mouse in a system with a touch screen, but at least users can force touch events to be enabled/disabled with the setting.

Any other idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538172</commentid>
    <comment_count>22</comment_count>
    <who name="Ryan DeBeasi">hi</who>
    <bug_when>2019-05-22 07:13:37 -0700</bug_when>
    <thetext>My understanding is if a device has both a touch screen and a mouse, reporting support for touch events is valid behavior. So, I think option A would be a totally reasonable course of action.

For more granular touch/mouse checks, web developers can check for the `pointer` CSS media feature. CSS media queries for the pointer also return some inaccurate results on WebKit GTK+ - see Bug 197773.

https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer
https://hacks.mozilla.org/2013/04/detecting-touch-its-the-why-not-the-how/
https://peterscene.com/detecting-touch-devices-2018-update/

Thank you so much for your time!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538643</commentid>
    <comment_count>23</comment_count>
      <attachid>370502</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-23 06:12:08 -0700</bug_when>
    <thetext>Created attachment 370502
Patch

Let&apos;s try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538645</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-23 06:12:51 -0700</bug_when>
    <thetext>*** Bug 141466 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538654</commentid>
    <comment_count>25</comment_count>
      <attachid>370502</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-23 08:17:51 -0700</bug_when>
    <thetext>Comment on attachment 370502
Patch

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

&gt; Source/WebCore/page/RuntimeEnabledFeatures.h:536
&gt; +    Optional&lt;bool&gt; m_touchEventsEnabled;

This seems confusing. The semantics of Optional don&apos;t lead themselves to a natural interpretation of this member variable. What does it mean for m_touchEventsEnabled to be unset: neither enabled nor disabled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538655</commentid>
    <comment_count>26</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-23 08:19:16 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #25)
&gt; Comment on attachment 370502 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370502&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/RuntimeEnabledFeatures.h:536
&gt; &gt; +    Optional&lt;bool&gt; m_touchEventsEnabled;
&gt; 
&gt; This seems confusing. The semantics of Optional don&apos;t lead themselves to a
&gt; natural interpretation of this member variable. What does it mean for
&gt; m_touchEventsEnabled to be unset: neither enabled nor disabled?

When not explicitly set PlatformScreen is queried for touch capabilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539351</commentid>
    <comment_count>27</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-27 01:34:42 -0700</bug_when>
    <thetext>Committed r245788: &lt;https://trac.webkit.org/changeset/245788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539352</commentid>
    <comment_count>28</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-27 01:35:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/51153897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539401</commentid>
    <comment_count>29</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-27 08:43:36 -0700</bug_when>
    <thetext>This broke internal Apple builds. Ideally it would have had review by an Apple reviewer, since the Touch Events code can only be tested in internal Apple builds. I&apos;ll try to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539404</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-27 09:01:28 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/245793/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539421</commentid>
    <comment_count>31</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-27 11:24:47 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #29)
&gt; This broke internal Apple builds. Ideally it would have had review by an
&gt; Apple reviewer, since the Touch Events code can only be tested in internal
&gt; Apple builds. I&apos;ll try to fix it.

Oh, I&apos;m sorry, I waited for 3 days before landing it, precisely to give time to Apple reviewers to comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539422</commentid>
    <comment_count>32</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-27 11:25:04 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #30)
&gt; https://trac.webkit.org/changeset/245793/webkit

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243496</attachid>
            <date>2014-12-18 09:31:46 -0800</date>
            <delta_ts>2019-05-23 06:12:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-touch-events-runtime.diff</filename>
            <type>text/plain</type>
            <size>22995</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZGNjYWE1Li4zNDI2YTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMTIt
MTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFRvdWNoIHN1cHBvcnQgaXMgcmVwb3J0ZWQgZXZlbiB3aGVuIHRoZSBkZXZpY2UgZG9lc24ndCBo
YXZlIGEgdG91Y2ggc2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzk2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgdGVzdCB0byBjaGVjayB0aGF0IHRvdWNoIGV2ZW50cyBjYW4gYmUgZW5h
YmxlZC9kaXNhYmxlZCBhdCBydW4gdGltZS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNo
L3RvdWNoLWV2ZW50cy1hdmFpbGFiaWxpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC1ldmVudHMtYXZhaWxhYmlsaXR5Lmh0bWw6IEFkZGVk
LgorCiAyMDE0LTEyLTE4ICBSYWR1IFN0YXZpbGEgIDxzdGF2aWxhQGFkb2JlLmNvbT4KIAogICAg
ICAgICBbU1ZHIE1hc2tpbmddIEVuYWJsZSB0aGUgdXNlIG9mIDxtYXNrPiBlbGVtZW50cyBmb3Ig
LXdlYmtpdC1tYXNrLWltYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC90b3VjaC1ldmVudHMtYXZhaWxhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWV2ZW50cy1hdmFpbGFiaWxpdHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhMDYwNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1ldmVudHMtYXZhaWxh
YmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUZXN0IHRoYXQgdG91Y2ggZXZl
bnRzIGNhbiBiZSBlbmFibGVkIGFuZCBkaXNhYmxlZCBhdCBydW4gdGltZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93Lm9udG91Y2hzdGFydCBpcyBkZWZpbmVk
LgorUEFTUyB3aW5kb3cub250b3VjaG1vdmUgaXMgZGVmaW5lZC4KK1BBU1Mgd2luZG93Lm9udG91
Y2hlbmQgaXMgZGVmaW5lZC4KK1BBU1Mgd2luZG93Lm9udG91Y2hjYW5jZWwgaXMgZGVmaW5lZC4K
K1BBU1MgZG9jdW1lbnQub250b3VjaHN0YXJ0IGlzIGRlZmluZWQuCitQQVNTIGRvY3VtZW50Lm9u
dG91Y2htb3ZlIGlzIGRlZmluZWQuCitQQVNTIGRvY3VtZW50Lm9udG91Y2hlbmQgaXMgZGVmaW5l
ZC4KK1BBU1MgZG9jdW1lbnQub250b3VjaGNhbmNlbCBpcyBkZWZpbmVkLgorUEFTUyBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQub250b3VjaHN0YXJ0IGlzIGRlZmluZWQuCitQQVNTIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5vbnRvdWNobW92ZSBpcyBkZWZpbmVkLgorUEFTUyBkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQub250b3VjaGVuZCBpcyBkZWZpbmVkLgorUEFTUyBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQub250b3VjaGNhbmNlbCBpcyBkZWZpbmVkLgorUEFTUyB0eXBlb2YoZG9jdW1l
bnQuY3JlYXRlRXZlbnQoJ1RvdWNoRXZlbnQnKSkgaXMgJ29iamVjdCcKK1BBU1Mgd2luZG93Lm9u
dG91Y2hzdGFydCBpcyB1bmRlZmluZWQuCitQQVNTIHdpbmRvdy5vbnRvdWNobW92ZSBpcyB1bmRl
ZmluZWQuCitQQVNTIHdpbmRvdy5vbnRvdWNoZW5kIGlzIHVuZGVmaW5lZC4KK1BBU1Mgd2luZG93
Lm9udG91Y2hjYW5jZWwgaXMgdW5kZWZpbmVkLgorUEFTUyBkb2N1bWVudC5vbnRvdWNoc3RhcnQg
aXMgdW5kZWZpbmVkLgorUEFTUyBkb2N1bWVudC5vbnRvdWNobW92ZSBpcyB1bmRlZmluZWQuCitQ
QVNTIGRvY3VtZW50Lm9udG91Y2hlbmQgaXMgdW5kZWZpbmVkLgorUEFTUyBkb2N1bWVudC5vbnRv
dWNoY2FuY2VsIGlzIHVuZGVmaW5lZC4KK1BBU1MgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9u
dG91Y2hzdGFydCBpcyB1bmRlZmluZWQuCitQQVNTIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5v
bnRvdWNobW92ZSBpcyB1bmRlZmluZWQuCitQQVNTIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5v
bnRvdWNoZW5kIGlzIHVuZGVmaW5lZC4KK1BBU1MgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9u
dG91Y2hjYW5jZWwgaXMgdW5kZWZpbmVkLgorUEFTUyBkb2N1bWVudC5jcmVhdGVFdmVudCgnVG91
Y2hFdmVudCcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBF
eGNlcHRpb24gOS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1l
dmVudHMtYXZhaWxhYmlsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90
b3VjaC1ldmVudHMtYXZhaWxhYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzVjYTBkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL3RvdWNoLWV2ZW50cy1hdmFpbGFiaWxpdHkuaHRtbApAQCAtMCwwICsxLDUyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCdUZXN0IHRoYXQgdG91Y2ggZXZlbnRzIGNhbiBiZSBlbmFibGVkIGFuZCBkaXNhYmxlZCBh
dCBydW4gdGltZS4nKTsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRUb3VjaEVuYWJsZWQodHJ1ZSk7CisKK3Nob3VsZEJlRGVmaW5lZCgi
d2luZG93Lm9udG91Y2hzdGFydCIpOworc2hvdWxkQmVEZWZpbmVkKCJ3aW5kb3cub250b3VjaG1v
dmUiKTsKK3Nob3VsZEJlRGVmaW5lZCgid2luZG93Lm9udG91Y2hlbmQiKTsKK3Nob3VsZEJlRGVm
aW5lZCgid2luZG93Lm9udG91Y2hjYW5jZWwiKTsKKworc2hvdWxkQmVEZWZpbmVkKCJkb2N1bWVu
dC5vbnRvdWNoc3RhcnQiKTsKK3Nob3VsZEJlRGVmaW5lZCgiZG9jdW1lbnQub250b3VjaG1vdmUi
KTsKK3Nob3VsZEJlRGVmaW5lZCgiZG9jdW1lbnQub250b3VjaGVuZCIpOworc2hvdWxkQmVEZWZp
bmVkKCJkb2N1bWVudC5vbnRvdWNoY2FuY2VsIik7CisKK3Nob3VsZEJlRGVmaW5lZCgiZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50Lm9udG91Y2hzdGFydCIpOworc2hvdWxkQmVEZWZpbmVkKCJkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQub250b3VjaG1vdmUiKTsKK3Nob3VsZEJlRGVmaW5lZCgiZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9udG91Y2hlbmQiKTsKK3Nob3VsZEJlRGVmaW5lZCgiZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9udG91Y2hjYW5jZWwiKTsKKworc2hvdWxkQmUoInR5cGVv
Zihkb2N1bWVudC5jcmVhdGVFdmVudCgnVG91Y2hFdmVudCcpKSIsICInb2JqZWN0JyIpOworCitp
ZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRv
dWNoRW5hYmxlZChmYWxzZSk7CisKK3Nob3VsZEJlVW5kZWZpbmVkKCJ3aW5kb3cub250b3VjaHN0
YXJ0Iik7CitzaG91bGRCZVVuZGVmaW5lZCgid2luZG93Lm9udG91Y2htb3ZlIik7CitzaG91bGRC
ZVVuZGVmaW5lZCgid2luZG93Lm9udG91Y2hlbmQiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJ3aW5k
b3cub250b3VjaGNhbmNlbCIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiZG9jdW1lbnQub250b3Vj
aHN0YXJ0Iik7CitzaG91bGRCZVVuZGVmaW5lZCgiZG9jdW1lbnQub250b3VjaG1vdmUiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJkb2N1bWVudC5vbnRvdWNoZW5kIik7CitzaG91bGRCZVVuZGVmaW5l
ZCgiZG9jdW1lbnQub250b3VjaGNhbmNlbCIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50Lm9udG91Y2hzdGFydCIpOworc2hvdWxkQmVVbmRlZmluZWQoImRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5vbnRvdWNobW92ZSIpOworc2hvdWxkQmVVbmRlZmluZWQo
ImRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vbnRvdWNoZW5kIik7CitzaG91bGRCZVVuZGVmaW5l
ZCgiZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9udG91Y2hjYW5jZWwiKTsKKworc2hvdWxkVGhy
b3coImRvY3VtZW50LmNyZWF0ZUV2ZW50KCdUb3VjaEV2ZW50JykiLCAnIkVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5IicpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYzdhODlkLi42MmQ4ZDcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTcgQEAKKzIwMTQtMTItMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgorCisgICAgICAgIFRvdWNoIHN1cHBvcnQgaXMgcmVwb3J0ZWQgZXZlbiB3aGVu
IHRoZSBkZXZpY2UgZG9lc24ndCBoYXZlIGEgdG91Y2ggc2NyZWVuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgb3IgZGlzYWJsZSB0b3VjaCBl
dmVudHMgYXQgcnVuIHRpbWUgZGVwZW5kaW5nIG9uIHdoZXRoZXIKKyAgICAgICAgdGhlIHNjcmVl
biBoYXMgYSB0b3VjaHNjcmVlbiBkZXZpY2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMv
dG91Y2gvdG91Y2gtZXZlbnRzLWF2YWlsYWJpbGl0eS5odG1sCisKKyAgICAgICAgKiBiaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRGZWF0dXJlcyk6CisgICAgICAg
IEluaXRpYWxpemUgbV9pc1RvdWNoRW5hYmxlZCB0byBBdXRvLgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFbmFibGVkKTogUmV0dXJuIHdoZXRoZXIKKyAg
ICAgICAgdG91Y2ggZXZlbnRzIGFyZSBlbmFibGVkLCB1c2luZyBQbGF0Zm9ybVNjcmVlbiB0byBj
aGVjayBpZiB0aGVyZSdzCisgICAgICAgIGEgdG91Y2ggc2NyZWVuIHdoZW4gYXV0byBtb2RlIGlz
IHVzZWQuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRUb3Vj
aEVuYWJsZWQpOiBPdmVycmlkZQorICAgICAgICBtX2lzVG91Y2hFbmFibGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbik6IEFsc28gY2hlY2sgcnVudGltZSBmZWF0dXJlcyBmb3IgZXZlbnRzLgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IE1hcmsgdG91Y2ggZXZlbnRzIGFzIEVuYWJsZWRBdFJ1
bnRpbWU9VG91Y2guCisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOiBEaXR0bworICAgICAgICAq
IGRvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGw6CisgICAgICAgIChnZW5lcmF0ZUltcGxlbWVudGF0
aW9uKTogUmVtb3ZlIEZJWE1FIGFuZCBoYW5kbGUgZmVhdHVyZXMgZW5hYmxlZAorICAgICAgICBh
dCBydW4gdGltZS4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IE1hcmsgdG91Y2ggZXZl
bnRzIGFzIEVuYWJsZWRBdFJ1bnRpbWU9VG91Y2guCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZv
cm1TY3JlZW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhhc1RvdWNoRGV2aWNlKTogUmV0
dXJuIHdoZXRoZXIgdGhlcmUncyBhCisgICAgICAgIHRvdWNoc2NyZWVuIGNvbm5lY3RlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG91Y2hEZXZpY2VzKTogSGFzaFNldCBvZiB0b3VjaHNjcmVlbiBkZXZpY2VzLgorICAg
ICAgICAoV2ViQ29yZTo6aXNUb3VjaERldmljZSk6IEhlbHBlciBmdW5jaW9uIHRvIGNoZWNrIGlm
IGEgR2RrRGV2aWNlCisgICAgICAgIGlzIGEgdG91Y2hzY3JlZW4uCisgICAgICAgIChXZWJDb3Jl
OjpkZXZpY2VBZGRlZENhbGxiYWNrKTogQ2FsbGJhY2sgY2FsbGVkIHdoZW4gYSBkZXZpY2UgaXMK
KyAgICAgICAgY29ubmVjdGVkLiBBZGQgdGhlIGRldmljZSB0byB0b3VjaERldmljZXMgc2V0IGlm
IGl0J3MgYSB0b3VjaHNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6OmRldmljZVJlbW92ZWRDYWxs
YmFjayk6IENhbGxiYWNrIGNhbGxlZCB3aGVuIGEgZGV2aWNlIGlzCisgICAgICAgIGRpc2Nvbm5l
Y3RlZC4gUmVtb3ZlIHRoZSBkZXZpY2UgZnJvbSB0b3VjaERldmljZXMgc2V0IGlmIGl0J3MgYSB0
b3VjaHNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVEZXZpY2VNb25pdG9yKTog
SW5pdGlhbGl6ZSB0aGUgc2V0IG9mCisgICAgICAgIHRvdWNoc2NyZWVuIGRldmljZXMuCisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5IYXNUb3VjaERldmljZSk6IFJldHVybiB0cnVlIGlmIHRoZXJl
J3MgYXQgbGVhc3QKKyAgICAgICAgb25lIHRvdWNoc2NyZWVuIGNvbm5lY3RlZC4KKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXApOiBTYXZlIHRvdWNoRW5hYmxlZAorICAgICAgICBy
dW50aW1lIGZlYXR1cmUuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNr
dXA6OnJlc3RvcmVUbyk6IFJlc3RvcmUKKyAgICAgICAgdG91Y2hFbmFibGVkIHJ1bnRpbWUgZmVh
dHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFRvdWNoRW5hYmxl
ZCk6IFNldCB0b3VjaEVuYWJsZWQKKyAgICAgICAgcnVudGltZSBmZWF0dXJlLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGw6IEFkZCBzZXRUb3VjaEVuYWJsZWQoKS4KKwogMjAxNC0xMi0xOCAgUmFkdSBT
dGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CiAKICAgICAgICAgW1NWRyBNYXNraW5nXSBFbmFi
bGUgdGhlIHVzZSBvZiA8bWFzaz4gZWxlbWVudHMgZm9yIC13ZWJraXQtbWFzay1pbWFnZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5jcHAKaW5kZXggNWQ0YzhlMy4uOTRjMmQyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
Y3BwCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgIldlYlNvY2tldC5oIgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRGZWF0dXJlcygpCkBAIC00OCw3
ICs1Miw2IEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMo
KQogICAgICwgbV9pc0RhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc0dl
b2xvY2F0aW9uRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc0luZGV4ZWREQkVuYWJsZWQoZmFsc2Up
Ci0gICAgLCBtX2lzVG91Y2hFbmFibGVkKHRydWUpCiAgICAgLCBtX2lzRGV2aWNlTW90aW9uRW5h
YmxlZCh0cnVlKQogICAgICwgbV9pc0RldmljZU9yaWVudGF0aW9uRW5hYmxlZCh0cnVlKQogICAg
ICwgbV9pc0NTU1NoYXBlc0VuYWJsZWQodHJ1ZSkKQEAgLTYwLDYgKzYzLDkgQEAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRGZWF0dXJlcygpCiAjZWxzZQogICAgICwgbV9p
c1BsdWdpblJlcGxhY2VtZW50RW5hYmxlZChmYWxzZSkKICNlbmRpZgorI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCisgICAgLCBtX2lzVG91Y2hFbmFibGVkKFRvdWNoRW5hYmxlTW9kZTo6QXV0bykK
KyNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX2lzTWVkaWFTdHJlYW1F
bmFibGVkKHRydWUpCiAgICAgLCBtX2lzUGVlckNvbm5lY3Rpb25FbmFibGVkKHRydWUpCkBAIC0x
NzMsNCArMTc5LDI0IEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViU29ja2V0RW5h
YmxlZCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCitib29s
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnRvdWNoRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChtX2lzVG91Y2hFbmFibGVkKSB7CisgICAgY2FzZSBUb3VjaEVuYWJsZU1vZGU6OkVuYWJs
ZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVG91Y2hFbmFibGVNb2RlOjpEaXNh
YmxlZDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgVG91Y2hFbmFibGVNb2RlOjpB
dXRvOgorICAgICAgICByZXR1cm4gc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFRvdWNo
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9pc1RvdWNoRW5hYmxlZCA9IGVuYWJsZWQg
PyBUb3VjaEVuYWJsZU1vZGU6OkVuYWJsZWQgOiBUb3VjaEVuYWJsZU1vZGU6OkRpc2FibGVkOwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXgg
ZTk3ZTExNi4uNWRhYjE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTExMyw4ICsxMTMsOCBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgYm9vbCB0b3Vj
aEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzVG91Y2hFbmFibGVkOyB9Ci0gICAgdm9pZCBz
ZXRUb3VjaEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1RvdWNoRW5hYmxlZCA9IGlzRW5h
YmxlZDsgfQorICAgIGJvb2wgdG91Y2hFbmFibGVkKCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3Vj
aEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpOwogI2VuZGlmCiAKICAgICB2b2lkIHNldERldmljZU1v
dGlvbkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc0RldmljZU1vdGlvbkVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KQEAgLTIxMyw3ICsyMTMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0Rh
dGFUcmFuc2Zlckl0ZW1zRW5hYmxlZDsKICAgICBib29sIG1faXNHZW9sb2NhdGlvbkVuYWJsZWQ7
CiAgICAgYm9vbCBtX2lzSW5kZXhlZERCRW5hYmxlZDsKLSAgICBib29sIG1faXNUb3VjaEVuYWJs
ZWQ7CiAgICAgYm9vbCBtX2lzRGV2aWNlTW90aW9uRW5hYmxlZDsKICAgICBib29sIG1faXNEZXZp
Y2VPcmllbnRhdGlvbkVuYWJsZWQ7CiAgICAgYm9vbCBtX2lzQ1NTU2hhcGVzRW5hYmxlZDsKQEAg
LTIyMiw2ICsyMjEsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNMYW5nQXR0cmlidXRlQXdh
cmVGb3JtQ29udHJvbFVJRW5hYmxlZDsKICAgICBib29sIG1faXNQbHVnaW5SZXBsYWNlbWVudEVu
YWJsZWQ7CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGVudW0gVG91Y2hFbmFibGVN
b2RlIHsgQXV0bywgRW5hYmxlZCwgRGlzYWJsZWQgfTsKKyAgICBUb3VjaEVuYWJsZU1vZGUgbV9p
c1RvdWNoRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfSTE4Tl9BUEkp
CiAgICAgYm9vbCBtX2lzSmF2YVNjcmlwdEkxOE5BUElFbmFibGVkOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IDg1OTVkMTkuLmQ5M2M1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yMjE5LDggKzIyMTksOCBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICMgR2xvYmFsIGNvbnN0cnVjdG9ycyBjYW4gYmUgZGlzYWJsZWQgYXQgcnVudGltZS4KLSAgICAg
ICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8p
IHsKKyAgICAgICAgICAgICMgR2xvYmFsIGNvbnN0cnVjdG9ycyBhbmQgZXZlbnRzIGNhbiBiZSBk
aXNhYmxlZCBhdCBydW50aW1lLgorICAgICAgICAgICAgaWYgKCR0eXBlID1+IC9Db25zdHJ1Y3Rv
ciQvIHx8ICR0eXBlIGVxICJFdmVudExpc3RlbmVyIikgewogICAgICAgICAgICAgICAgIGlmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFbmFibGVkQXRSdW50
aW1lIn0pIHsKICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIpOwogICAgICAgICAgICAgICAgICAgICBteSAkZW5hYmxlX2Z1bmN0
aW9uID0gR2V0UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5zaWduYXR1cmUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggMTA3ZTFjZi4uNGVlOWE0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCkBAIC0zMTMsMTAgKzMxMywxMCBAQAogICAgIFtOb3RFbnVtZXJhYmxl
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlYXJjaDsKICAgICBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWxlY3Rpb25jaGFuZ2U7Ci0gICAgW05vdEVu
dW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbnRvdWNoc3RhcnQ7Ci0gICAgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZF
TlRTXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKLSAgICBbTm90RW51bWVy
YWJsZSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
dG91Y2hlbmQ7Ci0gICAgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOworICAgIFtOb3RFbnVtZXJhYmxl
LCBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91Y2hdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hzdGFydDsKKyAgICBbTm90RW51bWVyYWJsZSwgQ29u
ZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLCBFbmFibGVkQXRSdW50aW1lPVRvdWNoXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKKyAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9u
YWw9VE9VQ0hfRVZFTlRTLCBFbmFibGVkQXRSdW50aW1lPVRvdWNoXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbnRvdWNoZW5kOworICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1UT1VD
SF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91Y2hdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9udG91Y2hjYW5jZWw7CiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JF
RU5fQVBJXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2U7
CiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5lcnJvcjsKICAgICBbTm90RW51bWVy
YWJsZSwgQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bnBvaW50ZXJsb2NrY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IGRkYjliYjYuLjA5
OTRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTIzMywxMCArMjMzLDEwIEBACiAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7CiAgICAgW05v
dEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2VhcmNoOwogICAgIFtOb3RF
bnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlbGVjdHN0YXJ0OwotICAgIFtO
b3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb250b3VjaHN0YXJ0OwotICAgIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNI
X0VWRU5UU10gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaG1vdmU7Ci0gICAgW05vdEVu
dW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbnRvdWNoZW5kOwotICAgIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5U
U10gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaGNhbmNlbDsKKyAgICBbTm90RW51bWVy
YWJsZSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91Y2hdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hzdGFydDsKKyAgICBbTm90RW51bWVyYWJsZSxD
b25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91Y2hdIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9udG91Y2htb3ZlOworICAgIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlv
bmFsPVRPVUNIX0VWRU5UUywgRW5hYmxlZEF0UnVudGltZT1Ub3VjaF0gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb250b3VjaGVuZDsKKyAgICBbTm90RW51bWVyYWJsZSxDb25kaXRpb25hbD1UT1VD
SF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91Y2hdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9udG91Y2hjYW5jZWw7CiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JF
RU5fQVBJXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2U7
CiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5lcnJvcjsKICAgICBbTm90RW51bWVy
YWJsZSwgQ29uZGl0aW9uYWw9V0lMTF9SRVZFQUxfRURHRV9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ud2Via2l0d2lsbHJldmVhbGJvdHRvbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9ldmVudF9mYWN0b3J5LnBsCmluZGV4IDcwMTE2NjBiLi5hMzEyNTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwKQEAgLTg2LDYgKzg2LDcgQEAgc3ViIGdlbmVy
YXRlSW1wbGVtZW50YXRpb24oKQogICAgIHByaW50IEYgIiNpbmNsdWRlIFwiJHtuYW1lc3BhY2V9
RmFjdG9yeS5oXCJcbiI7CiAgICAgcHJpbnQgRiAiXG4iOwogICAgIHByaW50IEYgIiNpbmNsdWRl
IFwiJHtuYW1lc3BhY2V9SGVhZGVycy5oXCJcbiI7CisgICAgcHJpbnQgRiAiI2luY2x1ZGUgXCJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmhcIlxuIjsKICAgICBwcmludCBGICJcbiI7CiAgICAgcHJp
bnQgRiAibmFtZXNwYWNlIFdlYkNvcmUge1xuIjsKICAgICBwcmludCBGICJcbiI7CkBAIC05OCwx
MyArOTksMjAgQEAgc3ViIGdlbmVyYXRlSW1wbGVtZW50YXRpb24oKQogICAgICAgICBteSAkaW50
ZXJmYWNlTmFtZSA9ICRJbkNvbXBpbGVyLT5pbnRlcmZhY2VGb3JJdGVtKCRldmVudE5hbWUpOwog
CiAgICAgICAgIHByaW50IEYgIiNpZiBFTkFCTEUoJGNvbmRpdGlvbmFsKVxuIiBpZiAkY29uZGl0
aW9uYWw7Ci0gICAgICAgICMgRklYRU1FIEpTQyBzaG91bGQgc3VwcG9ydCBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzCi0gICAgICAgIHByaW50IEYgIiAgICBpZiAodHlwZSA9PSBcIiRldmVudE5hbWVc
IilcbiI7CisgICAgICAgIHByaW50IEYgIiAgICBpZiAodHlwZSA9PSBcIiRldmVudE5hbWVcIiki
OworICAgICAgICBwcmludCBGICIgeyIgaWYgJHJ1bnRpbWVDb25kaXRpb25hbDsKKyAgICAgICAg
cHJpbnQgRiAiXG4iOworICAgICAgICBpZiAoJHJ1bnRpbWVDb25kaXRpb25hbCkgeworICAgICAg
ICAgICAgcHJpbnQgRiAiICAgICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuJHJ1bnRpbWVDb25kaXRpb25hbCgpKVxuIjsKKyAgICAgICAgICAgIHByaW50
IEYgIiAgICAgICAgICAgIHJldHVybiBudWxscHRyO1xuIjsKKyAgICAgICAgfQogICAgICAgICBw
cmludCBGICIgICAgICAgIHJldHVybiAke2ludGVyZmFjZU5hbWV9OjpjcmVhdGUoKTtcbiI7Cisg
ICAgICAgIHByaW50IEYgIiAgICB9XG4iIGlmICRydW50aW1lQ29uZGl0aW9uYWw7CisKICAgICAg
ICAgcHJpbnQgRiAiI2VuZGlmXG4iIGlmICRjb25kaXRpb25hbDsKICAgICB9CiAKLSAgICBwcmlu
dCBGICIgICAgcmV0dXJuIDA7XG4iOworICAgIHByaW50IEYgIiAgICByZXR1cm4gbnVsbHB0cjtc
biI7CiAgICAgcHJpbnQgRiAifVxuIjsKICAgICBwcmludCBGICJcbiI7CiAgICAgcHJpbnQgRiAi
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRl
eCA2NjJhMjgxLi4wNzFmMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0yODAs
MTAgKzI4MCwxMCBAQAogI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYg
RU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwogICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
b3JpZW50YXRpb25jaGFuZ2U7CiAjZW5kaWYKLSAgICBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRT
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNoc3RhcnQ7Ci0gICAgW0NvbmRpdGlvbmFs
PVRPVUNIX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaG1vdmU7Ci0gICAg
W0NvbmRpdGlvbmFsPVRPVUNIX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3Vj
aGVuZDsKLSAgICBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbnRvdWNoY2FuY2VsOworICAgIFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJs
ZWRBdFJ1bnRpbWU9VG91Y2hdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hzdGFydDsK
KyAgICBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLCBFbmFibGVkQXRSdW50aW1lPVRvdWNoXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKKyAgICBbQ29uZGl0aW9uYWw9VE9V
Q0hfRVZFTlRTLCBFbmFibGVkQXRSdW50aW1lPVRvdWNoXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbnRvdWNoZW5kOworICAgIFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1
bnRpbWU9VG91Y2hdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hjYW5jZWw7CiAKICAg
ICBbQ29uZGl0aW9uYWw9SU9TX0dFU1RVUkVfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmdlc3R1cmVzdGFydDsKICAgICBbQ29uZGl0aW9uYWw9SU9TX0dFU1RVUkVfRVZFTlRTXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmdlc3R1cmVjaGFuZ2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1TY3JlZW4uaAppbmRleCBlNGNhZTEwLi5jMDg5ZGRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTcxLDYgKzcxLDE0IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBmbG9hdCBzY3JlZW5QUElGYWN0b3IoKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBQTEFURk9STShHVEspCisgICAgYm9vbCBzY3Jl
ZW5IYXNUb3VjaERldmljZSgpOworI2Vsc2UKKyAgICBib29sIHNjcmVlbkhhc1RvdWNoRGV2aWNl
KCkgeyByZXR1cm4gdHJ1ZTsgfQorI2VuZGlmCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gUGxhdGZvcm1TY3JlZW5faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKaW5kZXggYmUyYjljOS4uYWJiNjQw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVu
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5H
dGsuY3BwCkBAIC0zNyw4ICszNywxMCBAQAogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIldpZGdldC5oIgotCiAjaW5jbHVkZSA8
Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEzMCw0ICsxMzIsNjkgQEAgRmxvYXRSZWN0IHNjcmVlbkF2
YWlsYWJsZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCiAKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCitzdGF0aWMgSGFzaFNldDxHZGtEZXZpY2Uq
PiYgdG91Y2hEZXZpY2VzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxH
ZGtEZXZpY2UqPj4gdG91Y2hEZXZpY2VTZXQ7CisgICAgcmV0dXJuIHRvdWNoRGV2aWNlU2V0Owor
fQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNUb3VjaERldmljZShHZGtEZXZpY2UqIGRldmljZSkK
K3sKKyAgICByZXR1cm4gZ2RrX2RldmljZV9nZXRfZGV2aWNlX3R5cGUoZGV2aWNlKSA9PSBHREtf
REVWSUNFX1RZUEVfU0xBVkUgJiYgZ2RrX2RldmljZV9nZXRfc291cmNlKGRldmljZSkgPT0gR0RL
X1NPVVJDRV9UT1VDSFNDUkVFTjsKK30KKworc3RhdGljIHZvaWQgZGV2aWNlQWRkZWRDYWxsYmFj
ayhHZGtEZXZpY2VNYW5hZ2VyKiwgR2RrRGV2aWNlKiBkZXZpY2UpCit7CisgICAgaWYgKCFpc1Rv
dWNoRGV2aWNlKGRldmljZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghdG91Y2hE
ZXZpY2VzKCkuY29udGFpbnMoZGV2aWNlKSk7CisgICAgdG91Y2hEZXZpY2VzKCkuYWRkKGRldmlj
ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRldmljZVJlbW92ZWRDYWxsYmFjayhHZGtEZXZpY2VNYW5h
Z2VyKiwgR2RrRGV2aWNlKiBkZXZpY2UpCit7CisgICAgaWYgKCFpc1RvdWNoRGV2aWNlKGRldmlj
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCh0b3VjaERldmljZXMoKS5jb250YWlu
cyhkZXZpY2UpKTsKKyAgICB0b3VjaERldmljZXMoKS5yZW1vdmUoZGV2aWNlKTsKK30KKworc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZURldmljZU1vbml0b3IoKQoreworICAgIHN0YXRpYyBib29sIGRl
dmljZU1vbml0b3JJbml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmIChkZXZpY2VNb25pdG9ySW5p
dGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGRldmljZU1vbml0b3JJbml0aWFsaXpl
ZCA9IHRydWU7CisgICAgR2RrRGV2aWNlTWFuYWdlciogZGV2aWNlTWFuYWdlciA9IGdka19kaXNw
bGF5X2dldF9kZXZpY2VfbWFuYWdlcihnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpKTsKKyAgICBp
ZiAoIWRldmljZU1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEdVbmlxdWVQdHI8R0xp
c3Q+IGRldmljZXMoZ2RrX2RldmljZV9tYW5hZ2VyX2xpc3RfZGV2aWNlcyhkZXZpY2VNYW5hZ2Vy
LCBHREtfREVWSUNFX1RZUEVfU0xBVkUpKTsKKyAgICBmb3IgKEdMaXN0KiBpdCA9IGRldmljZXMu
Z2V0KCk7IGl0OyBpdCA9IGdfbGlzdF9uZXh0KGl0KSkgeworICAgICAgICBHZGtEZXZpY2UqIGRl
dmljZSA9IEdES19ERVZJQ0UoaXQtPmRhdGEpOworICAgICAgICBpZiAoZ2RrX2RldmljZV9nZXRf
c291cmNlKGRldmljZSkgPT0gR0RLX1NPVVJDRV9UT1VDSFNDUkVFTikKKyAgICAgICAgICAgIHRv
dWNoRGV2aWNlcygpLmFkZChkZXZpY2UpOworICAgIH0KKworICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
ZGV2aWNlTWFuYWdlciwgImRldmljZS1hZGRlZCIsIEdfQ0FMTEJBQ0soZGV2aWNlQWRkZWRDYWxs
YmFjayksIG51bGxwdHIpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGV2aWNlTWFuYWdlciwgImRl
dmljZS1yZW1vdmVkIiwgR19DQUxMQkFDSyhkZXZpY2VSZW1vdmVkQ2FsbGJhY2spLCBudWxscHRy
KTsKK30KKyNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgorCitib29sIHNjcmVlbkhhc1RvdWNo
RGV2aWNlKCkKK3sKKyNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKKyAgICBpbml0aWFsaXplRGV2
aWNlTW9uaXRvcigpOworICAgIHJldHVybiAhdG91Y2hEZXZpY2VzKCkuaXNFbXB0eSgpOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKyNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBkYmZmNWRjLi40NjlhYzg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTkwLDYgKzkwLDkgQEAg
SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdzKQogICAg
ICwgbV9hdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkKHNldHRpbmdzLmF1dG9zY3JvbGxG
b3JEcmFnQW5kRHJvcEVuYWJsZWQoKSkKICAgICAsIG1fcGx1Z2luUmVwbGFjZW1lbnRFbmFibGVk
KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucGx1Z2luUmVwbGFjZW1l
bnRFbmFibGVkKCkpCiAgICAgLCBtX3Nob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KHNl
dHRpbmdzLnNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KCkpCisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICAsIG1fdG91Y2hFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkudG91Y2hFbmFibGVkKCkpCisjZW5kaWYKIHsKIH0KIApAQCAtMTQ3
LDYgKzE1MCw5IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0
dGluZ3MmIHNldHRpbmdzKQogICAgIHNldHRpbmdzLnNldEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJv
cEVuYWJsZWQobV9hdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkKTsKICAgICBzZXR0aW5n
cy5zZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShtX3Nob3VsZENvbnZlcnRQb3Np
dGlvblN0eWxlT25Db3B5KTsKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZChtX3BsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFRvdWNoRW5hYmxlZChtX3RvdWNoRW5hYmxlZCk7Cisj
ZW5kaWYKIH0KIAogLy8gV2UgY2FuJ3QgdXNlIFJlZkNvdW50ZWRTdXBwbGVtZW50IGJlY2F1c2Ug
dGhhdCB3b3VsZCB0cnkgdG8gbWFrZSBJbnRlcm5hbFNldHRpbmdzIFJlZkNvdW50ZWQKQEAgLTQ4
Niw0ICs0OTIsMTMgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTY3JvbGxpbmdUcmVlSW5j
bHVkZXNGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2QKICAgICBzZXR0aW5ncygpLT5z
ZXRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6c2V0VG91Y2hFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuc2V0VG91Y2hFbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5h
YmxlZCk7CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaAppbmRleCA5YzAxNzMzLi5kNDNiY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaApAQCAtODcsNiArODcsOSBAQCBwdWJsaWM6CiAgICAgICAgIGJv
b2wgbV9hdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkOwogICAgICAgICBib29sIG1fcGx1
Z2luUmVwbGFjZW1lbnRFbmFibGVkOwogICAgICAgICBib29sIG1fc2hvdWxkQ29udmVydFBvc2l0
aW9uU3R5bGVPbkNvcHk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICAgICAgYm9vbCBt
X3RvdWNoRW5hYmxlZDsKKyNlbmRpZgogICAgIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
bnRlcm5hbFNldHRpbmdzPiBjcmVhdGUoUGFnZSogcGFnZSkKQEAgLTEzMCw2ICsxMzMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZShib29s
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHls
ZU9uQ29weShib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRTY3JvbGxpbmdUcmVl
SW5jbHVkZXNGcmFtZXMoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0VG91Y2hF
bmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFsU2V0dGluZ3Mo
UGFnZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5k
ZXggOGQyMGNkNi4uNGVhZTA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCkBAIC03MCw0ICs3MCw2IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBzZXRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMoYm9vbGVhbiBlbmFibGVkKTsKIAogICAg
IFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwodW5yZXN0cmlj
dGVkIGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CisKKyAgICB2b2lkIHNldFRvdWNoRW5hYmxl
ZChib29sZWFuIGVuYWJsZWQpOwogfTsK
</data>
<flag name="review"
          id="268385"
          type_id="1"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370502</attachid>
            <date>2019-05-23 06:12:08 -0700</date>
            <delta_ts>2019-05-23 08:17:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-touch-events.diff</filename>
            <type>text/plain</type>
            <size>15341</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MzliMGZkMzRjZi4uMGUzYmRlMGU2ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wNS0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgVG91Y2ggc3VwcG9ydCBpcyByZXBvcnRlZCBldmVuIHdoZW4gdGhlIGRldmljZSBk
b2Vzbid0IGhhdmUgYSB0b3VjaCBzY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzOTY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbnMgZm9yIHRlc3RzIHRoYXQgYXJl
IHBhc3Npbmcgbm93LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMTktMDUtMjEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBmb250LW9wdGljYWwtc2l6aW5nIGFwcGxpZXMgdGhlIHdyb25nIHZhcmlhdGlv
biB2YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAz
MzRlODUxYmIwMS4uNmE0Y2RkMWZiZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCkBAIC04MjAsMTcgKzgyMCw2IEBAIHdlYmtpdC5vcmcvYi8xNDE0MjMgZmFz
dC9jc3MvZm9udC1zaG9ydGhhbmQtZnJvbS1sb25naGFuZHMuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzE0MTQyMyBmYXN0L2Nzcy9mb250LXNob3J0aGFuZC1saW5lLWhlaWdodC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQxNDIzIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtZm9udC5odG1sIFsgRmFpbHVyZSBdCiAKLSNQb2ludGVyIGFuZCBo
b3ZlciBtZWRpYSBxdWVyaWVzLgotd2Via2l0Lm9yZy9iLzE0MTQ2NiBmYXN0L21lZGlhL21xLWFu
eS1ob3Zlci1tYXRjaE1lZGlhLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNDE0NjYg
ZmFzdC9tZWRpYS9tcS1hbnktaG92ZXItc3R5bGluZy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMTQxNDY2IGZhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXItbWF0Y2hNZWRpYS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTQxNDY2IGZhc3QvbWVkaWEvbXEtYW55LXBvaW50ZXIt
c3R5bGluZy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTQxNDY2IGZhc3QvbWVkaWEv
bXEtaG92ZXItbWF0Y2hNZWRpYS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTQxNDY2
IGZhc3QvbWVkaWEvbXEtaG92ZXItc3R5bGluZy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMTQxNDY2IGZhc3QvbWVkaWEvbXEtcG9pbnRlci1tYXRjaE1lZGlhLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8xNDE0NjYgZmFzdC9tZWRpYS9tcS1wb2ludGVyLXN0eWxpbmcuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE0MTQ2NiBmYXN0L21lZGlhL21xLXBvaW50ZXIu
aHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTE2MjU5IGh0dHAvdGVzdHMvY2FjaGUv
d2lsbHNlbmRyZXF1ZXN0LXJldHVybnMtbnVsbC1mb3ItbWVtb3J5LWNhY2hlLWxvYWQuaHRtbCBb
IEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTQxNDY3IGZhc3QvbXVsdGljb2wvcGFnaW5hdGlv
bi9MZWZ0VG9SaWdodC10Yi1oaXR0ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTk1N2E4NmIyMi4uYzFjZjNmMjhmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAx
OS0wNS0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgVG91Y2ggc3VwcG9ydCBpcyByZXBvcnRlZCBldmVuIHdoZW4gdGhlIGRldmljZSBkb2Vz
bid0IGhhdmUgYSB0b3VjaCBzY3JlZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzOTY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzY3JlZW5IYXNUb3VjaERldmljZSgpIGFuZCBzY3JlZW5Jc1Rv
dWNoUHJpbWFyeUlucHV0RGV2aWNlKCkgdG8gUGxhdGZvcm1TY3JlZW4gYW5kIHVzZSBpdCB0byBk
ZWNpZGUgd2hldGhlcgorICAgICAgICB0byBleHBvc2UgdG91Y2ggZXZlbnRzIGZ1bmN0aW9uYWxp
dHkgb3Igbm90LgorCisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
OgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmhvdmVyRXZhbHVhdGUpOiBVc2Ugc2NyZWVuSXNUb3VjaFByaW1hcnlJbnB1dERldmljZSgp
IHdoZW4gdG91Y2ggZXZlbnRzIGFyZSBlbmFibGVkIGF0IGJ1aWxkIHRpbWUuCisgICAgICAgIChX
ZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKTogVXNlIHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkgd2hl
biB0b3VjaCBldmVudHMgYXJlIGVuYWJsZWQgYXQgYnVpbGQgdGltZS4KKyAgICAgICAgKFdlYkNv
cmU6OnBvaW50ZXJFdmFsdWF0ZSk6IFVzZSBzY3JlZW5Jc1RvdWNoUHJpbWFyeUlucHV0RGV2aWNl
KCkgd2hlbiB0b3VjaCBldmVudHMgYXJlIGVuYWJsZWQgYXQgYnVpbGQgdGltZS4KKyAgICAgICAg
KFdlYkNvcmU6OmFueVBvaW50ZXJFdmFsdWF0ZSk6IFVzZSBzY3JlZW5IYXNUb3VjaERldmljZSgp
IHdoZW4gdG91Y2ggZXZlbnRzIGFyZSBlbmFibGVkIGF0IGJ1aWxkIHRpbWUuCisgICAgICAgICog
ZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsOiBNYWtlIHRvdWNoIGV2ZW50IGF0dHJpYnV0ZXMg
ZW5hYmxlZCBhdCBydW50aW1lLgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp0b3VjaEV2
ZW50c0VuYWJsZWQgY29uc3QpOiBSZXR1cm4gd2hldGhlciB0b3VjaCBldmVudHMgYXJlIGVuYWJs
ZWQuCisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRUb3VjaEV2ZW50c0VuYWJsZWQpOiBG
b3JjZSB0b3VjaCBldmVudHMgdG8gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSGFzVG91
Y2hEZXZpY2UpOiBKdXN0IHJldHVybiB0cnVlIHdoZW4gdG91Y2ggZXZlbnRzIGFyZSBlbmFibGVk
IGF0IGJ1aWxkIHRpbWUgZm9yIG5vbi1ndGsgcG9ydHMuCisgICAgICAgIChXZWJDb3JlOjpzY3Jl
ZW5Jc1RvdWNoUHJpbWFyeUlucHV0RGV2aWNlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkhhc1Rv
dWNoRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXRE
ZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6aXNUb3VjaERldmljZSk6CisgICAgICAgIChXZWJD
b3JlOjpkZXZpY2VBZGRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmRldmljZVJlbW92
ZWRDYWxsYmFjayk6CisKIDIwMTktMDUtMjEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgTWVkaWEgY29udHJvbHMgZG9uJ3Qgc2hvdyBpbiBXSzIgdmlkZW8gZnVs
bHNjcmVlbiBzb21ldGltZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAppbmRleCAwYTNmYTgzN2FjNi4uZjViNTMyMmM3YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTI3
Niw2ICsyNzYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1hdGNoaW5nRWxl
bWVudEluRmxhdFRyZWUpIFwKICAgICBtYWNybyhtZWRpYVN0cmVhbVRyYWNrQ29uc3RyYWludHMp
IFwKICAgICBtYWNybyhvcGVuRGF0YWJhc2UpIFwKKyAgICBtYWNybyhvbnRvdWNoY2FuY2VsKSBc
CisgICAgbWFjcm8ob250b3VjaGVuZCkgXAorICAgIG1hY3JvKG9udG91Y2htb3ZlKSBcCisgICAg
bWFjcm8ob250b3VjaHN0YXJ0KSBcCisgICAgbWFjcm8ob250b3VjaGZvcmNlY2hhbmdlKSBcCiAg
ICAgbWFjcm8ob252cmRpc3BsYXlhY3RpdmF0ZSkgXAogICAgIG1hY3JvKG9udnJkaXNwbGF5Ymx1
cikgXAogICAgIG1hY3JvKG9udnJkaXNwbGF5Y29ubmVjdCkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDUyNzA1MmIzZDJiLi42ZWUwMGRlN2YyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNjkzLDcg
KzY5Myw3IEBAIHN0YXRpYyBib29sIGhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25z
dCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhCiB7CiAgICAgaWYgKCFpczxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpKSB7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gIXNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXRE
ZXZpY2UoKTsKICNlbHNlCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCkBAIC03MDEsMTUg
KzcwMSwyOCBAQCBzdGF0aWMgYm9vbCBob3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29u
c3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYQogCiAgICAgYXV0byBrZXl3b3JkID0g
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVOb25lOwotI2Vs
c2UKLSAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOworICAgIGlmIChzY3JlZW5J
c1RvdWNoUHJpbWFyeUlucHV0RGV2aWNlKCkpCisgICAgICAgIHJldHVybiBrZXl3b3JkID09IENT
U1ZhbHVlTm9uZTsKICNlbmRpZgorICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlSG92ZXI7
CiB9CiAKLXN0YXRpYyBib29sIGFueUhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25z
dCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiBjc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhLCBG
cmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBwcmVmaXgpCitzdGF0aWMgYm9vbCBhbnlI
b3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQogewotICAgIHJldHVybiBob3ZlckV2
YWx1YXRlKHZhbHVlLCBjc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhLCBmcmFtZSwgcHJlZml4KTsK
KyAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKKyNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7CisjZWxz
ZQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIH0KKworICAgIGF1dG8ga2V5d29y
ZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKKyNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQorICAg
ICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZU5vbmU7CisjZW5kaWYKKyAgICByZXR1cm4g
a2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOwogfQogCiBzdGF0aWMgYm9vbCBwb2ludGVyRXZhbHVh
dGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJh
bWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCkBAIC03MTksMTUgKzczMiwyMyBAQCBzdGF0aWMgYm9v
bCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhJiwgRgogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAg
cmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVDb2Fyc2U7Ci0jZWxzZQotICAgIHJldHVybiBrZXl3
b3JkID09IENTU1ZhbHVlRmluZTsKKyAgICBpZiAoc2NyZWVuSXNUb3VjaFByaW1hcnlJbnB1dERl
dmljZSgpKQorICAgICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUNvYXJzZTsKICNlbmRp
ZgorICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlRmluZTsKIH0KIAotc3RhdGljIGJvb2wg
YW55UG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSYgY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSwgRnJhbWUmIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXggcHJlZml4KQorc3RhdGljIGJvb2wgYW55UG9pbnRlckV2YWx1YXRlKENT
U1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwg
TWVkaWFGZWF0dXJlUHJlZml4KQogewotICAgIHJldHVybiBwb2ludGVyRXZhbHVhdGUodmFsdWUs
IGNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEsIGZyYW1lLCBwcmVmaXgpOworICAgIGlmICghaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBh
dXRvIGtleXdvcmQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlE
KCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZp
Y2UoKSkKKyAgICAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVDb2Fyc2U7CisjZW5kaWYK
KyAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUZpbmU7CiB9CiAKIHN0YXRpYyBib29sIHBy
ZWZlcnNEYXJrSW50ZXJmYWNlRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwKaW5kZXggNTRhN2YyOGNi
YjEuLjc3MGFhOWMzYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2xvYmFsRXZl
bnRIYW5kbGVycy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dsb2JhbEV2ZW50SGFuZGxl
cnMuaWRsCkBAIC0xMjMsMTEgKzEyMywxMSBAQAogCiAgICAgW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25zZWFyY2g7CiAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb253aGVlbDsKLSAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9
VE9VQ0hfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udG91Y2hjYW5jZWw7Ci0gICAg
W05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnRvdWNoZW5kOwotICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1UT1VD
SF9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb250b3VjaG1vdmU7Ci0gICAgW05vdEVu
dW1lcmFibGUsIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnRvdWNoc3RhcnQ7Ci0gICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPVRPVUNIX0VW
RU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnRvdWNoZm9yY2VjaGFuZ2U7CisgICAgW05v
dEVudW1lcmFibGUsIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgRW5hYmxlZEF0UnVudGltZT1U
b3VjaEV2ZW50c10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnRvdWNoY2FuY2VsOworICAgIFtO
b3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9
VG91Y2hFdmVudHNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb250b3VjaGVuZDsKKyAgICBbTm90
RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLCBFbmFibGVkQXRSdW50aW1lPVRv
dWNoRXZlbnRzXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udG91Y2htb3ZlOworICAgIFtOb3RF
bnVtZXJhYmxlLCBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91
Y2hFdmVudHNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb250b3VjaHN0YXJ0OworICAgIFtOb3RF
bnVtZXJhYmxlLCBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIEVuYWJsZWRBdFJ1bnRpbWU9VG91
Y2hFdmVudHNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb250b3VjaGZvcmNlY2hhbmdlOwogICAg
IFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1NT1VTRV9GT1JDRV9FVkVOVFNdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb253ZWJraXRtb3VzZWZvcmNlY2hhbmdlZDsKICAgICBbTm90RW51bWVy
YWJsZSwgQ29uZGl0aW9uYWw9TU9VU0VfRk9SQ0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9ud2Via2l0bW91c2Vmb3JjZWRvd247CiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlv
bmFsPU1PVVNFX0ZPUkNFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdG1v
dXNlZm9yY2V3aWxsYmVnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAppbmRleCAxNTlhOTJhZWJkZS4uZTA5YjIwZWY1NGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKIAogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAK
QEAgLTYzLDQgKzY0LDExIEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3BlY3RyZUdh
ZGdldHNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gSlNDOjpPcHRpb25zOjplbmFibGVTcGVj
dHJlR2FkZ2V0cygpOwogfQogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK2Jvb2wgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6dG91Y2hFdmVudHNFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV90b3VjaEV2ZW50c0VuYWJsZWQudmFsdWVPcihzY3JlZW5IYXNUb3VjaERldmljZSgpKTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDNiNDk4NTdmMjg5Li5hNDBjNzYyNDky
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAg
LTM0Nyw2ICszNDcsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBi
b29sIG1vdXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21vdXNl
RXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlRXZlbnRzU2ltdWxh
dGlvbkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9tb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFi
bGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB0b3VjaEV2ZW50c0VuYWJsZWQoKSBjb25zdDsK
KyAgICB2b2lkIHNldFRvdWNoRXZlbnRzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX3RvdWNo
RXZlbnRzRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogI2VuZGlmCiAgICAgCiAgICAgYm9vbCByZWZl
cnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyUG9s
aWN5QXR0cmlidXRlRW5hYmxlZDsgfQpAQCAtNTMxLDYgKzUzMyw3IEBAIHByaXZhdGU6CiAKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbV9tb3VzZUV2ZW50c1NpbXVsYXRpb25F
bmFibGVkIHsgZmFsc2UgfTsKKyAgICBPcHRpb25hbDxib29sPiBtX3RvdWNoRXZlbnRzRW5hYmxl
ZDsKICNlbmRpZgogCiAgICAgYm9vbCBtX2lzSVRQRGF0YWJhc2VFbmFibGVkIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCmluZGV4IGM2OTkwZjczNDk5
Li5jNTUyN2QzYzA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5o
CkBAIC0xMjIsNCArMTIyLDE0IEBAIFdFQkNPUkVfRVhQT1JUIGZsb2F0IHNjcmVlblNjYWxlRmFj
dG9yKFVJU2NyZWVuICogPSBudWxscHRyKTsKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorI2lmIFBMQVRGT1JNKEdUSykKK2Jvb2wgc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsK
K2Jvb2wgc2NyZWVuSXNUb3VjaFByaW1hcnlJbnB1dERldmljZSgpOworI2Vsc2UKK2Jvb2wgc2Ny
ZWVuSGFzVG91Y2hEZXZpY2UoKSB7IHJldHVybiB0cnVlOyB9Citib29sIHNjcmVlbklzVG91Y2hQ
cmltYXJ5SW5wdXREZXZpY2UoKSB7IHJldHVybiB0cnVlOyB9CisjZW5kaWYKKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCAzOTVkZmU1NDZjNC4uMTEyOWI0YmI5NDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNw
cApAQCAtNDEsNyArNDEsOSBAQAogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPGd0ay9ndGsu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE5NSw0ICsxOTcsMTEyIEBAIGJv
b2wgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKFdpZGdldCopCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05f
MgorYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2UoKQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKyNlbHNlIC8vIEdUS19BUElfVkVSU0lPTl8yCisjaWYgIUdUS19DSEVDS19WRVJT
SU9OKDMsIDIwLCAwKQorc3RhdGljIHZvaWQgZGV2aWNlQWRkZWRDYWxsYmFjayhHZGtEZXZpY2VN
YW5hZ2VyKiwgR2RrRGV2aWNlKik7CitzdGF0aWMgdm9pZCBkZXZpY2VSZW1vdmVkQ2FsbGJhY2so
R2RrRGV2aWNlTWFuYWdlciosIEdka0RldmljZSopOworCitzdGF0aWMgSGFzaFNldDxHZGtEZXZp
Y2UqPiYgdG91Y2hEZXZpY2VzKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEhh
c2hTZXQ8R2RrRGV2aWNlKj4+IHRvdWNoRGV2aWNlU2V0OworICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlS2V5OworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKKyAgICAgICAg
dG91Y2hEZXZpY2VTZXQuY29uc3RydWN0KCk7CisKKyAgICAgICAgYXV0byogZGlzcGxheSA9IGdk
a19kaXNwbGF5X2dldF9kZWZhdWx0KCk7CisgICAgICAgIGlmICghZGlzcGxheSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBhdXRvKiBkZXZpY2VNYW5hZ2VyID0gZ2RrX2Rpc3BsYXlf
Z2V0X2RldmljZV9tYW5hZ2VyKGRpc3BsYXkpOworICAgICAgICBpZiAoIWRldmljZU1hbmFnZXIp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgR1VuaXF1ZVB0cjxHTGlzdD4gZGV2aWNl
cyhnZGtfZGV2aWNlX21hbmFnZXJfbGlzdF9kZXZpY2VzKGRldmljZU1hbmFnZXIsIEdES19ERVZJ
Q0VfVFlQRV9TTEFWRSkpOworICAgICAgICBmb3IgKEdMaXN0KiBpdCA9IGRldmljZXMuZ2V0KCk7
IGl0OyBpdCA9IGdfbGlzdF9uZXh0KGl0KSkgeworICAgICAgICAgICAgYXV0byogZGV2aWNlID0g
R0RLX0RFVklDRShpdC0+ZGF0YSk7CisgICAgICAgICAgICBpZiAoZ2RrX2RldmljZV9nZXRfc291
cmNlKGRldmljZSkgPT0gR0RLX1NPVVJDRV9UT1VDSFNDUkVFTikKKyAgICAgICAgICAgICAgICB0
b3VjaERldmljZVNldC0+YWRkKGRldmljZSk7CisgICAgICAgIH0KKworICAgICAgICBnX3NpZ25h
bF9jb25uZWN0KGRldmljZU1hbmFnZXIsICJkZXZpY2UtYWRkZWQiLCBHX0NBTExCQUNLKGRldmlj
ZUFkZGVkQ2FsbGJhY2spLCBudWxscHRyKTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChkZXZp
Y2VNYW5hZ2VyLCAiZGV2aWNlLXJlbW92ZWQiLCBHX0NBTExCQUNLKGRldmljZVJlbW92ZWRDYWxs
YmFjayksIG51bGxwdHIpOworICAgIH0pOworCisgICAgcmV0dXJuIHRvdWNoRGV2aWNlU2V0Owor
fQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNUb3VjaERldmljZShHZGtEZXZpY2UqIGRldmljZSkK
K3sKKyAgICByZXR1cm4gZ2RrX2RldmljZV9nZXRfZGV2aWNlX3R5cGUoZGV2aWNlKSA9PSBHREtf
REVWSUNFX1RZUEVfU0xBVkUgJiYgZ2RrX2RldmljZV9nZXRfc291cmNlKGRldmljZSkgPT0gR0RL
X1NPVVJDRV9UT1VDSFNDUkVFTjsKK30KKworc3RhdGljIHZvaWQgZGV2aWNlQWRkZWRDYWxsYmFj
ayhHZGtEZXZpY2VNYW5hZ2VyKiwgR2RrRGV2aWNlKiBkZXZpY2UpCit7CisgICAgaWYgKCFpc1Rv
dWNoRGV2aWNlKGRldmljZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghdG91Y2hE
ZXZpY2VzKCkuY29udGFpbnMoZGV2aWNlKSk7CisgICAgdG91Y2hEZXZpY2VzKCkuYWRkKGRldmlj
ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRldmljZVJlbW92ZWRDYWxsYmFjayhHZGtEZXZpY2VNYW5h
Z2VyKiwgR2RrRGV2aWNlKiBkZXZpY2UpCit7CisgICAgaWYgKCFpc1RvdWNoRGV2aWNlKGRldmlj
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCh0b3VjaERldmljZXMoKS5jb250YWlu
cyhkZXZpY2UpKTsKKyAgICB0b3VjaERldmljZXMoKS5yZW1vdmUoZGV2aWNlKTsKK30KKyNlbmRp
ZiAvLyAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMjAsIDApCisKK2Jvb2wgc2NyZWVuSGFzVG91Y2hE
ZXZpY2UoKQoreworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQorICAgIGF1dG8qIGRp
c3BsYXkgPSBnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpOworICAgIGlmICghZGlzcGxheSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvKiBzZWF0ID0gZ2RrX2Rpc3BsYXlfZ2V0X2Rl
ZmF1bHRfc2VhdChkaXNwbGF5KTsKKyAgICByZXR1cm4gc2VhdCA/IGdka19zZWF0X2dldF9jYXBh
YmlsaXRpZXMoc2VhdCkgJiBHREtfU0VBVF9DQVBBQklMSVRZX1RPVUNIIDogdHJ1ZTsKKyNlbHNl
CisgICAgcmV0dXJuICF0b3VjaERldmljZXMoKS5pc0VtcHR5KCk7CisjZW5kaWYKK30KKworYm9v
bCBzY3JlZW5Jc1RvdWNoUHJpbWFyeUlucHV0RGV2aWNlKCkKK3sKKyAgICBhdXRvKiBkaXNwbGF5
ID0gZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKTsKKyAgICBpZiAoIWRpc3BsYXkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjAsIDApCisgICAgYXV0
byogc2VhdCA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0X3NlYXQoZGlzcGxheSk7CisgICAgaWYg
KCFzZWF0KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8qIGRldmljZSA9IGdka19z
ZWF0X2dldF9wb2ludGVyKHNlYXQpOworI2Vsc2UKKyAgICBhdXRvKiBkZXZpY2VNYW5hZ2VyID0g
Z2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2VyKGRpc3BsYXkpOworICAgIGlmICghZGV2aWNl
TWFuYWdlcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvKiBkZXZpY2UgPSBnZGtf
ZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGRldmljZU1hbmFnZXIpOworI2VuZGlm
CisKKyAgICByZXR1cm4gZGV2aWNlID8gZ2RrX2RldmljZV9nZXRfc291cmNlKGRldmljZSkgPT0g
R0RLX1NPVVJDRV9UT1VDSFNDUkVFTiA6IHRydWU7Cit9CisjZW5kaWYgLy8gIUdUS19BUElfVkVS
U0lPTl8yCisjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQo=
</data>
<flag name="review"
          id="386447"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>