<?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>76410</bug_id>
          
          <creation_ts>2012-01-16 16:49:51 -0800</creation_ts>
          <short_desc>[Chromium] Add WebKit API for Pointer Lock</short_desc>
          <delta_ts>2012-01-24 03:29:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>75762</blocked>
    
    <blocked>76411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vincent Scheib">scheib</reporter>
          <assigned_to name="Vincent Scheib">scheib</assigned_to>
          <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536803</commentid>
    <comment_count>0</comment_count>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-01-16 16:49:51 -0800</bug_when>
    <thetext>[Chromium] Add WebKit API for Pointer Lock</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536805</commentid>
    <comment_count>1</comment_count>
      <attachid>122693</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-01-16 16:54:31 -0800</bug_when>
    <thetext>Created attachment 122693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536808</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-16 16:57:25 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537870</commentid>
    <comment_count>3</comment_count>
      <attachid>122930</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-01-18 07:40:19 -0800</bug_when>
    <thetext>Created attachment 122930
Same Patch; Retry Mac EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538465</commentid>
    <comment_count>4</comment_count>
      <attachid>122693</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-18 21:42:01 -0800</bug_when>
    <thetext>Comment on attachment 122693
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:175
&gt; +    virtual void didCompletePointerLock() { }

Can you describe the processing model here?  WebKit calls requestPointerLock and then expects to receive one of these calls in reply, assuming requestPointerLock returned true?  what happens if WebKit calls requestPointerUnlock?

please write down some comments that document the call sequences.

do we need to distinguish between pointer lock being lost as a result of requestPointerUnlock
versus some other UA action?  can we follow the fullscreen pattern instead?  there we can
request entering / exiting fullscreen, and there are corresponding events telling us whether
we are in fullscreen or out of fullscreen.  in other words, there is only one notification
about exiting fullscreen.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1335
&gt; +    if (isPointerLocked() &amp;&amp; WebInputEvent::isMouseEventType(inputEvent.type)) {

why doesn&apos;t this happen at the EventHandler level?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1336
&gt; +      pointerLockMouseEvent(inputEvent);

indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538537</commentid>
    <comment_count>5</comment_count>
      <attachid>122693</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-01-19 00:34:26 -0800</bug_when>
    <thetext>Comment on attachment 122693
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebWidget.h:175
&gt;&gt; +    virtual void didCompletePointerLock() { }
&gt; 
&gt; Can you describe the processing model here?  WebKit calls requestPointerLock and then expects to receive one of these calls in reply, assuming requestPointerLock returned true?  what happens if WebKit calls requestPointerUnlock?
&gt; 
&gt; please write down some comments that document the call sequences.
&gt; 
&gt; do we need to distinguish between pointer lock being lost as a result of requestPointerUnlock
&gt; versus some other UA action?  can we follow the fullscreen pattern instead?  there we can
&gt; request entering / exiting fullscreen, and there are corresponding events telling us whether
&gt; we are in fullscreen or out of fullscreen.  in other words, there is only one notification
&gt; about exiting fullscreen.

I can comment the call pattern, but let&apos;s make sure we&apos;re happy with it:

The mouse lock spec differs from fullscreen a bit, which is why there are different call patterns here. Spec as it stands offers a 1 to 1 response of a lock request and the result of it being carried out or not. The response is delivered by callback to the specific functions provided when the lock was requested. That is different than the event that lock state is lost, which bubbles for anyone to see.

What happens if multiple elements attempt a fullscreen transition rapidly before the client can change state? With pointer lock, one and only one will receive a success response, and the others will receive failures. Mouse lock will transition to being enabled, and dispatching a lost event because some of the requests failed would be wrong. Dispatching a success event would be confusing, though I suppose the API could expose what the current target is and everyone could diligently check to see if mouse lock enabled for them.

So, expected call patterns are
- Call pointer.lock
- Receive a callback to one and only one of the optional success or failure callbacks you provided
- If lock is lost after success, receive a pointerlocklost event indicating it is lost
- Or, if lock is no longer desired call pointer.unlock, receive an asynch pointerlocklost event indicating it is lost

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1335
&gt;&gt; +    if (isPointerLocked() &amp;&amp; WebInputEvent::isMouseEventType(inputEvent.type)) {
&gt; 
&gt; why doesn&apos;t this happen at the EventHandler level?

To avoid the logic complexity that appears just below here and in the disparate calls made by different event types. Pointer lock intends to capture mouse input data as raw as it can, we don&apos;t want dragging, capture, DOM target selection, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540741</commentid>
    <comment_count>6</comment_count>
      <attachid>122693</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-23 12:23:55 -0800</bug_when>
    <thetext>Comment on attachment 122693
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:176
&gt; +    virtual void didNotCompletePointerLock() { }

maybe &quot;Complete&quot; -&gt; &quot;Acquire&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540837</commentid>
    <comment_count>7</comment_count>
      <attachid>123620</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-01-23 14:28:28 -0800</bug_when>
    <thetext>Created attachment 123620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541141</commentid>
    <comment_count>8</comment_count>
      <attachid>123700</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-01-23 22:59:29 -0800</bug_when>
    <thetext>Created attachment 123700
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541218</commentid>
    <comment_count>9</comment_count>
      <attachid>123700</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 03:29:18 -0800</bug_when>
    <thetext>Comment on attachment 123700
Patch for landing

Clearing flags on attachment: 123700

Committed r105720: &lt;http://trac.webkit.org/changeset/105720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541219</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 03:29:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122693</attachid>
            <date>2012-01-16 16:54:31 -0800</date>
            <delta_ts>2012-01-23 14:28:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76410-20120116165430.patch</filename>
            <type>text/plain</type>
            <size>8562</size>
            <attacher name="Vincent Scheib">scheib</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDkwNTg1NjliNDA4ODRlNGFjZTFlOGIwMTJlNjBkMjY2MWI0ZTJhNjAuLjk2NmE0ZTY4NzY4MzVm
NGM3ZTliZTZjNTg1NWU3MGY4NTA2NGZiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTItMDEtMTYgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBQb2ludGVy
IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnJl
YWtpbmcgdXAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzYyCisg
ICAgICAgIGludG8gYSBzZXJpZXMgb2YgcGF0Y2hlcywgdGhpcyBzdHVicyBvdXQgdGhlIEFQSS4K
KworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2lk
Z2V0OjpkaWRDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjpkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjpkaWRMb3NlUG9pbnRlckxvY2spOgorICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXRDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2Nr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50Ojppc1BvaW50ZXJMb2NrZWQpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjppc1BvaW50ZXJMb2NrZWQpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZGlkQ29tcGxldGVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmRpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXF1ZXN0UG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvaW50ZXJM
b2NrTW91c2VFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEt
MTMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEhXbmREQyBp
cyBhIGJldHRlciBuYW1lIHRoYW4gSHduZERDLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaAppbmRleCAzZjU5NGYzNjk1NTIyZjY2YmE1OWNhM2VlNTk0NDczNWZkZDRl
Y2E2Li5kOTEwZTJjNDNmNGE3MWYxYzY3MTA2MjQ1MDhlYTk0MzU3NDgwYjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDQsNiArNDQsNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklucHV0RXZlbnQ7CitjbGFzcyBXZWJNb3VzZUV2
ZW50OwogY2xhc3MgV2ViU3RyaW5nOwogc3RydWN0IFdlYlBvaW50OwogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKQEAgLTE3MCw2ICsxNzEsMTMgQEAgcHVibGljOgogICAg
IC8vIHRvIHJlbmRlciBpdHMgY29udGVudHMuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBB
c3luY2hyb25vdXMgcmVzdWx0IHRvIGEgcGVuZGluZyBwb2ludGVyIGxvY2sgcmVxdWVzdC4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVQb2ludGVyTG9jaygpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKCkgeyB9CisKKyAgICAvLyBQb2ludGVyIGxv
Y2sgd2FzIGhlbGQsIGJ1dCBoYXMgYmVlbiBsb3N0LgorICAgIHZpcnR1YWwgdm9pZCBkaWRMb3Nl
UG9pbnRlckxvY2soKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJXaWRnZXQoKSB7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCmlu
ZGV4IGU1YjQwNWRlYTExMjYwY2FhZjcyOTU3N2U1NTQzNDIwNjEwY2ZjODYuLjM5OTA0OWNjNGU2
YWY5MTJhZWQ1ZGYxYjAyNWIyYmJlMGQwMTY2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCkBAIC0xMjYsNiArMTI2LDEyIEBAIHB1Ymxp
YzoKICAgICAvLyByZXNldCB0aGUgaW5wdXQgbWV0aG9kIGJ5IGNhbmNlbGxpbmcgYW55IG9uZ29p
bmcgY29tcG9zaXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHJlc2V0SW5wdXRNZXRob2QoKSB7IH0K
IAorICAgIC8vIFJlcXVlc3RzIHRvIGxvY2svdW5sb2NrIHRoZSBtb3VzZSBjdXJzb3IKKyAgICB2
aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSB7IH0KKyAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgdGhlIE1vdXNlIExvY2sgaXMgYWN0aXZlIGFuZCB0aGUgcG9pbnRlciBpcyBsb2NrZWQu
CisgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisK
IHByb3RlY3RlZDoKICAgICB+V2ViV2lkZ2V0Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA1ZjI4NTFiYjU4
NzdjOWZmNzQyNmQ3YThjMWU1ZDEzODY0ZmEwMmNmLi41NjJhZGUyYjU3ZmU1MTcwYWIwMDg2YmUx
MTRhZjI4MWYyYmQzY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcApAQCAtMTAxOCw0ICsxMDE4LDIxIEBAIHZvaWQgQ2hyb21lQ2xpZW50
SW1wbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBudW1iZXJPZldoZWVs
SGFuZGxlCiAgICAgbV93ZWJWaWV3LT5udW1iZXJPZldoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
bnVtYmVyT2ZXaGVlbEhhbmRsZXJzKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiti
b29sIENocm9tZUNsaWVudEltcGw6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgcmV0dXJu
IG1fd2ViVmlldy0+cmVxdWVzdFBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50
SW1wbDo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIHJldHVybiBtX3dlYlZpZXctPnJl
cXVlc3RQb2ludGVyVW5sb2NrKCk7Cit9CisKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6aXNQb2lu
dGVyTG9ja2VkKCkKK3sKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5pc1BvaW50ZXJMb2NrZWQoKTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCAyMTEzZWMxYWY0ZjgxZDdkMTliZWNh
NjUxODczMjMyMTc3YWM0N2RkLi44ZmQyNDg4ZDllZTY2MTBmZTEzODU4YjhlYzllNTU4MGM3NTQw
NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CkBAIC0yMDUsNiArMjA1LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpOwogCisj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJM
b2NrKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisgICAgdmly
dHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51
SW5mbyopOwogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBhMTQ3NDgzNTMxOTdi
NzI3OTM5NzIwNGZhNDgwZGJhMzM0MDU5N2Q3Li4zNzMxZTRiZjkwZjc5MDE1ZDEyOTAzNjViYTUw
YmVjNDg0ZTYyMWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCkBAIC0xMzMxLDYgKzEzMzEsMTMgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlSW5wdXRF
dmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2ZW50KQogCiAgICAgbV9jdXJyZW50SW5w
dXRFdmVudCA9ICZpbnB1dEV2ZW50OwogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBp
ZiAoaXNQb2ludGVyTG9ja2VkKCkgJiYgV2ViSW5wdXRFdmVudDo6aXNNb3VzZUV2ZW50VHlwZShp
bnB1dEV2ZW50LnR5cGUpKSB7CisgICAgICBwb2ludGVyTG9ja01vdXNlRXZlbnQoaW5wdXRFdmVu
dCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX21vdXNl
Q2FwdHVyZU5vZGUgJiYgV2ViSW5wdXRFdmVudDo6aXNNb3VzZUV2ZW50VHlwZShpbnB1dEV2ZW50
LnR5cGUpKSB7CiAgICAgICAgIC8vIFNhdmUgbV9tb3VzZUNhcHR1cmVOb2RlIHNpbmNlIG1vdXNl
Q2FwdHVyZUxvc3QoKSB3aWxsIGNsZWFyIGl0LgogICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9
IG1fbW91c2VDYXB0dXJlTm9kZTsKQEAgLTE3NDIsNiArMTc0OSwyMSBAQCBib29sIFdlYlZpZXdJ
bXBsOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdAogI2VuZGlmCiB9CiAK
K3ZvaWQgV2ViVmlld0ltcGw6OmRpZENvbXBsZXRlUG9pbnRlckxvY2soKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgd2hlbiBQb2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRpZE5vdENvbXBsZXRlUG9pbnRlckxvY2soKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgd2hlbiBQb2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRpZExvc2VQb2ludGVyTG9jaygpCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCB3aGVuIFBvaW50ZXJMb2NrQ29udHJvbGxlciBsYW5kcy4KK30KKwogLy8gV2ViVmll
dyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBXZWJTZXR0aW5ncyogV2ViVmlld0ltcGw6OnNldHRpbmdzKCkKQEAg
LTMxNzcsNCArMzE5OSwyNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNldEdlc3R1cmVSZWNvZ25p
emVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK2Jvb2wgV2ViVmll
d0ltcGw6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1f
Y2xpZW50LT5yZXF1ZXN0UG9pbnRlckxvY2soKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVx
dWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGll
bnQtPnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmlzUG9p
bnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc1BvaW50
ZXJMb2NrZWQoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cG9pbnRlckxvY2tNb3VzZUV2ZW50
KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
d2hlbiBQb2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCA2ZWExOTZhNzViYmMzOTlhNDI3MzUzMzFkMWQwZWU5ZWVhMTNiOTE2Li40NjA5ZDM4MDdjNDYy
ZGU4MzUzMDk5OTZjYzQ3MGY5ZjdhOTdhM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKQEAgLTEyOSw2ICsxMjksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGNhcmV0T3JTZWxlY3Rpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxlbmd0
aCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVQb2ludGVyTG9jaygpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgog
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CkBA
IC00NjgsNiArNDcxLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxi
YXIoKTsKICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCk7CiAKKyAgICAvLyBQb2ludGVy
IExvY2sgY2FsbHMgYWxsb3cgYSBwYWdlIHRvIGNhcHR1cmUgYWxsIG1vdXNlIGV2ZW50cyBhbmQK
KyAgICAvLyBkaXNhYmxlIHRoZSBzeXN0ZW0gY3Vyc29yLgorI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCisgICAgdmlydHVhbCBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOworICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJM
b2NrZWQoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGJvb2wgY29tcHV0ZVBhZ2VTY2FsZUZh
Y3RvckxpbWl0cygpOwogICAgIGZsb2F0IGNsYW1wUGFnZVNjYWxlRmFjdG9yVG9MaW1pdHMoZmxv
YXQgc2NhbGUpOwpAQCAtNTIxLDYgKzUzMiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRl
TGF5ZXJUcmVlVmlld3BvcnQoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyAgICB2b2lkIHBvaW50ZXJMb2NrTW91c2VFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7Cisj
ZW5kaWYKKwogICAgIFdlYlZpZXdDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYkF1dG9maWxsQ2xp
ZW50KiBtX2F1dG9maWxsQ2xpZW50OwogICAgIFdlYlBlcm1pc3Npb25DbGllbnQqIG1fcGVybWlz
c2lvbkNsaWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122930</attachid>
            <date>2012-01-18 07:40:19 -0800</date>
            <delta_ts>2012-01-23 14:28:25 -0800</delta_ts>
            <desc>Same Patch; Retry Mac EWS</desc>
            <filename>bug-76410-20120116165430.patch</filename>
            <type>text/plain</type>
            <size>8562</size>
            <attacher name="Vincent Scheib">scheib</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDkwNTg1NjliNDA4ODRlNGFjZTFlOGIwMTJlNjBkMjY2MWI0ZTJhNjAuLjk2NmE0ZTY4NzY4MzVm
NGM3ZTliZTZjNTg1NWU3MGY4NTA2NGZiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTItMDEtMTYgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBQb2ludGVy
IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnJl
YWtpbmcgdXAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzYyCisg
ICAgICAgIGludG8gYSBzZXJpZXMgb2YgcGF0Y2hlcywgdGhpcyBzdHVicyBvdXQgdGhlIEFQSS4K
KworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2lk
Z2V0OjpkaWRDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjpkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjpkaWRMb3NlUG9pbnRlckxvY2spOgorICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXRDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2Nr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50Ojppc1BvaW50ZXJMb2NrZWQpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjppc1BvaW50ZXJMb2NrZWQpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZGlkQ29tcGxldGVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmRpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXF1ZXN0UG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvaW50ZXJM
b2NrTW91c2VFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEt
MTMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEhXbmREQyBp
cyBhIGJldHRlciBuYW1lIHRoYW4gSHduZERDLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaAppbmRleCAzZjU5NGYzNjk1NTIyZjY2YmE1OWNhM2VlNTk0NDczNWZkZDRl
Y2E2Li5kOTEwZTJjNDNmNGE3MWYxYzY3MTA2MjQ1MDhlYTk0MzU3NDgwYjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDQsNiArNDQsNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklucHV0RXZlbnQ7CitjbGFzcyBXZWJNb3VzZUV2
ZW50OwogY2xhc3MgV2ViU3RyaW5nOwogc3RydWN0IFdlYlBvaW50OwogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKQEAgLTE3MCw2ICsxNzEsMTMgQEAgcHVibGljOgogICAg
IC8vIHRvIHJlbmRlciBpdHMgY29udGVudHMuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBB
c3luY2hyb25vdXMgcmVzdWx0IHRvIGEgcGVuZGluZyBwb2ludGVyIGxvY2sgcmVxdWVzdC4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVQb2ludGVyTG9jaygpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKCkgeyB9CisKKyAgICAvLyBQb2ludGVyIGxv
Y2sgd2FzIGhlbGQsIGJ1dCBoYXMgYmVlbiBsb3N0LgorICAgIHZpcnR1YWwgdm9pZCBkaWRMb3Nl
UG9pbnRlckxvY2soKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJXaWRnZXQoKSB7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCmlu
ZGV4IGU1YjQwNWRlYTExMjYwY2FhZjcyOTU3N2U1NTQzNDIwNjEwY2ZjODYuLjM5OTA0OWNjNGU2
YWY5MTJhZWQ1ZGYxYjAyNWIyYmJlMGQwMTY2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCkBAIC0xMjYsNiArMTI2LDEyIEBAIHB1Ymxp
YzoKICAgICAvLyByZXNldCB0aGUgaW5wdXQgbWV0aG9kIGJ5IGNhbmNlbGxpbmcgYW55IG9uZ29p
bmcgY29tcG9zaXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHJlc2V0SW5wdXRNZXRob2QoKSB7IH0K
IAorICAgIC8vIFJlcXVlc3RzIHRvIGxvY2svdW5sb2NrIHRoZSBtb3VzZSBjdXJzb3IKKyAgICB2
aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSB7IH0KKyAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgdGhlIE1vdXNlIExvY2sgaXMgYWN0aXZlIGFuZCB0aGUgcG9pbnRlciBpcyBsb2NrZWQu
CisgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisK
IHByb3RlY3RlZDoKICAgICB+V2ViV2lkZ2V0Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA1ZjI4NTFiYjU4
NzdjOWZmNzQyNmQ3YThjMWU1ZDEzODY0ZmEwMmNmLi41NjJhZGUyYjU3ZmU1MTcwYWIwMDg2YmUx
MTRhZjI4MWYyYmQzY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcApAQCAtMTAxOCw0ICsxMDE4LDIxIEBAIHZvaWQgQ2hyb21lQ2xpZW50
SW1wbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBudW1iZXJPZldoZWVs
SGFuZGxlCiAgICAgbV93ZWJWaWV3LT5udW1iZXJPZldoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
bnVtYmVyT2ZXaGVlbEhhbmRsZXJzKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiti
b29sIENocm9tZUNsaWVudEltcGw6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgcmV0dXJu
IG1fd2ViVmlldy0+cmVxdWVzdFBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50
SW1wbDo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIHJldHVybiBtX3dlYlZpZXctPnJl
cXVlc3RQb2ludGVyVW5sb2NrKCk7Cit9CisKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6aXNQb2lu
dGVyTG9ja2VkKCkKK3sKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5pc1BvaW50ZXJMb2NrZWQoKTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCAyMTEzZWMxYWY0ZjgxZDdkMTliZWNh
NjUxODczMjMyMTc3YWM0N2RkLi44ZmQyNDg4ZDllZTY2MTBmZTEzODU4YjhlYzllNTU4MGM3NTQw
NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CkBAIC0yMDUsNiArMjA1LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpOwogCisj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJM
b2NrKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisgICAgdmly
dHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51
SW5mbyopOwogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBhMTQ3NDgzNTMxOTdi
NzI3OTM5NzIwNGZhNDgwZGJhMzM0MDU5N2Q3Li4zNzMxZTRiZjkwZjc5MDE1ZDEyOTAzNjViYTUw
YmVjNDg0ZTYyMWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCkBAIC0xMzMxLDYgKzEzMzEsMTMgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlSW5wdXRF
dmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2ZW50KQogCiAgICAgbV9jdXJyZW50SW5w
dXRFdmVudCA9ICZpbnB1dEV2ZW50OwogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBp
ZiAoaXNQb2ludGVyTG9ja2VkKCkgJiYgV2ViSW5wdXRFdmVudDo6aXNNb3VzZUV2ZW50VHlwZShp
bnB1dEV2ZW50LnR5cGUpKSB7CisgICAgICBwb2ludGVyTG9ja01vdXNlRXZlbnQoaW5wdXRFdmVu
dCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX21vdXNl
Q2FwdHVyZU5vZGUgJiYgV2ViSW5wdXRFdmVudDo6aXNNb3VzZUV2ZW50VHlwZShpbnB1dEV2ZW50
LnR5cGUpKSB7CiAgICAgICAgIC8vIFNhdmUgbV9tb3VzZUNhcHR1cmVOb2RlIHNpbmNlIG1vdXNl
Q2FwdHVyZUxvc3QoKSB3aWxsIGNsZWFyIGl0LgogICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9
IG1fbW91c2VDYXB0dXJlTm9kZTsKQEAgLTE3NDIsNiArMTc0OSwyMSBAQCBib29sIFdlYlZpZXdJ
bXBsOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdAogI2VuZGlmCiB9CiAK
K3ZvaWQgV2ViVmlld0ltcGw6OmRpZENvbXBsZXRlUG9pbnRlckxvY2soKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgd2hlbiBQb2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRpZE5vdENvbXBsZXRlUG9pbnRlckxvY2soKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgd2hlbiBQb2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRpZExvc2VQb2ludGVyTG9jaygpCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCB3aGVuIFBvaW50ZXJMb2NrQ29udHJvbGxlciBsYW5kcy4KK30KKwogLy8gV2ViVmll
dyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBXZWJTZXR0aW5ncyogV2ViVmlld0ltcGw6OnNldHRpbmdzKCkKQEAg
LTMxNzcsNCArMzE5OSwyNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNldEdlc3R1cmVSZWNvZ25p
emVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK2Jvb2wgV2ViVmll
d0ltcGw6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1f
Y2xpZW50LT5yZXF1ZXN0UG9pbnRlckxvY2soKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVx
dWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGll
bnQtPnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmlzUG9p
bnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc1BvaW50
ZXJMb2NrZWQoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cG9pbnRlckxvY2tNb3VzZUV2ZW50
KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
d2hlbiBQb2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCA2ZWExOTZhNzViYmMzOTlhNDI3MzUzMzFkMWQwZWU5ZWVhMTNiOTE2Li40NjA5ZDM4MDdjNDYy
ZGU4MzUzMDk5OTZjYzQ3MGY5ZjdhOTdhM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKQEAgLTEyOSw2ICsxMjksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGNhcmV0T3JTZWxlY3Rpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxlbmd0
aCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVQb2ludGVyTG9jaygpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgog
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CkBA
IC00NjgsNiArNDcxLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxi
YXIoKTsKICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCk7CiAKKyAgICAvLyBQb2ludGVy
IExvY2sgY2FsbHMgYWxsb3cgYSBwYWdlIHRvIGNhcHR1cmUgYWxsIG1vdXNlIGV2ZW50cyBhbmQK
KyAgICAvLyBkaXNhYmxlIHRoZSBzeXN0ZW0gY3Vyc29yLgorI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCisgICAgdmlydHVhbCBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOworICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJM
b2NrZWQoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGJvb2wgY29tcHV0ZVBhZ2VTY2FsZUZh
Y3RvckxpbWl0cygpOwogICAgIGZsb2F0IGNsYW1wUGFnZVNjYWxlRmFjdG9yVG9MaW1pdHMoZmxv
YXQgc2NhbGUpOwpAQCAtNTIxLDYgKzUzMiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRl
TGF5ZXJUcmVlVmlld3BvcnQoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyAgICB2b2lkIHBvaW50ZXJMb2NrTW91c2VFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7Cisj
ZW5kaWYKKwogICAgIFdlYlZpZXdDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYkF1dG9maWxsQ2xp
ZW50KiBtX2F1dG9maWxsQ2xpZW50OwogICAgIFdlYlBlcm1pc3Npb25DbGllbnQqIG1fcGVybWlz
c2lvbkNsaWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123620</attachid>
            <date>2012-01-23 14:28:28 -0800</date>
            <delta_ts>2012-01-23 22:59:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76410-20120123142827.patch</filename>
            <type>text/plain</type>
            <size>9336</size>
            <attacher name="Vincent Scheib">scheib</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDI4OGQ1NmYwNGRjZDcwY2UzY2FlNjc2ZmEzZDRkMTBlYWYzNGRmYTcuLmNkMjEzNjljZGU2NDEw
M2Y1OGRkODg4YzUxMzVkOWJjY2I2OWNjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTItMDEtMjMgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBQb2ludGVy
IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnJl
YWtpbmcgdXAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzYyCisg
ICAgICAgIGludG8gYSBzZXJpZXMgb2YgcGF0Y2hlcywgdGhpcyBzdHVicyBvdXQgdGhlIEFQSS4K
KworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2lk
Z2V0OjpkaWRDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjpkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjpkaWRMb3NlUG9pbnRlckxvY2spOgorICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXRDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2Nr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50Ojppc1BvaW50ZXJMb2NrZWQpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjppc1BvaW50ZXJMb2NrZWQpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZGlkQ29tcGxldGVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaWROb3RDb21wbGV0ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmRpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXF1ZXN0UG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvaW50ZXJM
b2NrTW91c2VFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTItMDEt
MjAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFtjaHJvbWl1bV0gYWRkIFdlYkRldlRvb2xzRnJvbnRlbmRDbGllbnQ6Om9wZW5J
bk5ld1RhYiBmb3IgdXBjb21pbmcgV2ViQ29yZSBjaGFuZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYldpZGdldC5oCmluZGV4IDNmNTk0ZjM2OTU1MjJmNjZiYTU5Y2EzZWU1OTQ0
NzM1ZmRkNGVjYTYuLjU1NWRhZGNiMTUzYjRkZWI1ODhlZmZkMGU0MmJiOGMwOGIwYmFkNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCkBAIC00NCw2ICs0NCw3
IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSW5wdXRFdmVudDsKK2NsYXNzIFdl
Yk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJTdHJpbmc7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOwpAQCAtMTcwLDYgKzE3MSwxNiBAQCBwdWJs
aWM6CiAgICAgLy8gdG8gcmVuZGVyIGl0cyBjb250ZW50cy4KICAgICB2aXJ0dWFsIGJvb2wgaXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAor
ICAgIC8vIENhbGxpbmcgV2ViV2lkZ2V0Q2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKSB3aWxs
IHJlc3VsdCBpbiBvbmUKKyAgICAvLyByZXR1cm4gY2FsbCB0byBkaWRBY3F1aXJlUG9pbnRlckxv
Y2soKSBvciBkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWNxdWlyZVBvaW50ZXJMb2NrKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFjcXVpcmVQ
b2ludGVyTG9jaygpIHsgfQorCisgICAgLy8gUG9pbnRlciBsb2NrIHdhcyBoZWxkLCBidXQgaGFz
IGJlZW4gbG9zdC4gVGhpcyBtYXkgYmUgZHVlIHRvIGEKKyAgICAvLyByZXF1ZXN0IHZpYSBXZWJX
aWRnZXRDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2NrKCksIG9yIGZvciBvdGhlcgorICAgIC8v
IHJlYXNvbnMgc3VjaCBhcyB0aGUgdXNlciBleGl0aW5nIGxvY2ssIHdpbmRvdyBmb2N1cyBjaGFu
Z2luZywgZXRjLgorICAgIHZpcnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soKSB7IH0KKwog
cHJvdGVjdGVkOgogICAgIH5XZWJXaWRnZXQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCmluZGV4IGU1YjQwNWRlYTExMjYwY2Fh
ZjcyOTU3N2U1NTQzNDIwNjEwY2ZjODYuLjI0Y2Q5YzZhY2Y5YmQxZjgzZGFkZTEzODZiMjNlZWU3
Y2FmN2FkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldp
ZGdldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdl
dENsaWVudC5oCkBAIC0xMjYsNiArMTI2LDIxIEBAIHB1YmxpYzoKICAgICAvLyByZXNldCB0aGUg
aW5wdXQgbWV0aG9kIGJ5IGNhbmNlbGxpbmcgYW55IG9uZ29pbmcgY29tcG9zaXRpb24uCiAgICAg
dmlydHVhbCB2b2lkIHJlc2V0SW5wdXRNZXRob2QoKSB7IH0KIAorICAgIC8vIFJlcXVlc3RzIHRv
IGxvY2sgdGhlIG1vdXNlIGN1cnNvci4gSWYgdHJ1ZSBpcyByZXR1cm5lZCwgdGhlIHN1Y2Nlc3MK
KyAgICAvLyByZXN1bHQgd2lsbCBiZSBhc3luY2hyb25vdXNseSByZXR1cm5lZCB2aWEgYSBzaW5n
bGUgY2FsbCB0bworICAgIC8vIFdlYldpZGdldDo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCkgb3IK
KyAgICAvLyBXZWJXaWRnZXQ6OmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpLgorICAgIC8vIElm
IGZhbHNlLCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBkZW5pZWQgc3luY2hyb25vdXNseS4KKyAgICB2
aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAg
IC8vIENhdXNlIHRoZSBwb2ludGVyIGxvY2sgdG8gYmUgcmVsZWFzZWQuIFRoaXMgbWF5IGJlIGNh
bGxlZCBhdCBhbnkgdGltZSwKKyAgICAvLyBpbmNsdWRpbmcgd2hlbiBhIGxvY2sgaXMgcGVuZGlu
ZyBidXQgbm90IHlldCBhY3F1aXJlZC4KKyAgICAvLyBXZWJXaWRnZXQ6OmRpZExvc2VQb2ludGVy
TG9jaygpIGlzIGNhbGxlZCB3aGVuIHVubG9jayBpcyBjb21wbGV0ZS4KKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSB7IH0KKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhlIHBvaW50ZXIgaXMgbG9ja2VkIHRvIHRoaXMgd2lkZ2V0LgorICAgIHZpcnR1YWwgYm9vbCBp
c1BvaW50ZXJMb2NrZWQoKSB7IHJldHVybiBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldl
YldpZGdldENsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggNWYyODUxYmI1ODc3YzlmZjc0MjZkN2E4YzFlNWQx
Mzg2NGZhMDJjZi4uNTYyYWRlMmI1N2ZlNTE3MGFiMDA4NmJlMTE0YWYyODFmMmJkM2NkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAg
LTEwMTgsNCArMTAxOCwyMSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6Om51bVdoZWVsRXZlbnRI
YW5kbGVyc0NoYW5nZWQodW5zaWduZWQgbnVtYmVyT2ZXaGVlbEhhbmRsZQogICAgIG1fd2ViVmll
dy0+bnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKG51bWJlck9mV2hlZWxIYW5kbGVy
cyk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorYm9vbCBDaHJvbWVDbGllbnRJbXBs
OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAgIHJldHVybiBtX3dlYlZpZXctPnJlcXVlc3RQ
b2ludGVyTG9jaygpOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OnJlcXVlc3RQb2ludGVy
VW5sb2NrKCkKK3sKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5yZXF1ZXN0UG9pbnRlclVubG9jaygp
OworfQorCitib29sIENocm9tZUNsaWVudEltcGw6OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAg
cmV0dXJuIG1fd2ViVmlldy0+aXNQb2ludGVyTG9ja2VkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKaW5kZXggMjExM2VjMWFmNGY4MWQ3ZDE5YmVjYTY1MTg3MzIzMjE3N2FjNDdkZC4u
OGZkMjQ4OGQ5ZWU2NjEwZmUxMzg1OGI4ZWM5ZTU1ODBjNzU0MDUyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMjA1LDYgKzIwNSwxMiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihX
ZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVl
bEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCisgICAgdmlydHVhbCBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOworICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJM
b2NrZWQoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhX
ZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsKICAgICB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDdXJzb3JJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYTE0NzQ4MzUzMTk3YjcyNzkzOTcyMDRmYTQ4MGRiYTMz
NDA1OTdkNy4uNDdiMzYyNGQ5Y2U3ZjkwYWRiOTlhN2NhNWVlODNmNjQ3ODE5ZjI0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTMzMSw2ICsxMzMx
LDEzIEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRF
dmVudCYgaW5wdXRFdmVudCkKIAogICAgIG1fY3VycmVudElucHV0RXZlbnQgPSAmaW5wdXRFdmVu
dDsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgaWYgKGlzUG9pbnRlckxvY2tlZCgp
ICYmIFdlYklucHV0RXZlbnQ6OmlzTW91c2VFdmVudFR5cGUoaW5wdXRFdmVudC50eXBlKSkgewor
ICAgICAgcG9pbnRlckxvY2tNb3VzZUV2ZW50KGlucHV0RXZlbnQpOworICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9tb3VzZUNhcHR1cmVOb2RlICYmIFdlYklu
cHV0RXZlbnQ6OmlzTW91c2VFdmVudFR5cGUoaW5wdXRFdmVudC50eXBlKSkgewogICAgICAgICAv
LyBTYXZlIG1fbW91c2VDYXB0dXJlTm9kZSBzaW5jZSBtb3VzZUNhcHR1cmVMb3N0KCkgd2lsbCBj
bGVhciBpdC4KICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX21vdXNlQ2FwdHVyZU5vZGU7
CkBAIC0xNzQyLDYgKzE3NDksMjEgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQWN0aXZlKCkgY29uc3QKICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpk
aWRBY3F1aXJlUG9pbnRlckxvY2soKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgd2hlbiBQ
b2ludGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZE5v
dEFjcXVpcmVQb2ludGVyTG9jaygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB3aGVuIFBv
aW50ZXJMb2NrQ29udHJvbGxlciBsYW5kcy4KK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlkTG9z
ZVBvaW50ZXJMb2NrKCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHdoZW4gUG9pbnRlckxv
Y2tDb250cm9sbGVyIGxhbmRzLgorfQorCiAvLyBXZWJWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlNl
dHRpbmdzKiBXZWJWaWV3SW1wbDo6c2V0dGluZ3MoKQpAQCAtMzE3Nyw0ICszMTk5LDI3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnJlc2V0R2VzdHVyZVJlY29nbml6ZXIoKQogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorYm9vbCBXZWJWaWV3SW1wbDo6cmVxdWVzdFBvaW50ZXJM
b2NrKCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnJlcXVlc3RQb2ludGVy
TG9jaygpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0UG9pbnRlclVubG9jaygpCit7
CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVxdWVzdFBvaW50ZXJVbmxv
Y2soKTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6aXNQb2ludGVyTG9ja2VkKCkKK3sKKyAgICBy
ZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPmlzUG9pbnRlckxvY2tlZCgpOworfQorCit2b2lk
IFdlYlZpZXdJbXBsOjpwb2ludGVyTG9ja01vdXNlRXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYg
ZXZlbnQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB3aGVuIFBvaW50ZXJMb2NrQ29udHJv
bGxlciBsYW5kcy4KK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDZlYTE5NmE3NWJiYzM5OWE0Mjcz
NTMzMWQxZDBlZTllZWExM2I5MTYuLmJmMTg4YzBjMDlkYzkzNmY2NjE2NjY1MjJhN2Y4MjUyMDE2
MTM4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTI5
LDYgKzEyOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVjdGlvblJh
bmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbik7CiAgICAgdmlydHVh
bCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTm90
QWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZExvc2VQb2ludGVyTG9j
aygpOwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFs
aXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CkBAIC00NjgsNiArNDcxLDE0IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICBib29sIGhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyKCk7CiAKKyAgICAvLyBQb2ludGVyIExvY2sgY2FsbHMgYWxsb3cgYSBwYWdl
IHRvIGNhcHR1cmUgYWxsIG1vdXNlIGV2ZW50cyBhbmQKKyAgICAvLyBkaXNhYmxlIHRoZSBzeXN0
ZW0gY3Vyc29yLgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdmlydHVhbCBib29sIHJl
cXVlc3RQb2ludGVyTG9jaygpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9j
aygpOworICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKTsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIGJvb2wgY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOwogICAgIGZsb2F0
IGNsYW1wUGFnZVNjYWxlRmFjdG9yVG9MaW1pdHMoZmxvYXQgc2NhbGUpOwpAQCAtNTIxLDYgKzUz
MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQoKTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2b2lkIHBvaW50ZXJMb2NrTW91
c2VFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CisjZW5kaWYKKwogICAgIFdlYlZpZXdDbGll
bnQqIG1fY2xpZW50OwogICAgIFdlYkF1dG9maWxsQ2xpZW50KiBtX2F1dG9maWxsQ2xpZW50Owog
ICAgIFdlYlBlcm1pc3Npb25DbGllbnQqIG1fcGVybWlzc2lvbkNsaWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123700</attachid>
            <date>2012-01-23 22:59:29 -0800</date>
            <delta_ts>2012-01-24 03:29:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-76410-20120123225928.patch</filename>
            <type>text/plain</type>
            <size>9334</size>
            <attacher name="Vincent Scheib">scheib</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDI4OGQ1NmYwNGRjZDcwY2UzY2FlNjc2ZmEzZDRkMTBlYWYzNGRmYTcuLjBiNGM4Nzc3YWU5ZDIw
MzRkMjUzYmM1ZjNmYWVjMzBlZGRhMDU1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTItMDEtMjMgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBQb2ludGVy
IExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIEJyZWFr
aW5nIHVwIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc2MgorICAg
ICAgICBpbnRvIGEgc2VyaWVzIG9mIHBhdGNoZXMsIHRoaXMgc3R1YnMgb3V0IHRoZSBBUEkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdl
dDo6ZGlkQ29tcGxldGVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6
ZGlkTm90Q29tcGxldGVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6
ZGlkTG9zZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Q2xpZW50Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jayk6
CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudDo6aXNQb2ludGVyTG9ja2VkKToKKyAg
ICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudEltcGw6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudEltcGw6OnJlcXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpZENvbXBsZXRlUG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6ZGlkTm90Q29tcGxldGVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaWRMb3NlUG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnJlcXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlz
UG9pbnRlckxvY2tlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwb2ludGVyTG9j
a01vdXNlRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEyLTAxLTIw
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbY2hyb21pdW1dIGFkZCBXZWJEZXZUb29sc0Zyb250ZW5kQ2xpZW50OjpvcGVuSW5O
ZXdUYWIgZm9yIHVwY29taW5nIFdlYkNvcmUgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCAzZjU5NGYzNjk1NTIyZjY2YmE1OWNhM2VlNTk0NDcz
NWZkZDRlY2E2Li41NTVkYWRjYjE1M2I0ZGViNTg4ZWZmZDBlNDJiYjhjMDhiMGJhZDUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDQsNiArNDQsNyBA
QAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklucHV0RXZlbnQ7CitjbGFzcyBXZWJN
b3VzZUV2ZW50OwogY2xhc3MgV2ViU3RyaW5nOwogc3RydWN0IFdlYlBvaW50OwogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKQEAgLTE3MCw2ICsxNzEsMTYgQEAgcHVibGlj
OgogICAgIC8vIHRvIHJlbmRlciBpdHMgY29udGVudHMuCiAgICAgdmlydHVhbCBib29sIGlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAg
ICAvLyBDYWxsaW5nIFdlYldpZGdldENsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkgd2lsbCBy
ZXN1bHQgaW4gb25lCisgICAgLy8gcmV0dXJuIGNhbGwgdG8gZGlkQWNxdWlyZVBvaW50ZXJMb2Nr
KCkgb3IgZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCkuCisgICAgdmlydHVhbCB2b2lkIGRpZEFj
cXVpcmVQb2ludGVyTG9jaygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBY3F1aXJlUG9p
bnRlckxvY2soKSB7IH0KKworICAgIC8vIFBvaW50ZXIgbG9jayB3YXMgaGVsZCwgYnV0IGhhcyBi
ZWVuIGxvc3QuIFRoaXMgbWF5IGJlIGR1ZSB0byBhCisgICAgLy8gcmVxdWVzdCB2aWEgV2ViV2lk
Z2V0Q2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jaygpLCBvciBmb3Igb3RoZXIKKyAgICAvLyBy
ZWFzb25zIHN1Y2ggYXMgdGhlIHVzZXIgZXhpdGluZyBsb2NrLCB3aW5kb3cgZm9jdXMgY2hhbmdp
bmcsIGV0Yy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCkgeyB9CisKIHBy
b3RlY3RlZDoKICAgICB+V2ViV2lkZ2V0KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaAppbmRleCBlNWI0MDVkZWExMTI2MGNhYWY3
Mjk1NzdlNTU0MzQyMDYxMGNmYzg2Li4yNGNkOWM2YWNmOWJkMWY4M2RhZGUxMzg2YjIzZWVlN2Nh
ZjdhZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRn
ZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRD
bGllbnQuaApAQCAtMTI2LDYgKzEyNiwyMSBAQCBwdWJsaWM6CiAgICAgLy8gcmVzZXQgdGhlIGlu
cHV0IG1ldGhvZCBieSBjYW5jZWxsaW5nIGFueSBvbmdvaW5nIGNvbXBvc2l0aW9uLgogICAgIHZp
cnR1YWwgdm9pZCByZXNldElucHV0TWV0aG9kKCkgeyB9CiAKKyAgICAvLyBSZXF1ZXN0cyB0byBs
b2NrIHRoZSBtb3VzZSBjdXJzb3IuIElmIHRydWUgaXMgcmV0dXJuZWQsIHRoZSBzdWNjZXNzCisg
ICAgLy8gcmVzdWx0IHdpbGwgYmUgYXN5bmNocm9ub3VzbHkgcmV0dXJuZWQgdmlhIGEgc2luZ2xl
IGNhbGwgdG8KKyAgICAvLyBXZWJXaWRnZXQ6OmRpZEFjcXVpcmVQb2ludGVyTG9jaygpIG9yCisg
ICAgLy8gV2ViV2lkZ2V0OjpkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKS4KKyAgICAvLyBJZiBm
YWxzZSwgdGhlIHJlcXVlc3QgaGFzIGJlZW4gZGVuaWVkIHN5bmNocm9ub3VzbHkuCisgICAgdmly
dHVhbCBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICAv
LyBDYXVzZSB0aGUgcG9pbnRlciBsb2NrIHRvIGJlIHJlbGVhc2VkLiBUaGlzIG1heSBiZSBjYWxs
ZWQgYXQgYW55IHRpbWUsCisgICAgLy8gaW5jbHVkaW5nIHdoZW4gYSBsb2NrIGlzIHBlbmRpbmcg
YnV0IG5vdCB5ZXQgYWNxdWlyZWQuCisgICAgLy8gV2ViV2lkZ2V0OjpkaWRMb3NlUG9pbnRlckxv
Y2soKSBpcyBjYWxsZWQgd2hlbiB1bmxvY2sgaXMgY29tcGxldGUuCisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgeyB9CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSBwb2ludGVyIGlzIGxvY2tlZCB0byB0aGlzIHdpZGdldC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNQ
b2ludGVyTG9ja2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJX
aWRnZXRDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDVmMjg1MWJiNTg3N2M5ZmY3NDI2ZDdhOGMxZTVkMTM4
NjRmYTAyY2YuLjU2MmFkZTJiNTdmZTUxNzBhYjAwODZiZTExNGFmMjgxZjJiZDNjZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC0x
MDE4LDQgKzEwMTgsMjEgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIG51bWJlck9mV2hlZWxIYW5kbGUKICAgICBtX3dlYlZpZXct
Pm51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChudW1iZXJPZldoZWVsSGFuZGxlcnMp
OwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6
cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5yZXF1ZXN0UG9p
bnRlckxvY2soKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXF1ZXN0UG9pbnRlclVu
bG9jaygpCit7CisgICAgcmV0dXJuIG1fd2ViVmlldy0+cmVxdWVzdFBvaW50ZXJVbmxvY2soKTsK
K30KKworYm9vbCBDaHJvbWVDbGllbnRJbXBsOjppc1BvaW50ZXJMb2NrZWQoKQoreworICAgIHJl
dHVybiBtX3dlYlZpZXctPmlzUG9pbnRlckxvY2tlZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCmluZGV4IDIxMTNlYzFhZjRmODFkN2QxOWJlY2E2NTE4NzMyMzIxNzdhYzQ3ZGQuLjhm
ZDI0ODhkOWVlNjYxMGZlMTM4NThiOGVjOWU1NTgwYzc1NDA1MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTIwNSw2ICsyMDUsMTIgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2Vi
Q29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9j
a2VkKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2Vi
Q29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7CiAgICAgdm9pZCBzZXRD
dXJzb3IoY29uc3QgV2ViQ3Vyc29ySW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IGExNDc0ODM1MzE5N2I3Mjc5Mzk3MjA0ZmE0ODBkYmEzMzQw
NTk3ZDcuLjQ3YjM2MjRkOWNlN2Y5MGFkYjk5YTdjYTVlZTgzZjY0NzgxOWYyNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEzMzEsNiArMTMzMSwx
MyBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZl
bnQmIGlucHV0RXZlbnQpCiAKICAgICBtX2N1cnJlbnRJbnB1dEV2ZW50ID0gJmlucHV0RXZlbnQ7
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIGlmIChpc1BvaW50ZXJMb2NrZWQoKSAm
JiBXZWJJbnB1dEV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKGlucHV0RXZlbnQudHlwZSkpIHsKKyAg
ICAgIHBvaW50ZXJMb2NrTW91c2VFdmVudChpbnB1dEV2ZW50KTsKKyAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKG1fbW91c2VDYXB0dXJlTm9kZSAmJiBXZWJJbnB1
dEV2ZW50Ojppc01vdXNlRXZlbnRUeXBlKGlucHV0RXZlbnQudHlwZSkpIHsKICAgICAgICAgLy8g
U2F2ZSBtX21vdXNlQ2FwdHVyZU5vZGUgc2luY2UgbW91c2VDYXB0dXJlTG9zdCgpIHdpbGwgY2xl
YXIgaXQuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9tb3VzZUNhcHR1cmVOb2RlOwpA
QCAtMTc0Miw2ICsxNzQ5LDIxIEBAIGJvb2wgV2ViVmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0FjdGl2ZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6ZGlk
QWNxdWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHdoZW4gUG9p
bnRlckxvY2tDb250cm9sbGVyIGxhbmRzLgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaWROb3RB
Y3F1aXJlUG9pbnRlckxvY2soKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgd2hlbiBQb2lu
dGVyTG9ja0NvbnRyb2xsZXIgbGFuZHMuCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZExvc2VQ
b2ludGVyTG9jaygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB3aGVuIFBvaW50ZXJMb2Nr
Q29udHJvbGxlciBsYW5kcy4KK30KKwogLy8gV2ViVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJTZXR0
aW5ncyogV2ViVmlld0ltcGw6OnNldHRpbmdzKCkKQEAgLTMxNzcsNCArMzE5OSwyNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpyZXNldEdlc3R1cmVSZWNvZ25pemVyKCkKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKK2Jvb2wgV2ViVmlld0ltcGw6OnJlcXVlc3RQb2ludGVyTG9j
aygpCit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5yZXF1ZXN0UG9pbnRlckxv
Y2soKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQorewor
ICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnJlcXVlc3RQb2ludGVyVW5sb2Nr
KCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAgcmV0
dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc1BvaW50ZXJMb2NrZWQoKTsKK30KKwordm9pZCBX
ZWJWaWV3SW1wbDo6cG9pbnRlckxvY2tNb3VzZUV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2
ZW50KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgd2hlbiBQb2ludGVyTG9ja0NvbnRyb2xs
ZXIgbGFuZHMuCit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA2ZWExOTZhNzViYmMzOTlhNDI3MzUz
MzFkMWQwZWU5ZWVhMTNiOTE2Li5iZjE4OGMwYzA5ZGM5MzZmNjYxNjY2NTIyYTdmODI1MjAxNjEz
OGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTEyOSw2
ICsxMjksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhcmV0T3JTZWxlY3Rpb25SYW5n
ZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pOwogICAgIHZpcnR1YWwg
Ym9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFj
cXVpcmVQb2ludGVyTG9jaygpOworICAgIHZpcnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2so
KTsKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6
ZU1haW5GcmFtZShXZWJGcmFtZUNsaWVudCopOwpAQCAtNDY4LDYgKzQ3MSwxNCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CiAgICAgYm9vbCBoYXNWZXJ0aWNh
bFNjcm9sbGJhcigpOwogCisgICAgLy8gUG9pbnRlciBMb2NrIGNhbGxzIGFsbG93IGEgcGFnZSB0
byBjYXB0dXJlIGFsbCBtb3VzZSBldmVudHMgYW5kCisgICAgLy8gZGlzYWJsZSB0aGUgc3lzdGVt
IGN1cnNvci4KKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZpcnR1YWwgYm9vbCByZXF1
ZXN0UG9pbnRlckxvY2soKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2so
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCk7CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICBib29sIGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMoKTsKICAgICBmbG9hdCBj
bGFtcFBhZ2VTY2FsZUZhY3RvclRvTGltaXRzKGZsb2F0IHNjYWxlKTsKQEAgLTUyMSw2ICs1MzIs
MTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdm9pZCBwb2ludGVyTG9ja01vdXNl
RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOworI2VuZGlmCisKICAgICBXZWJWaWV3Q2xpZW50
KiBtX2NsaWVudDsKICAgICBXZWJBdXRvZmlsbENsaWVudCogbV9hdXRvZmlsbENsaWVudDsKICAg
ICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBtX3Blcm1pc3Npb25DbGllbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>