<?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>95756</bug_id>
          
          <creation_ts>2012-09-04 10:25:42 -0700</creation_ts>
          <short_desc>[chromium] Enable different fling behaviour for touchscreen and touchpad</short_desc>
          <delta_ts>2012-09-06 11:54:20 -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>UI Events</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Kroeger">rjkroege</reporter>
          <assigned_to name="Robert Kroeger">rjkroege</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>sievers</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>711211</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-04 10:25:42 -0700</bug_when>
    <thetext>It is desirable to provide different fling animation curves for touchscreen and touchpad initiated flings. Differentiate the GestureFlingStart events in these two cases and use this difference to select different curves via a factory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711263</commentid>
    <comment_count>1</comment_count>
      <attachid>162068</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-04 11:17:39 -0700</bug_when>
    <thetext>Created attachment 162068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711265</commentid>
    <comment_count>2</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-04 11:19:01 -0700</bug_when>
    <thetext>jamesr@: Could you take a look please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711271</commentid>
    <comment_count>3</comment_count>
      <attachid>162068</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-04 11:24:50 -0700</bug_when>
    <thetext>Comment on attachment 162068
Patch

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

&gt; Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp:56
&gt; +PassOwnPtr&lt;PlatformGestureCurve&gt; TouchpadFlingPlatformGestureCurve::create(const FloatPoint&amp; velocity, const IntPoint&amp; cumulativeScroll)

Why did you change this?

IntPoint is 2 ints - same size as a reference on 64 bit systems

&gt; Source/WebCore/platform/chromium/support/PlatformGestureCurveFactory.h:40
&gt;      PassOwnPtr&lt;WebCore::PlatformGestureCurve&gt; createCurve(const WebCore::FloatPoint&amp;, const WebCore::IntRect&amp; range);
&gt; +    PassOwnPtr&lt;WebCore::PlatformGestureCurve&gt; createCurve(int eventModifiers, const WebCore::FloatPoint&amp;, const WebCore::IntPoint&amp; cumulativeScroll = WebCore::IntPoint());

could these names describe what they are for? they both create curves, obviously, but beyond that I can&apos;t tell when one or the other should be used

&gt; Source/WebKit/chromium/public/WebInputEvent.h:156
&gt; +        // Modifier for gesture events. Set if the event comes from a touchscreen.
&gt; +        TouchScreenSourced = 1 &lt;&lt; 11,

Hmm, are you sure this makes sense as a modifier on all inputs? So far the only thing we want it for is GestureScrollBegin. What about putting it on WebGestureEvent&apos;s flingStart instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711276</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 11:26:57 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712022</commentid>
    <comment_count>5</comment_count>
      <attachid>162068</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-05 07:19:45 -0700</bug_when>
    <thetext>Comment on attachment 162068
Patch

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

&gt;&gt; Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp:56
&gt;&gt; +PassOwnPtr&lt;PlatformGestureCurve&gt; TouchpadFlingPlatformGestureCurve::create(const FloatPoint&amp; velocity, const IntPoint&amp; cumulativeScroll)
&gt; 
&gt; Why did you change this?
&gt; 
&gt; IntPoint is 2 ints - same size as a reference on 64 bit systems

To match the constructor. But as you point out, completely unnecessary. Removed in p2.

&gt;&gt; Source/WebCore/platform/chromium/support/PlatformGestureCurveFactory.h:40
&gt;&gt; +    PassOwnPtr&lt;WebCore::PlatformGestureCurve&gt; createCurve(int eventModifiers, const WebCore::FloatPoint&amp;, const WebCore::IntPoint&amp; cumulativeScroll = WebCore::IntPoint());
&gt; 
&gt; could these names describe what they are for? they both create curves, obviously, but beyond that I can&apos;t tell when one or the other should be used

I have merged into one in p2. I think this change is more of a step towards aligning CrOS/Android fling implementations.

&gt;&gt; Source/WebKit/chromium/public/WebInputEvent.h:156
&gt;&gt; +        TouchScreenSourced = 1 &lt;&lt; 11,
&gt; 
&gt; Hmm, are you sure this makes sense as a modifier on all inputs? So far the only thing we want it for is GestureScrollBegin. What about putting it on WebGestureEvent&apos;s flingStart instead?

Not entirely but it was simple and didn&apos;t seem too much of a stretch given that some other modifiers (e.g. mouse buttons) only apply to specific event types. I&apos;ve coded it up as a modifier on GestureFlingStart in p2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712028</commentid>
    <comment_count>6</comment_count>
      <attachid>162242</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-05 07:28:10 -0700</bug_when>
    <thetext>Created attachment 162242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712241</commentid>
    <comment_count>7</comment_count>
      <attachid>162242</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-05 10:45:14 -0700</bug_when>
    <thetext>Comment on attachment 162242
Patch

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

&gt; Source/WebKit/chromium/public/WebInputEvent.h:406
&gt; +        int sourceDevice;

Why not just bool or an 2-state enum? Bitfield seems unnecessarily big and extra unwieldy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712306</commentid>
    <comment_count>8</comment_count>
      <attachid>162242</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-05 10:59:41 -0700</bug_when>
    <thetext>Comment on attachment 162242
Patch

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

&gt; Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h:42
&gt; +    int sourceDevice;

If a fling is from a touchscreen, you won&apos;t need to transfer it so you&apos;ll never need to use this path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712396</commentid>
    <comment_count>9</comment_count>
      <attachid>162242</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-05 12:02:31 -0700</bug_when>
    <thetext>Comment on attachment 162242
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h:42
&gt;&gt; +    int sourceDevice;
&gt; 
&gt; If a fling is from a touchscreen, you won&apos;t need to transfer it so you&apos;ll never need to use this path.

I agree that this is the intent. And it continues to be my intent to write a patch that makes it so. But it&apos;s not true at present: fling is still via WebCompositorInputHandlerImpl::scrollBy by way of manufactured WheelEvents. And my preference would be to do that change separate from this change. Are you amenable to this?

&gt;&gt; Source/WebKit/chromium/public/WebInputEvent.h:406
&gt;&gt; +        int sourceDevice;
&gt; 
&gt; Why not just bool or an 2-state enum? Bitfield seems unnecessarily big and extra unwieldy

enum seems cleaner. Done in p3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712429</commentid>
    <comment_count>10</comment_count>
      <attachid>162304</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-05 12:43:48 -0700</bug_when>
    <thetext>Created attachment 162304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712442</commentid>
    <comment_count>11</comment_count>
      <attachid>162304</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-05 12:53:12 -0700</bug_when>
    <thetext>Comment on attachment 162304
Patch

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

&gt; Source/WebCore/platform/chromium/support/PlatformGestureCurveFactory.cpp:51
&gt; +    if (!flingAnimator &amp;&amp; deviceSource == WebGestureEvent::Touchscreen)

early return would read better and be shorter - i.e. if the flingAnimator is non-null at this point, construct + return a WebFlingAni..Adapter. Then you can write the rest of the function without the !flingAnimator checks

&gt; Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h:42
&gt; +    int sourceDevice;

wrong type - this should be a WebGestureEvent::SourceDevice, right?

&gt; Source/WebKit/chromium/public/WebInputEvent.h:406
&gt; +        int sourceDevice;

int != enum - use the more specific type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712474</commentid>
    <comment_count>12</comment_count>
      <attachid>162304</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-05 13:31:48 -0700</bug_when>
    <thetext>Comment on attachment 162304
Patch

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

&gt;&gt; Source/WebCore/platform/chromium/support/PlatformGestureCurveFactory.cpp:51
&gt;&gt; +    if (!flingAnimator &amp;&amp; deviceSource == WebGestureEvent::Touchscreen)
&gt; 
&gt; early return would read better and be shorter - i.e. if the flingAnimator is non-null at this point, construct + return a WebFlingAni..Adapter. Then you can write the rest of the function without the !flingAnimator checks

Much nicer with your suggestion. Thanks.

&gt;&gt; Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h:42
&gt;&gt; +    int sourceDevice;
&gt; 
&gt; wrong type - this should be a WebGestureEvent::SourceDevice, right?

Definitely, done p4

&gt;&gt; Source/WebKit/chromium/public/WebInputEvent.h:406
&gt;&gt; +        int sourceDevice;
&gt; 
&gt; int != enum - use the more specific type

Done in p4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712481</commentid>
    <comment_count>13</comment_count>
      <attachid>162321</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-05 13:35:37 -0700</bug_when>
    <thetext>Created attachment 162321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712893</commentid>
    <comment_count>14</comment_count>
      <attachid>162321</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 22:37:49 -0700</bug_when>
    <thetext>Comment on attachment 162321
Patch

Rejecting attachment 162321 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
nputHandlerImpl.cpp
Hunk #2 FAILED at 267.
1 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp.rej
patching file Source/WebKit/chromium/src/WebViewImpl.cpp
Hunk #3 FAILED at 693.
1 out of 4 hunks FAILED -- saving rejects to file Source/WebKit/chromium/src/WebViewImpl.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;James Robi...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/13774175</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713302</commentid>
    <comment_count>15</comment_count>
      <attachid>162510</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-09-06 08:17:03 -0700</bug_when>
    <thetext>Created attachment 162510
Patch: fixed merge conflict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713538</commentid>
    <comment_count>16</comment_count>
      <attachid>162510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 11:54:15 -0700</bug_when>
    <thetext>Comment on attachment 162510
Patch: fixed merge conflict.

Clearing flags on attachment: 162510

Committed r127767: &lt;http://trac.webkit.org/changeset/127767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713539</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 11:54:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162068</attachid>
            <date>2012-09-04 11:17:39 -0700</date>
            <delta_ts>2012-09-05 07:28:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95756-20120904141724.patch</filename>
            <type>text/plain</type>
            <size>15004</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y0YmQ4NTEzZDdiYzNi
MmQwYTJhOTkyZjFkYmViNzUzYTI1NzljYi4uZmNhYzM2OTE4NTJkMzZkOGQ1NjEwNmI1NmQwZmYz
OTYwNzAxNGNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA5LTA0ICBSb2Jl
cnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEVuYWJsZSBkaWZmZXJlbnQgZmxpbmcgYmVoYXZpb3VyIGZvciB0b3VjaHNjcmVlbiBhbmQgdG91
Y2hwYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGEgZmxhZyBvbiBXZWJHZXN0dXJlRXZlbnRzIHRoYXQgZGlmZmVyZW50aWF0
ZXMgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAgICAgZXZlbnRzIGJ5IHRoZWlyIG9yaWdpbmF0aW5n
IGRldmljZSBhbmQgcGFzcyB0aGlzIGZsYWcgdG8gYSBmYWN0b3J5IHRoYXQgcHJvZHVjZXMKKyAg
ICAgICAgZGlmZmVyZW50IGRldmljZSAgc3BlY2lmaWMgZmxpbmcgY3VydmVzIGJhc2VkIG9uIHRo
ZSB2YWx1ZSBvZiB0aGUgZmxhZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCBhbmQgdW5pdCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZSk6IENvbnN0IHJlZiBhZGRlZCB3aGVyZSBwb3NzaWJs
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUu
aDoKKyAgICAgICAgKFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnku
Y3BwOiBBZGRlZCBhZGRpdGlvbmFsIGZhY3RvcnkKKyAgICAgICAgZW50cnkgcG9pbnQgZm9yIGNv
bnN0cnVjdGluZyBkaWZmZXJlbnQga2luZHMgb2YgZmxpbmcgY3VydmUuCisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnk6OmNyZWF0
ZUN1cnZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRmb3JtR2Vz
dHVyZUN1cnZlRmFjdG9yeS5oOgorICAgICAgICAoUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5
KToKKwogMjAxMi0wOS0wMyAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbR1RLXVtFRkxdICdkaWN0SXRlcicgaXRlcmF0b3IgaXMgbm90
IGluaXRpYWxpemVkIGZvciBhbiBpbm5lciBsb29wCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGQ1ZTQxOGRjM2U1MjFmZDE4NDQ0ODZhOWU2Y2VlNGExMWEyMjExMmQuLjJkNTYzYmRiMDFk
Njc5YjcwZGNkODhlYmVhYTEyOTQyYzMwMGZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMDQgIFJvYmVydCBLcm9lZ2VyICA8cmprcm9lZ2VA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRW5hYmxlIGRpZmZlcmVudCBmbGlu
ZyBiZWhhdmlvdXIgZm9yIHRvdWNoc2NyZWVuIGFuZCB0b3VjaHBhZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYSBmbGFnIG9u
IFdlYkdlc3R1cmVFdmVudHMgdGhhdCBkaWZmZXJlbnRpYXRlcyBHZXN0dXJlRmxpbmdTdGFydAor
ICAgICAgICBldmVudHMgYnkgdGhlaXIgb3JpZ2luYXRpbmcgZGV2aWNlIGFuZCBwYXNzIHRoaXMg
ZmxhZyB0byBhIGZhY3RvcnkgdGhhdCBwcm9kdWNlcworICAgICAgICBkaWZmZXJlbnQgZGV2aWNl
ICBzcGVjaWZpYyBmbGluZyBjdXJ2ZXMgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSBmbGFnLgor
CisgICAgICAgICogcHVibGljL1dlYklucHV0RXZlbnQuaDogQWRkZWQgZmxhdCBmb3Igc291cmNl
IGRldmljZS4KKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxl
R2VzdHVyZUZsaW5nKTogUGFzcyB0aGUgZmxhZyB0byB0aGUKKyAgICAgICAgZmFjdG9yeSBhbmQg
dXNlIHRoZSByZXR1cm5lZCBmbGluZyBjdXJ2ZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KTog
ZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0cmFuc2ZlckFjdGl2ZVdoZWVs
RmxpbmdBbmltYXRpb24pOiBkaXR0by4KKwogMjAxMi0wOS0wMSAgSmFtZXMgUm9iaW5zb24gIDxq
YW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21pdW0gYnVpbGRm
aXggd2hlbiB1c2VfbGliY2NfZm9yX2NvbXBvc2l0b3I9MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5j
cHAKaW5kZXggYjJiZmJlYTVlMTMyZWYzOWNlOTRiZGM4ZGFmMjUxYWVmMGEyOWIyMS4uNjgyODdl
OWUwOWU1MzYyOTMyNDFmYzUzYmRiNjk2ODk5NWE0YTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIGNvbnN0IGlu
dCBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6Om1fbWF4U2VhcmNoSXRlcmF0aW9u
cyA9IDIwOwogCi1QYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBUb3VjaHBhZEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSwg
SW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCkKK1Bhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3Vy
dmU+IFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKGNvbnN0IEZsb2F0
UG9pbnQmIHZlbG9jaXR5LCBjb25zdCBJbnRQb2ludCYgY3VtdWxhdGl2ZVNjcm9sbCkKIHsKICAg
ICAvLyBUaGUgZGVmYXVsdCBwYXJhbWV0ZXJzIGxpc3RlZCBiZWxvdyBhcmUgYSBtYXRjaGVkIHNl
dCwgYW5kIHNob3VsZCBub3QgYmUgY2hhbmdlZCBpbmRlcGVuZGVudGx5IG9mIG9uZSBhbm90aGVy
LgogICAgIHJldHVybiBjcmVhdGUodmVsb2NpdHksIC01LjcwNzYyZSswMywgMS43MmUrMDIsIDMu
N2UrMDAsIDAsIDAsIDEuMywgY3VtdWxhdGl2ZVNjcm9sbCk7CkBAIC02MSw3ICs2MSw3IEBAIFBh
c3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZTo6Y3JlYXRlKGNvbnN0CiAKIC8vIEZJWE1FOiBuZWVkIHRvIHJlbW92ZSBwMywgcDQg
aGVyZSBhbmQgYmVsb3cgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gdGhlIGV4cG9uZW50aWFsIGN1
cnZlLCBidXQgbGVhdmUgaW4gZm9yIG5vdyB0byBmYWNpbGl0YXRlCiAvLyB0aGUgaW4tZmxpZ2h0
IHBhdGNoIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2NjMg
LgotUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gVG91Y2hwYWRGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlOjpjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHksIGZsb2F0IHAw
LCBmbG9hdCBwMSwgZmxvYXQgcDIsIGZsb2F0IHAzLCBmbG9hdCBwNCwgZmxvYXQgY3VydmVEdXJh
dGlvbiwgSW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCkKK1Bhc3NPd25QdHI8UGxhdGZvcm1HZXN0
dXJlQ3VydmU+IFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKGNvbnN0
IEZsb2F0UG9pbnQmIHZlbG9jaXR5LCBmbG9hdCBwMCwgZmxvYXQgcDEsIGZsb2F0IHAyLCBmbG9h
dCBwMywgZmxvYXQgcDQsIGZsb2F0IGN1cnZlRHVyYXRpb24sIGNvbnN0IEludFBvaW50JiBjdW11
bGF0aXZlU2Nyb2xsKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgVG91Y2hwYWRGbGluZ1Bs
YXRmb3JtR2VzdHVyZUN1cnZlKHZlbG9jaXR5LCBwMCwgcDEsIHAyLCBwMywgcDQsIGN1cnZlRHVy
YXRpb24sIGN1bXVsYXRpdmVTY3JvbGwpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKaW5kZXgg
ZTFjODU1NzVkNTczY2VmZGE0NDY4MWZlMzQ1ODA0MDAxNDgxY2JlMi4uMTIxNzNjNDNkMzFmMTFl
NTZmZGQwYWM1M2UwMzRmMzE1MDlmNWI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKQEAgLTQw
LDggKzQwLDggQEAgY2xhc3MgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQ7CiAvLyB0aGUgaW5p
dGlhbCB2ZWxvY2l0eS4KIGNsYXNzIFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSA6
IHB1YmxpYyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxv
Y2l0eSwgSW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCA9IEludFBvaW50KCkpOwotICAgIHN0YXRp
YyBQYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGUoY29uc3QgRmxvYXRQb2lu
dCYgdmVsb2NpdHksIGZsb2F0IHAwLCBmbG9hdCBwMSwgZmxvYXQgcDIsIGZsb2F0IHAzLCBmbG9h
dCBwNCwgZmxvYXQgY3VydmVEdXJhdGlvbiwgSW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCA9IElu
dFBvaW50KCkpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBj
cmVhdGUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2NpdHksIGNvbnN0IEludFBvaW50JiBjdW11bGF0
aXZlU2Nyb2xsID0gSW50UG9pbnQoKSk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGxhdGZvcm1H
ZXN0dXJlQ3VydmU+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSwgZmxvYXQgcDAs
IGZsb2F0IHAxLCBmbG9hdCBwMiwgZmxvYXQgcDMsIGZsb2F0IHA0LCBmbG9hdCBjdXJ2ZUR1cmF0
aW9uLCBjb25zdCBJbnRQb2ludCYgY3VtdWxhdGl2ZVNjcm9sbCA9IEludFBvaW50KCkpOwogICAg
IHZpcnR1YWwgflRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSgpOwogCiAgICAgdmly
dHVhbCBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJl
Q3VydmVGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcAppbmRleCA1MGRjY2YzOWYyZGJjZWU5
MmI4ZGI2ODVkMWJiZTU3NjVhNzA3OTc4Li41YmQwMTk4ZmNkZjQyYjBmNDcyYjhiNWYyNzdhY2Yw
ZTk0ZjMyNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnku
Y3BwCkBAIC0yNCwxMiArMjQsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNp
bmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCIKIAogI2luY2x1ZGUgIkZsb2F0
UG9pbnQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1Bs
YXRmb3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVkZSAiV2ViRmxpbmdBbmltYXRvclRvR2VzdHVy
ZUN1cnZlQWRhcHRlci5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTM5LDYgKzQxLDcgQEAgUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5
KiBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnk6OmdldCgpCiAgICAgcmV0dXJuICZmYWN0b3J5
OwogfQogCisvLyBGSVhNRTogVW5pZnkgQW5kcm9pZCBhbmQgbm9uLUFuZHJvaWQgY29uc3RydWN0
aW9uLgogUGFzc093blB0cjxXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gUGxhdGZvcm1H
ZXN0dXJlQ3VydmVGYWN0b3J5OjpjcmVhdGVDdXJ2ZShjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBwb2ludCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmFuZ2UpCiB7CiAgICAgT3duUHRyPFdl
YkZsaW5nQW5pbWF0b3I+IGZsaW5nQW5pbWF0b3IgPSBtX21vY2tGbGluZ0FuaW1hdG9yLnJlbGVh
c2UoKTsKQEAgLTUwLDYgKzUzLDE0IEBAIFBhc3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0
dXJlQ3VydmU+IFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6Y3JlYXRlQ3VyCiAgICAgcmV0
dXJuIFdlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXI6OmNyZWF0ZShwb2ludCwg
cmFuZ2UsIGZsaW5nQW5pbWF0b3IucmVsZWFzZSgpKTsKIH0KIAorUGFzc093blB0cjxXZWJDb3Jl
OjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpjcmVh
dGVDdXJ2ZShpbnQgZXZlbnRNb2RpZmllcnMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBv
aW50LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY3VtdWxhdGl2ZVNjcm9sbCkKK3sKKyAgICAv
LyBGSVhNRTogV2lsbCBhZGQgYSB0b3VjaHNjcmVlbiBzcGVjaWZpYyBjdXJ2ZSBoZXJlIGluIGEg
c3Vic2VxdWVudCBDTC4KKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpU
b3VjaFNjcmVlblNvdXJjZWQpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpUb3VjaHBhZEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShwb2ludCwgY3VtdWxhdGl2ZVNjcm9sbCk7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3Jl
YXRlKHBvaW50LCBjdW11bGF0aXZlU2Nyb2xsKTsKK30KKwogdm9pZCBQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZUZhY3Rvcnk6OnNldFdlYkZsaW5nQW5pbWF0b3JGb3JUZXN0KFBhc3NPd25QdHI8V2ViRmxp
bmdBbmltYXRvcj4gbW9ja0ZsaW5nQW5pbWF0b3IpCiB7CiAgICAgbV9tb2NrRmxpbmdBbmltYXRv
ciA9IG1vY2tGbGluZ0FuaW1hdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVG
YWN0b3J5LmgKaW5kZXggODVmN2VjYzU5MTkzNjI1NDRkM2Q2Mzc3NTYyYmRjMjBhOGZhNDlhMy4u
ZWUxYjczZWVhODM5NzJjYmQzNDcwODU0OTI0YTAzYzZhNmQ5MjQzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2
ZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5oCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5KiBnZXQoKTsKIAogICAgIFBh
c3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZUN1cnZlKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByYW5nZSk7Cisg
ICAgUGFzc093blB0cjxXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gY3JlYXRlQ3VydmUo
aW50IGV2ZW50TW9kaWZpZXJzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGN1bXVsYXRpdmVTY3JvbGwgPSBXZWJDb3JlOjpJbnRQb2ludCgpKTsK
ICAgICB2b2lkIHNldFdlYkZsaW5nQW5pbWF0b3JGb3JUZXN0KFBhc3NPd25QdHI8V2ViRmxpbmdB
bmltYXRvcj4pOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSW5wdXRFdmVudC5oCmluZGV4IGQxZjUxNzNlOWY4NDQyYTRlMGY0MTI0ZTY2MjQyNWEwZDk4
NmU3Y2EuLjJjMTQwNjY5N2U3N2VmMzg2YTkyN2Y4Y2E2YzcyMzkxNmI0NGJhMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKQEAgLTE1MSw2ICsx
NTEsOSBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGV2ZW50IGFuZCBiYWNrIHdpbGwgbm90IHByZXNl
cnZlIHRoZXNlIGZsYWdzLgogICAgICAgICBDYXBzTG9ja09uICAgICAgID0gMSA8PCA5LAogICAg
ICAgICBOdW1Mb2NrT24gICAgICAgID0gMSA8PCAxMCwKKworICAgICAgICAvLyBNb2RpZmllciBm
b3IgZ2VzdHVyZSBldmVudHMuIFNldCBpZiB0aGUgZXZlbnQgY29tZXMgZnJvbSBhIHRvdWNoc2Ny
ZWVuLgorICAgICAgICBUb3VjaFNjcmVlblNvdXJjZWQgPSAxIDw8IDExLAogICAgIH07CiAKICAg
ICBzdGF0aWMgY29uc3QgaW50IElucHV0TW9kaWZpZXJzID0gU2hpZnRLZXkgfCBDb250cm9sS2V5
IHwgQWx0S2V5IHwgTWV0YUtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAppbmRleCA4MDg0ZDcx
NWM3YjAyYTU3OGU0MWVjYmEzZTk5Mzg0ZjY0MmFkMmU5Li4yNWU1MjExZjdmMTdmMWMxYzRjMzc0
MWViMTI3MDRmOWQ0MThjZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCkBAIC0yOSw4ICsy
OSw4IEBACiAKICNpbmNsdWRlICJDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24uaCIKICNpbmNsdWRl
ICJDQ1Byb3h5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQuaCIKLSNpbmNsdWRlICJUb3VjaHBh
ZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViQ29tcG9zaXRvckltcGwuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVyQ2xpZW50LmgiCkBAIC0yNjcsNyArMjY3LDcgQEAgV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGw6OkV2ZW50RGlzcG9zaXRpb24gV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OmgKICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykgewogICAgIGNhc2UgQ0NJbnB1dEhhbmRs
ZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6IHsKICAgICAgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDAo
ImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmc6
OnN0YXJ0ZWQiKTsKLSAgICAgICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBmbGluZ0N1
cnZlID0gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUoRmxvYXRQb2lu
dChnZXN0dXJlRXZlbnQuZGVsdGFYLCBnZXN0dXJlRXZlbnQuZGVsdGFZKSk7CisgICAgICAgIE93
blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9IFBsYXRmb3JtR2VzdHVyZUN1
cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1cnZlKGdlc3R1cmVFdmVudC5tb2RpZmllcnMsIEZs
b2F0UG9pbnQoZ2VzdHVyZUV2ZW50LmRlbHRhWCwgZ2VzdHVyZUV2ZW50LmRlbHRhWSkpOwogICAg
ICAgICBtX3doZWVsRmxpbmdBbmltYXRpb24gPSBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246OmNy
ZWF0ZShQbGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmNyZWF0ZShmbGluZ0N1cnZl
LnJlbGVhc2UoKSksIHRoaXMpOwogICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmRlbHRh
ID0gV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGVsdGFYLCBnZXN0dXJlRXZlbnQuZGVsdGFZ
KTsKICAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5wb2ludCA9IFdlYlBvaW50KGdlc3R1
cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKaW5kZXggMmM0ODdiODA1ZDg2ODM3MWRlYmI5MTI1OGFkYjc0YzI1MjY3
OTQ2Ny4uODljNzMwZjhjMDRlMjM4MTg1NDBlMzI1NTQ0MTEzZDY0MGE3OTg0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTE5LDcgKzExOSw2IEBA
CiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdG9ySW1wbC5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgogI2luY2x1ZGUgIlVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5o
IgpAQCAtMTY4LDYgKzE2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+
CiAKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJl
Q3VydmVGYWN0b3J5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKICNpbmNs
dWRlICJUb3VjaERpc2FtYmlndWF0aW9uLmgiCiAjZW5kaWYKQEAgLTY5Myw3ICs2OTMsOCBAQCBi
b29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50
JiBldmVudCkKICAgICAgICAgbV9sYXN0V2hlZWxHbG9iYWxQb3NpdGlvbiA9IFdlYlBvaW50KGV2
ZW50Lmdsb2JhbFgsIGV2ZW50Lmdsb2JhbFkpOwogICAgICAgICBtX2ZsaW5nTW9kaWZpZXIgPSBl
dmVudC5tb2RpZmllcnM7CiAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoZSBjdXJ2ZSBwYXJhbWV0
cml6YWJsZSBmcm9tIHRoZSBicm93c2VyLgotICAgICAgICBtX2dlc3R1cmVBbmltYXRpb24gPSBB
Y3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShUb3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGV2ZW50LmRlbHRhWCwgZXZlbnQuZGVs
dGFZKSksIHRoaXMpOworICAgICAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5n
Q3VydmUgPSBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnk6OmdldCgpLT5jcmVhdGVDdXJ2ZShl
dmVudC5tb2RpZmllcnMsIEZsb2F0UG9pbnQoZXZlbnQuZGVsdGFYLCBldmVudC5kZWx0YVkpKTsK
KyAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0
aW9uOjpjcmVhdGUoZmxpbmdDdXJ2ZS5yZWxlYXNlKCksIHRoaXMpOwogICAgICAgICBzY2hlZHVs
ZUFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC03ODUsNyArNzg2
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9u
KGNvbnN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXIKICAgICBtX2xhc3RXaGVlbFBvc2l0aW9uID0g
cGFyYW1ldGVycy5wb2ludDsKICAgICBtX2xhc3RXaGVlbEdsb2JhbFBvc2l0aW9uID0gcGFyYW1l
dGVycy5nbG9iYWxQb2ludDsKICAgICBtX2ZsaW5nTW9kaWZpZXIgPSBwYXJhbWV0ZXJzLm1vZGlm
aWVyczsKLSAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGN1cnZlID0gVG91Y2hwYWRG
bGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUocGFyYW1ldGVycy5kZWx0YSwgSW50UG9p
bnQocGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsKSk7CisgICAgT3duUHRyPFBsYXRmb3JtR2Vz
dHVyZUN1cnZlPiBjdXJ2ZSA9IFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNy
ZWF0ZUN1cnZlKG1fZmxpbmdNb2RpZmllciwgcGFyYW1ldGVycy5kZWx0YSwgSW50UG9pbnQocGFy
YW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsKSk7CiAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoY3VydmUucmVsZWFzZSgpLCB0aGlz
LCBwYXJhbWV0ZXJzLnN0YXJ0VGltZSk7CiAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5OTZiNGNj
M2RjNzk3NDNiMGVjYjQ5MzUwZTg1ZDQ3NjgyYWY1MzkyLi5kYWIyMzRmMmI1N2Q0YjUyMWJiYjFk
MWNjNWJlNDRlYWMwZjFjMGM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDktMDQgIFJvYmVydCBLcm9lZ2Vy
ICA8cmprcm9lZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRW5hYmxlIGRp
ZmZlcmVudCBmbGluZyBiZWhhdmlvdXIgZm9yIHRvdWNoc2NyZWVuIGFuZCB0b3VjaHBhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBjYXBhYmls
aXR5IHRvIHNldCB0aGUgZGV2aWNlIHNvdXJjZSBmbGFnIHRvIFdlYkdlc3R1cmVFdmVudCBpbnN0
YW5jZXMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2
ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjpnZXN0dXJlRXZlbnQpOgorCiAy
MDEyLTA5LTAxICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIFJlbW92ZSBoYXJkLWNvZGVkIHNraXBwZWQgZGlyZWN0
b3JpZXMgaW4gY2hyb21pdW1fYW5kcm9pZC5weQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAppbmRleCBjYWZhY2E5
YWNkN2NkODY0ZDczOTRmZTc1MjY0MTdjNDc0YTI5N2QyLi5hZTNkMjdhZDViZGU3ZmUzOTRhN2Fi
NThmOWY3OTdmYWY5YmJmMzFjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcApAQCAtMTE0OCw5ICsxMTQ4LDE1
IEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHR5
cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYKIAogICAgIFdlYlBvaW50IHBvaW50KGFyZ3VtZW50
c1swXS50b0ludDMyKCksIGFyZ3VtZW50c1sxXS50b0ludDMyKCkpOwogCisgICAgYm9vbCBzb3Vy
Y2VkRnJvbVRvdWNoU2NyZWVuID0gZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAy
ICYmIGFyZ3VtZW50c1syXS5pc0Jvb2woKSkKKyAgICAgICAgc291cmNlZEZyb21Ub3VjaFNjcmVl
biA9IHRydWU7CisKICAgICBXZWJHZXN0dXJlRXZlbnQgZXZlbnQ7CiAgICAgZXZlbnQudHlwZSA9
IHR5cGU7CiAKKyAgICBpZiAoc291cmNlZEZyb21Ub3VjaFNjcmVlbikKKyAgICAgICAgZXZlbnQu
bW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6OlRvdWNoU2NyZWVuU291cmNlZDsKICAgICBzd2l0
Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6
CiAgICAgICAgIGV2ZW50LmRlbHRhWCA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNbMF0u
dG9Eb3VibGUoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162242</attachid>
            <date>2012-09-05 07:28:10 -0700</date>
            <delta_ts>2012-09-05 12:43:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95756-20120905102752.patch</filename>
            <type>text/plain</type>
            <size>11543</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y0YmQ4NTEzZDdiYzNi
MmQwYTJhOTkyZjFkYmViNzUzYTI1NzljYi4uYTE5ZGFiMjQxNzFjNzZiYmE5Y2I3Nzc4OGNlNTQx
ZjJhNTBkNDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTA0ICBSb2Jl
cnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEVuYWJsZSBkaWZmZXJlbnQgZmxpbmcgYmVoYXZpb3VyIGZvciB0b3VjaHNjcmVlbiBhbmQgdG91
Y2hwYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGEgZmxhZyBvbiBXZWJHZXN0dXJlRXZlbnRzIHRoYXQgZGlmZmVyZW50aWF0
ZXMgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAgICAgZXZlbnRzIGJ5IHRoZWlyIG9yaWdpbmF0aW5n
IGRldmljZSBhbmQgcGFzcyB0aGlzIGZsYWcgdG8gYSBmYWN0b3J5IHRoYXQgcHJvZHVjZXMKKyAg
ICAgICAgZGlmZmVyZW50IGRldmljZSAgc3BlY2lmaWMgZmxpbmcgY3VydmVzIGJhc2VkIG9uIHRo
ZSB2YWx1ZSBvZiB0aGUgZmxhZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCBhbmQgdW5pdCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
UGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcDogTW9kaWZpZWQgIGZhY3RvcnkKKyAgICAg
ICAgZW50cnkgcG9pbnQgZm9yIGNvbnN0cnVjdGluZyBmbGluZyBjdXJ2ZSBmb3IgZGlmZmVyZW50
IGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6
Y3JlYXRlQ3VydmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZv
cm1HZXN0dXJlQ3VydmVGYWN0b3J5Lmg6CisgICAgICAgIChQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZh
Y3RvcnkpOgorCiAyMDEyLTA5LTAzICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tp
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdW0VGTF0gJ2RpY3RJdGVyJyBpdGVyYXRvciBp
cyBub3QgaW5pdGlhbGl6ZWQgZm9yIGFuIGlubmVyIGxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZDVlNDE4ZGMzZTUyMWZkMTg0NDQ4NmE5ZTZjZWU0YTExYTIyMTEyZC4uODUxZWIw
YWY0YjcyYTU0OWU3ZTY0YTcyMGNkZDk1YWIyMTRkNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wOS0wNCAgUm9iZXJ0IEtyb2VnZXIgIDxyamty
b2VnZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFbmFibGUgZGlmZmVyZW50
IGZsaW5nIGJlaGF2aW91ciBmb3IgdG91Y2hzY3JlZW4gYW5kIHRvdWNocGFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTc1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIGZs
YWcgb24gV2ViR2VzdHVyZUV2ZW50cyB0aGF0IGRpZmZlcmVudGlhdGVzIEdlc3R1cmVGbGluZ1N0
YXJ0CisgICAgICAgIGV2ZW50cyBieSB0aGVpciBvcmlnaW5hdGluZyBkZXZpY2UgYW5kIHBhc3Mg
dGhpcyBmbGFnIHRvIGEgZmFjdG9yeSB0aGF0IHByb2R1Y2VzCisgICAgICAgIGRpZmZlcmVudCBk
ZXZpY2UgIHNwZWNpZmljIGZsaW5nIGN1cnZlcyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgdGhlIGZs
YWcuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKTogU3RvcmUgc291cmNlIGRl
dmljZSBmb3IgdHJhbnNmZXIgdG8gbWFpbnRocmVhZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQWN0
aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM6OldlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOiBBZGRlZCBzb3VyY2UgZGV2aWNlIGZs
YWcgdG8gV2ViR2VzdHVyZUV2ZW50LgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmcpOiAgVXNlIGZhY3RvcnkgdG8KKyAgICAgICAgb2J0
YWluIGRldmljZS1hcHByb3ByaWF0ZSBmbGluZyBjdXJ2ZS4KKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2
ZW50KTogVXNlIGZhY3RvcnkgdG8gb2J0YWluIGRldmljZS1hcHByb3ByaWF0ZQorICAgICAgICBm
bGluZyBjdXJ2ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRyYW5zZmVyQWN0aXZl
V2hlZWxGbGluZ0FuaW1hdGlvbik6CisKIDIwMTItMDktMDEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNocm9taXVtIGJ1aWxkZml4
IHdoZW4gdXNlX2xpYmNjX2Zvcl9jb21wb3NpdG9yPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1H
ZXN0dXJlQ3VydmVGYWN0b3J5LmNwcAppbmRleCA1MGRjY2YzOWYyZGJjZWU5MmI4ZGI2ODVkMWJi
ZTU3NjVhNzA3OTc4Li4xMGZmNDdlODVkMWNhZTk0ZWNjNDRkZjBmYmI5YTQzNDg1ZTY0N2NiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRm
b3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuY3BwCkBAIC0yNCwx
MiArMjQsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCIKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgiCiAjaW5jbHVkZSAiV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRl
ci5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTM5LDE1ICs0MSwyMCBAQCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkqIFBsYXRmb3Jt
R2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCkKICAgICByZXR1cm4gJmZhY3Rvcnk7CiB9CiAKLVBh
c3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmU+IFBsYXRmb3JtR2VzdHVyZUN1
cnZlRmFjdG9yeTo6Y3JlYXRlQ3VydmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJhbmdlKQorUGFzc093blB0cjxXZWJDb3JlOjpQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZT4gUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpjcmVhdGVDdXJ2
ZShpbnQgZGV2aWNlU291cmNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludCwgV2Vi
Q29yZTo6SW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCkKIHsKICAgICBPd25QdHI8V2ViRmxpbmdB
bmltYXRvcj4gZmxpbmdBbmltYXRvciA9IG1fbW9ja0ZsaW5nQW5pbWF0b3IucmVsZWFzZSgpOwog
ICAgIGlmICghZmxpbmdBbmltYXRvcikKICAgICAgICAgZmxpbmdBbmltYXRvciA9IGFkb3B0UHRy
KFBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZUZsaW5nQW5pbWF0b3IoKSk7CisKKyAgICAvLyBG
SVhNRTogQWRkIGEgdG91Y2gtc2NyZWVuIHNvdXJjZWQgc3BlY2lmaWMgY3VydmUuCisgICAgaWYg
KCFmbGluZ0FuaW1hdG9yICYmIChkZXZpY2VTb3VyY2UgJiBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNo
c2NyZWVuKSkKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZTo6Y3JlYXRlKHBvaW50LCBjdW11bGF0aXZlU2Nyb2xsKTsKICAgICBpZiAoIWZs
aW5nQW5pbWF0b3IpCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShwb2ludCk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpU
b3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShwb2ludCwgY3VtdWxhdGl2
ZVNjcm9sbCk7CiAKLSAgICByZXR1cm4gV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRh
cHRlcjo6Y3JlYXRlKHBvaW50LCByYW5nZSwgZmxpbmdBbmltYXRvci5yZWxlYXNlKCkpOworICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhlIGFkYXB0ZXIgY29kZSB3aGVuIENyT1MvV2luZG93cyBhbmQg
QW5kcm9pZCBmbGluZyBzY3JvbGxpbmcgdW5pZmljYXRpb24gaXMgIGNvbXBsZXRlLgorICAgIHJl
dHVybiBXZWJGbGluZ0FuaW1hdG9yVG9HZXN0dXJlQ3VydmVBZGFwdGVyOjpjcmVhdGUocG9pbnQs
IFdlYkNvcmU6OkludFJlY3QoKSwgZmxpbmdBbmltYXRvci5yZWxlYXNlKCkpOwogfQogCiB2b2lk
IFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6c2V0V2ViRmxpbmdBbmltYXRvckZvclRlc3Qo
UGFzc093blB0cjxXZWJGbGluZ0FuaW1hdG9yPiBtb2NrRmxpbmdBbmltYXRvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0
dXJlQ3VydmVGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5oCmluZGV4IDg1ZjdlY2M1OTE5MzYyNTQ0
ZDNkNjM3NzU2MmJkYzIwYThmYTQ5YTMuLjFhYjNiZjQ0MWE5MzU5M2I3NDRiZGIyYzA1MjI1NDU0
ODRhY2JhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaApA
QCAtMzYsNyArMzYsNyBAQCBjbGFzcyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkgewogcHVi
bGljOgogICAgIHN0YXRpYyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkqIGdldCgpOwogCi0g
ICAgUGFzc093blB0cjxXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gY3JlYXRlQ3VydmUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJhbmdl
KTsKKyAgICBQYXNzT3duUHRyPFdlYkNvcmU6OlBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGVD
dXJ2ZShpbnQgZGV2aWNlU291cmNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgV2ViQ29y
ZTo6SW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCA9IFdlYkNvcmU6OkludFBvaW50KCkpOwogICAg
IHZvaWQgc2V0V2ViRmxpbmdBbmltYXRvckZvclRlc3QoUGFzc093blB0cjxXZWJGbGluZ0FuaW1h
dG9yPik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaAppbmRleCBlZjI3N2Q1
ZmQ0YzY3ZGYxYTI0MWZhNmFhMmNiMjVjYTQ5NjRhYjRjLi44ODNiOTFkZThhMTI4ZDk1ZDdhMDA3
OTA2NDVkOGVmZjc4YjcwODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgKQEAgLTM5LDEx
ICszOSwxMyBAQCBzdHJ1Y3QgV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMgewogICAgIFdl
YlBvaW50IHBvaW50OwogICAgIFdlYlBvaW50IGdsb2JhbFBvaW50OwogICAgIGludCBtb2RpZmll
cnM7CisgICAgaW50IHNvdXJjZURldmljZTsKICAgICBXZWJTaXplIGN1bXVsYXRpdmVTY3JvbGw7
CiAgICAgZG91YmxlIHN0YXJ0VGltZTsKIAogICAgIFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0
ZXJzKCkKICAgICAgICAgOiBtb2RpZmllcnMoMCkKKyAgICAgICAgLCBzb3VyY2VEZXZpY2UoMCkK
ICAgICAgICAgLCBzdGFydFRpbWUoMCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oCmluZGV4IGQxZjUxNzNlOWY4NDQyYTRlMGY0
MTI0ZTY2MjQyNWEwZDk4NmU3Y2EuLjk0YzgwOGNkZGIwZmRlODRkZWM1N2M4MGY1YTkxNzZjZjQ0
MWJhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50
LmgKQEAgLTM2NSw2ICszNjUsMTEgQEAgcHVibGljOgogCiBjbGFzcyBXZWJHZXN0dXJlRXZlbnQg
OiBwdWJsaWMgV2ViSW5wdXRFdmVudCB7CiBwdWJsaWM6CisgICAgZW51bSBTb3VyY2VEZXZpY2Ug
eworICAgICAgICBUb3VjaHBhZCAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBUb3VjaHNjcmVl
biAgICAgID0gMSA8PCAxLAorICAgIH07CisKICAgICBpbnQgeDsKICAgICBpbnQgeTsKICAgICBp
bnQgZ2xvYmFsWDsKQEAgLTM5OCw2ICs0MDMsNyBAQCBwdWJsaWM6CiAgICAgICBzdHJ1Y3Qgewog
ICAgICAgICBmbG9hdCB2ZWxvY2l0eVg7CiAgICAgICAgIGZsb2F0IHZlbG9jaXR5WTsKKyAgICAg
ICAgaW50IHNvdXJjZURldmljZTsKICAgICAgIH0gZmxpbmdTdGFydDsKIAogICAgICAgc3RydWN0
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAppbmRleCA4MDg0ZDcxNWM3YjAyYTU3OGU0MWVjYmEz
ZTk5Mzg0ZjY0MmFkMmU5Li45MWNhYmVkZTNkZWZhZjY1N2QxYTUyZWUyM2E0MGJkMjRkOTJlMTFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCkBAIC0yOSw4ICsyOSw4IEBACiAKICNpbmNsdWRl
ICJDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJDQ1Byb3h5LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1H
ZXN0dXJlQ3VydmVUYXJnZXQuaCIKLSNpbmNsdWRlICJUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0
dXJlQ3VydmUuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvckltcGwuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50Lmgi
CkBAIC0yNjcsMTIgKzI2NywxMyBAQCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6RXZl
bnREaXNwb3NpdGlvbiBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aAogICAgIHN3aXRj
aCAoc2Nyb2xsU3RhdHVzKSB7CiAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xs
U3RhcnRlZDogewogICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgiY2MiLCAiV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6c3RhcnRlZCIpOwotICAg
ICAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3VydmUgPSBUb3VjaHBhZEZs
aW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGdlc3R1cmVFdmVudC5k
ZWx0YVgsIGdlc3R1cmVFdmVudC5kZWx0YVkpKTsKKyAgICAgICAgT3duUHRyPFBsYXRmb3JtR2Vz
dHVyZUN1cnZlPiBmbGluZ0N1cnZlID0gUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpnZXQo
KS0+Y3JlYXRlQ3VydmUoZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2Us
IEZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50LmRlbHRhWCwgZ2VzdHVyZUV2ZW50LmRlbHRhWSkpOwog
ICAgICAgICBtX3doZWVsRmxpbmdBbmltYXRpb24gPSBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246
OmNyZWF0ZShQbGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmNyZWF0ZShmbGluZ0N1
cnZlLnJlbGVhc2UoKSksIHRoaXMpOwogICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmRl
bHRhID0gV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGVsdGFYLCBnZXN0dXJlRXZlbnQuZGVs
dGFZKTsKICAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5wb2ludCA9IFdlYlBvaW50KGdl
c3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSk7CiAgICAgICAgIG1fd2hlZWxGbGluZ1BhcmFt
ZXRlcnMuZ2xvYmFsUG9pbnQgPSBXZWJQb2ludChnZXN0dXJlRXZlbnQuZ2xvYmFsWCwgZ2VzdHVy
ZUV2ZW50Lmdsb2JhbFkpOwogICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLm1vZGlmaWVy
cyA9IGdlc3R1cmVFdmVudC5tb2RpZmllcnM7CisgICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRl
cnMuc291cmNlRGV2aWNlID0gZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZp
Y2U7CiAgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY2hlZHVsZUFuaW1hdGlvbigpOwog
ICAgICAgICByZXR1cm4gRGlkSGFuZGxlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyYzQ4N2I4MDVkODY4MzcxZGViYjkxMjU4YWRiNzRj
MjUyNjc5NDY3Li40OTZjYTI1Y2M2YWE3ZGI0YmE1ZjExY2MyNzVjM2EwMWIxNDI0ZmEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMTksNyArMTE5
LDYgQEAKICNpbmNsdWRlICJUZXh0RmllbGREZWNvcmF0b3JJbXBsLmgiCiAjaW5jbHVkZSAiVGV4
dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJUb3VjaHBhZEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgiCkBAIC0xNjgsNiArMTY3LDcgQEAKICNpbmNsdWRlIDx3dGYvVWludDhDbGFtcGVkQXJy
YXkuaD4KIAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZUZhY3RvcnkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgog
I2luY2x1ZGUgIlRvdWNoRGlzYW1iaWd1YXRpb24uaCIKICNlbmRpZgpAQCAtNjkzLDcgKzY5Myw4
IEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJl
RXZlbnQmIGV2ZW50KQogICAgICAgICBtX2xhc3RXaGVlbEdsb2JhbFBvc2l0aW9uID0gV2ViUG9p
bnQoZXZlbnQuZ2xvYmFsWCwgZXZlbnQuZ2xvYmFsWSk7CiAgICAgICAgIG1fZmxpbmdNb2RpZmll
ciA9IGV2ZW50Lm1vZGlmaWVyczsKICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhlIGN1cnZlIHBh
cmFtZXRyaXphYmxlIGZyb20gdGhlIGJyb3dzZXIuCi0gICAgICAgIG1fZ2VzdHVyZUFuaW1hdGlv
biA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3JlYXRlKFRvdWNocGFkRmxpbmdQ
bGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZlbnQuZGVsdGFYLCBldmVu
dC5kZWx0YVkpKSwgdGhpcyk7CisgICAgICAgIE93blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4g
ZmxpbmdDdXJ2ZSA9IFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1
cnZlKGV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2UsIEZsb2F0UG9pbnQoZXZlbnQu
ZGVsdGFYLCBldmVudC5kZWx0YVkpKTsKKyAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoZmxpbmdDdXJ2ZS5yZWxlYXNlKCks
IHRoaXMpOwogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CkBAIC03ODUsNyArNzg2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dHJhbnNmZXJB
Y3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9uKGNvbnN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXIKICAg
ICBtX2xhc3RXaGVlbFBvc2l0aW9uID0gcGFyYW1ldGVycy5wb2ludDsKICAgICBtX2xhc3RXaGVl
bEdsb2JhbFBvc2l0aW9uID0gcGFyYW1ldGVycy5nbG9iYWxQb2ludDsKICAgICBtX2ZsaW5nTW9k
aWZpZXIgPSBwYXJhbWV0ZXJzLm1vZGlmaWVyczsKLSAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJl
Q3VydmU+IGN1cnZlID0gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUo
cGFyYW1ldGVycy5kZWx0YSwgSW50UG9pbnQocGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsKSk7
CisgICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSA9IFBsYXRmb3JtR2VzdHVy
ZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1cnZlKHBhcmFtZXRlcnMuc291cmNlRGV2aWNl
LCBwYXJhbWV0ZXJzLmRlbHRhLCBJbnRQb2ludChwYXJhbWV0ZXJzLmN1bXVsYXRpdmVTY3JvbGwp
KTsKICAgICBtX2dlc3R1cmVBbmltYXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRp
b246OmNyZWF0ZShjdXJ2ZS5yZWxlYXNlKCksIHRoaXMsIHBhcmFtZXRlcnMuc3RhcnRUaW1lKTsK
ICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162304</attachid>
            <date>2012-09-05 12:43:48 -0700</date>
            <delta_ts>2012-09-05 13:35:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95756-20120905154329.patch</filename>
            <type>text/plain</type>
            <size>11511</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y0YmQ4NTEzZDdiYzNi
MmQwYTJhOTkyZjFkYmViNzUzYTI1NzljYi4uYTE5ZGFiMjQxNzFjNzZiYmE5Y2I3Nzc4OGNlNTQx
ZjJhNTBkNDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTA0ICBSb2Jl
cnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEVuYWJsZSBkaWZmZXJlbnQgZmxpbmcgYmVoYXZpb3VyIGZvciB0b3VjaHNjcmVlbiBhbmQgdG91
Y2hwYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGEgZmxhZyBvbiBXZWJHZXN0dXJlRXZlbnRzIHRoYXQgZGlmZmVyZW50aWF0
ZXMgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAgICAgZXZlbnRzIGJ5IHRoZWlyIG9yaWdpbmF0aW5n
IGRldmljZSBhbmQgcGFzcyB0aGlzIGZsYWcgdG8gYSBmYWN0b3J5IHRoYXQgcHJvZHVjZXMKKyAg
ICAgICAgZGlmZmVyZW50IGRldmljZSAgc3BlY2lmaWMgZmxpbmcgY3VydmVzIGJhc2VkIG9uIHRo
ZSB2YWx1ZSBvZiB0aGUgZmxhZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCBhbmQgdW5pdCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
UGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcDogTW9kaWZpZWQgIGZhY3RvcnkKKyAgICAg
ICAgZW50cnkgcG9pbnQgZm9yIGNvbnN0cnVjdGluZyBmbGluZyBjdXJ2ZSBmb3IgZGlmZmVyZW50
IGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6
Y3JlYXRlQ3VydmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZv
cm1HZXN0dXJlQ3VydmVGYWN0b3J5Lmg6CisgICAgICAgIChQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZh
Y3RvcnkpOgorCiAyMDEyLTA5LTAzICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tp
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdW0VGTF0gJ2RpY3RJdGVyJyBpdGVyYXRvciBp
cyBub3QgaW5pdGlhbGl6ZWQgZm9yIGFuIGlubmVyIGxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZDVlNDE4ZGMzZTUyMWZkMTg0NDQ4NmE5ZTZjZWU0YTExYTIyMTEyZC4uODUxZWIw
YWY0YjcyYTU0OWU3ZTY0YTcyMGNkZDk1YWIyMTRkNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wOS0wNCAgUm9iZXJ0IEtyb2VnZXIgIDxyamty
b2VnZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFbmFibGUgZGlmZmVyZW50
IGZsaW5nIGJlaGF2aW91ciBmb3IgdG91Y2hzY3JlZW4gYW5kIHRvdWNocGFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTc1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIGZs
YWcgb24gV2ViR2VzdHVyZUV2ZW50cyB0aGF0IGRpZmZlcmVudGlhdGVzIEdlc3R1cmVGbGluZ1N0
YXJ0CisgICAgICAgIGV2ZW50cyBieSB0aGVpciBvcmlnaW5hdGluZyBkZXZpY2UgYW5kIHBhc3Mg
dGhpcyBmbGFnIHRvIGEgZmFjdG9yeSB0aGF0IHByb2R1Y2VzCisgICAgICAgIGRpZmZlcmVudCBk
ZXZpY2UgIHNwZWNpZmljIGZsaW5nIGN1cnZlcyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgdGhlIGZs
YWcuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKTogU3RvcmUgc291cmNlIGRl
dmljZSBmb3IgdHJhbnNmZXIgdG8gbWFpbnRocmVhZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQWN0
aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM6OldlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOiBBZGRlZCBzb3VyY2UgZGV2aWNlIGZs
YWcgdG8gV2ViR2VzdHVyZUV2ZW50LgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmcpOiAgVXNlIGZhY3RvcnkgdG8KKyAgICAgICAgb2J0
YWluIGRldmljZS1hcHByb3ByaWF0ZSBmbGluZyBjdXJ2ZS4KKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2
ZW50KTogVXNlIGZhY3RvcnkgdG8gb2J0YWluIGRldmljZS1hcHByb3ByaWF0ZQorICAgICAgICBm
bGluZyBjdXJ2ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRyYW5zZmVyQWN0aXZl
V2hlZWxGbGluZ0FuaW1hdGlvbik6CisKIDIwMTItMDktMDEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNocm9taXVtIGJ1aWxkZml4
IHdoZW4gdXNlX2xpYmNjX2Zvcl9jb21wb3NpdG9yPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1H
ZXN0dXJlQ3VydmVGYWN0b3J5LmNwcAppbmRleCA1MGRjY2YzOWYyZGJjZWU5MmI4ZGI2ODVkMWJi
ZTU3NjVhNzA3OTc4Li41M2M5MjhmOGY4OWZlMTY0MGYwZmU0MWQzNjEwN2YyNjMxMGRhZDBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRm
b3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuY3BwCkBAIC0yNCwx
MiArMjQsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCIKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgiCiAjaW5jbHVkZSAiV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRl
ci5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTM5LDE1ICs0MSwyMCBAQCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkqIFBsYXRmb3Jt
R2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCkKICAgICByZXR1cm4gJmZhY3Rvcnk7CiB9CiAKLVBh
c3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmU+IFBsYXRmb3JtR2VzdHVyZUN1
cnZlRmFjdG9yeTo6Y3JlYXRlQ3VydmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJhbmdlKQorUGFzc093blB0cjxXZWJDb3JlOjpQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZT4gUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpjcmVhdGVDdXJ2
ZShpbnQgZGV2aWNlU291cmNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludCwgV2Vi
Q29yZTo6SW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCkKIHsKICAgICBPd25QdHI8V2ViRmxpbmdB
bmltYXRvcj4gZmxpbmdBbmltYXRvciA9IG1fbW9ja0ZsaW5nQW5pbWF0b3IucmVsZWFzZSgpOwog
ICAgIGlmICghZmxpbmdBbmltYXRvcikKICAgICAgICAgZmxpbmdBbmltYXRvciA9IGFkb3B0UHRy
KFBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZUZsaW5nQW5pbWF0b3IoKSk7CisKKyAgICAvLyBG
SVhNRTogQWRkIGEgdG91Y2gtc2NyZWVuIHNvdXJjZWQgc3BlY2lmaWMgY3VydmUuCisgICAgaWYg
KCFmbGluZ0FuaW1hdG9yICYmIGRldmljZVNvdXJjZSA9PSBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNo
c2NyZWVuKQorICAgICAgICByZXR1cm4gV2ViQ29yZTo6VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2Vz
dHVyZUN1cnZlOjpjcmVhdGUocG9pbnQsIGN1bXVsYXRpdmVTY3JvbGwpOwogICAgIGlmICghZmxp
bmdBbmltYXRvcikKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlRvdWNocGFkRmxpbmdQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKHBvaW50KTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlRv
dWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKHBvaW50LCBjdW11bGF0aXZl
U2Nyb2xsKTsKIAotICAgIHJldHVybiBXZWJGbGluZ0FuaW1hdG9yVG9HZXN0dXJlQ3VydmVBZGFw
dGVyOjpjcmVhdGUocG9pbnQsIHJhbmdlLCBmbGluZ0FuaW1hdG9yLnJlbGVhc2UoKSk7CisgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGUgYWRhcHRlciBjb2RlIHdoZW4gQ3JPUy9XaW5kb3dzIGFuZCBB
bmRyb2lkIGZsaW5nIHNjcm9sbGluZyB1bmlmaWNhdGlvbiBpcyAgY29tcGxldGUuCisgICAgcmV0
dXJuIFdlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXI6OmNyZWF0ZShwb2ludCwg
V2ViQ29yZTo6SW50UmVjdCgpLCBmbGluZ0FuaW1hdG9yLnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQg
UGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpzZXRXZWJGbGluZ0FuaW1hdG9yRm9yVGVzdChQ
YXNzT3duUHRyPFdlYkZsaW5nQW5pbWF0b3I+IG1vY2tGbGluZ0FuaW1hdG9yKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1
cmVDdXJ2ZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgKaW5kZXggODVmN2VjYzU5MTkzNjI1NDRk
M2Q2Mzc3NTYyYmRjMjBhOGZhNDlhMy4uMWFiM2JmNDQxYTkzNTkzYjc0NGJkYjJjMDUyMjU0NTQ4
NGFjYmEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5oCkBA
IC0zNiw3ICszNiw3IEBAIGNsYXNzIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeSogZ2V0KCk7CiAKLSAg
ICBQYXNzT3duUHRyPFdlYkNvcmU6OlBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGVDdXJ2ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmFuZ2Up
OworICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZUN1
cnZlKGludCBkZXZpY2VTb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBXZWJDb3Jl
OjpJbnRQb2ludCBjdW11bGF0aXZlU2Nyb2xsID0gV2ViQ29yZTo6SW50UG9pbnQoKSk7CiAgICAg
dm9pZCBzZXRXZWJGbGluZ0FuaW1hdG9yRm9yVGVzdChQYXNzT3duUHRyPFdlYkZsaW5nQW5pbWF0
b3I+KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oCmluZGV4IGVmMjc3ZDVm
ZDRjNjdkZjFhMjQxZmE2YWEyY2IyNWNhNDk2NGFiNGMuLjg4M2I5MWRlOGExMjhkOTVkN2EwMDc5
MDY0NWQ4ZWZmNzhiNzA4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaApAQCAtMzksMTEg
KzM5LDEzIEBAIHN0cnVjdCBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyB7CiAgICAgV2Vi
UG9pbnQgcG9pbnQ7CiAgICAgV2ViUG9pbnQgZ2xvYmFsUG9pbnQ7CiAgICAgaW50IG1vZGlmaWVy
czsKKyAgICBpbnQgc291cmNlRGV2aWNlOwogICAgIFdlYlNpemUgY3VtdWxhdGl2ZVNjcm9sbDsK
ICAgICBkb3VibGUgc3RhcnRUaW1lOwogCiAgICAgV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRl
cnMoKQogICAgICAgICA6IG1vZGlmaWVycygwKQorICAgICAgICAsIHNvdXJjZURldmljZSgwKQog
ICAgICAgICAsIHN0YXJ0VGltZSgwKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKaW5kZXggZDFmNTE3M2U5Zjg0NDJhNGUwZjQx
MjRlNjYyNDI1YTBkOTg2ZTdjYS4uZWJmNjVkNGI0NzhlYzk2NjFmYzI5NGY1ZTkwNTA1MWE0Yzc5
ZjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRF
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQu
aApAQCAtMzY1LDYgKzM2NSwxMSBAQCBwdWJsaWM6CiAKIGNsYXNzIFdlYkdlc3R1cmVFdmVudCA6
IHB1YmxpYyBXZWJJbnB1dEV2ZW50IHsKIHB1YmxpYzoKKyAgICBlbnVtIFNvdXJjZURldmljZSB7
CisgICAgICAgIFRvdWNocGFkLAorICAgICAgICBUb3VjaHNjcmVlbiwKKyAgICB9OworCiAgICAg
aW50IHg7CiAgICAgaW50IHk7CiAgICAgaW50IGdsb2JhbFg7CkBAIC0zOTgsNiArNDAzLDcgQEAg
cHVibGljOgogICAgICAgc3RydWN0IHsKICAgICAgICAgZmxvYXQgdmVsb2NpdHlYOwogICAgICAg
ICBmbG9hdCB2ZWxvY2l0eVk7CisgICAgICAgIGludCBzb3VyY2VEZXZpY2U7CiAgICAgICB9IGZs
aW5nU3RhcnQ7CiAKICAgICAgIHN0cnVjdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXgg
ODA4NGQ3MTVjN2IwMmE1NzhlNDFlY2JhM2U5OTM4NGY2NDJhZDJlOS4uOTFjYWJlZGUzZGVmYWY2
NTdkMWE1MmVlMjNhNDBiZDI0ZDkyZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAt
MjksOCArMjksOCBAQAogCiAjaW5jbHVkZSAiQ0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uLmgiCiAj
aW5jbHVkZSAiQ0NQcm94eS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9y
eS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0LmgiCi0jaW5jbHVkZSAi
VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVu
dC5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckNsaWVudC5oIgpAQCAtMjY3LDEyICsyNjcsMTMgQEAgV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckltcGw6OkV2ZW50RGlzcG9zaXRpb24gV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGw6OmgKICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykgewogICAgIGNhc2UgQ0NJ
bnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6IHsKICAgICAgICAgVFJBQ0VfRVZFTlRf
SU5TVEFOVDAoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0
dXJlRmxpbmc6OnN0YXJ0ZWQiKTsKLSAgICAgICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZl
PiBmbGluZ0N1cnZlID0gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUo
RmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGVsdGFYLCBnZXN0dXJlRXZlbnQuZGVsdGFZKSk7Cisg
ICAgICAgIE93blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9IFBsYXRmb3Jt
R2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1cnZlKGdlc3R1cmVFdmVudC5kYXRh
LmZsaW5nU3RhcnQuc291cmNlRGV2aWNlLCBGbG9hdFBvaW50KGdlc3R1cmVFdmVudC5kZWx0YVgs
IGdlc3R1cmVFdmVudC5kZWx0YVkpKTsKICAgICAgICAgbV93aGVlbEZsaW5nQW5pbWF0aW9uID0g
Q0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoUGxhdGZvcm1HZXN0dXJlVG9DQ0dlc3R1
cmVBZGFwdGVyOjpjcmVhdGUoZmxpbmdDdXJ2ZS5yZWxlYXNlKCkpLCB0aGlzKTsKICAgICAgICAg
bV93aGVlbEZsaW5nUGFyYW1ldGVycy5kZWx0YSA9IFdlYkZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50
LmRlbHRhWCwgZ2VzdHVyZUV2ZW50LmRlbHRhWSk7CiAgICAgICAgIG1fd2hlZWxGbGluZ1BhcmFt
ZXRlcnMucG9pbnQgPSBXZWJQb2ludChnZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpOwog
ICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmdsb2JhbFBvaW50ID0gV2ViUG9pbnQoZ2Vz
dHVyZUV2ZW50Lmdsb2JhbFgsIGdlc3R1cmVFdmVudC5nbG9iYWxZKTsKICAgICAgICAgbV93aGVl
bEZsaW5nUGFyYW1ldGVycy5tb2RpZmllcnMgPSBnZXN0dXJlRXZlbnQubW9kaWZpZXJzOworICAg
ICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnNvdXJjZURldmljZSA9IGdlc3R1cmVFdmVudC5k
YXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNlOwogICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVu
dC0+c2NoZWR1bGVBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuIERpZEhhbmRsZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMmM0ODdi
ODA1ZDg2ODM3MWRlYmI5MTI1OGFkYjc0YzI1MjY3OTQ2Ny4uNDk2Y2EyNWNjNmFhN2RiNGJhNWYx
MWNjMjc1YzNhMDFiMTQyNGZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtMTE5LDcgKzExOSw2IEBACiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3Jh
dG9ySW1wbC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
Ci0jaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCiAjaW5jbHVk
ZSAiVHJhY2VFdmVudC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5j
bHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgpAQCAtMTY4LDYgKzE2Nyw3IEBACiAjaW5j
bHVkZSA8d3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKICNpbmNsdWRlICJUb3VjaERpc2FtYmlndWF0aW9uLmgi
CiAjZW5kaWYKQEAgLTY5Myw3ICs2OTMsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0
dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKICAgICAgICAgbV9sYXN0V2hl
ZWxHbG9iYWxQb3NpdGlvbiA9IFdlYlBvaW50KGV2ZW50Lmdsb2JhbFgsIGV2ZW50Lmdsb2JhbFkp
OwogICAgICAgICBtX2ZsaW5nTW9kaWZpZXIgPSBldmVudC5tb2RpZmllcnM7CiAgICAgICAgIC8v
IEZJWE1FOiBNYWtlIHRoZSBjdXJ2ZSBwYXJhbWV0cml6YWJsZSBmcm9tIHRoZSBicm93c2VyLgot
ICAgICAgICBtX2dlc3R1cmVBbmltYXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRp
b246OmNyZWF0ZShUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9h
dFBvaW50KGV2ZW50LmRlbHRhWCwgZXZlbnQuZGVsdGFZKSksIHRoaXMpOworICAgICAgICBPd25Q
dHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3VydmUgPSBQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZUZhY3Rvcnk6OmdldCgpLT5jcmVhdGVDdXJ2ZShldmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNl
RGV2aWNlLCBGbG9hdFBvaW50KGV2ZW50LmRlbHRhWCwgZXZlbnQuZGVsdGFZKSk7CisgICAgICAg
IG1fZ2VzdHVyZUFuaW1hdGlvbiA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3Jl
YXRlKGZsaW5nQ3VydmUucmVsZWFzZSgpLCB0aGlzKTsKICAgICAgICAgc2NoZWR1bGVBbmltYXRp
b24oKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtNzg1LDcgKzc4Niw3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnRyYW5zZmVyQWN0aXZlV2hlZWxGbGluZ0FuaW1hdGlvbihjb25zdCBX
ZWJBY3RpdmVXaGVlbEZsaW5nUGFyCiAgICAgbV9sYXN0V2hlZWxQb3NpdGlvbiA9IHBhcmFtZXRl
cnMucG9pbnQ7CiAgICAgbV9sYXN0V2hlZWxHbG9iYWxQb3NpdGlvbiA9IHBhcmFtZXRlcnMuZ2xv
YmFsUG9pbnQ7CiAgICAgbV9mbGluZ01vZGlmaWVyID0gcGFyYW1ldGVycy5tb2RpZmllcnM7Ci0g
ICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSA9IFRvdWNocGFkRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKHBhcmFtZXRlcnMuZGVsdGEsIEludFBvaW50KHBhcmFt
ZXRlcnMuY3VtdWxhdGl2ZVNjcm9sbCkpOworICAgIE93blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZT4gY3VydmUgPSBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnk6OmdldCgpLT5jcmVhdGVDdXJ2
ZShwYXJhbWV0ZXJzLnNvdXJjZURldmljZSwgcGFyYW1ldGVycy5kZWx0YSwgSW50UG9pbnQocGFy
YW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsKSk7CiAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoY3VydmUucmVsZWFzZSgpLCB0aGlz
LCBwYXJhbWV0ZXJzLnN0YXJ0VGltZSk7CiAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162321</attachid>
            <date>2012-09-05 13:35:37 -0700</date>
            <delta_ts>2012-09-06 08:16:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95756-20120905163519.patch</filename>
            <type>text/plain</type>
            <size>11669</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y0YmQ4NTEzZDdiYzNi
MmQwYTJhOTkyZjFkYmViNzUzYTI1NzljYi4uYTE5ZGFiMjQxNzFjNzZiYmE5Y2I3Nzc4OGNlNTQx
ZjJhNTBkNDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTA0ICBSb2Jl
cnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEVuYWJsZSBkaWZmZXJlbnQgZmxpbmcgYmVoYXZpb3VyIGZvciB0b3VjaHNjcmVlbiBhbmQgdG91
Y2hwYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGEgZmxhZyBvbiBXZWJHZXN0dXJlRXZlbnRzIHRoYXQgZGlmZmVyZW50aWF0
ZXMgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAgICAgZXZlbnRzIGJ5IHRoZWlyIG9yaWdpbmF0aW5n
IGRldmljZSBhbmQgcGFzcyB0aGlzIGZsYWcgdG8gYSBmYWN0b3J5IHRoYXQgcHJvZHVjZXMKKyAg
ICAgICAgZGlmZmVyZW50IGRldmljZSAgc3BlY2lmaWMgZmxpbmcgY3VydmVzIGJhc2VkIG9uIHRo
ZSB2YWx1ZSBvZiB0aGUgZmxhZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCBhbmQgdW5pdCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
UGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcDogTW9kaWZpZWQgIGZhY3RvcnkKKyAgICAg
ICAgZW50cnkgcG9pbnQgZm9yIGNvbnN0cnVjdGluZyBmbGluZyBjdXJ2ZSBmb3IgZGlmZmVyZW50
IGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6
Y3JlYXRlQ3VydmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZv
cm1HZXN0dXJlQ3VydmVGYWN0b3J5Lmg6CisgICAgICAgIChQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZh
Y3RvcnkpOgorCiAyMDEyLTA5LTAzICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tp
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdW0VGTF0gJ2RpY3RJdGVyJyBpdGVyYXRvciBp
cyBub3QgaW5pdGlhbGl6ZWQgZm9yIGFuIGlubmVyIGxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZDVlNDE4ZGMzZTUyMWZkMTg0NDQ4NmE5ZTZjZWU0YTExYTIyMTEyZC4uODUxZWIw
YWY0YjcyYTU0OWU3ZTY0YTcyMGNkZDk1YWIyMTRkNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wOS0wNCAgUm9iZXJ0IEtyb2VnZXIgIDxyamty
b2VnZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBFbmFibGUgZGlmZmVyZW50
IGZsaW5nIGJlaGF2aW91ciBmb3IgdG91Y2hzY3JlZW4gYW5kIHRvdWNocGFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTc1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIGZs
YWcgb24gV2ViR2VzdHVyZUV2ZW50cyB0aGF0IGRpZmZlcmVudGlhdGVzIEdlc3R1cmVGbGluZ1N0
YXJ0CisgICAgICAgIGV2ZW50cyBieSB0aGVpciBvcmlnaW5hdGluZyBkZXZpY2UgYW5kIHBhc3Mg
dGhpcyBmbGFnIHRvIGEgZmFjdG9yeSB0aGF0IHByb2R1Y2VzCisgICAgICAgIGRpZmZlcmVudCBk
ZXZpY2UgIHNwZWNpZmljIGZsaW5nIGN1cnZlcyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgdGhlIGZs
YWcuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKTogU3RvcmUgc291cmNlIGRl
dmljZSBmb3IgdHJhbnNmZXIgdG8gbWFpbnRocmVhZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQWN0
aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM6OldlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOiBBZGRlZCBzb3VyY2UgZGV2aWNlIGZs
YWcgdG8gV2ViR2VzdHVyZUV2ZW50LgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmcpOiAgVXNlIGZhY3RvcnkgdG8KKyAgICAgICAgb2J0
YWluIGRldmljZS1hcHByb3ByaWF0ZSBmbGluZyBjdXJ2ZS4KKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2
ZW50KTogVXNlIGZhY3RvcnkgdG8gb2J0YWluIGRldmljZS1hcHByb3ByaWF0ZQorICAgICAgICBm
bGluZyBjdXJ2ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRyYW5zZmVyQWN0aXZl
V2hlZWxGbGluZ0FuaW1hdGlvbik6CisKIDIwMTItMDktMDEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNocm9taXVtIGJ1aWxkZml4
IHdoZW4gdXNlX2xpYmNjX2Zvcl9jb21wb3NpdG9yPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1H
ZXN0dXJlQ3VydmVGYWN0b3J5LmNwcAppbmRleCA1MGRjY2YzOWYyZGJjZWU5MmI4ZGI2ODVkMWJi
ZTU3NjVhNzA3OTc4Li5lY2Q5NzI0ZDlkZGNkOGZkOGVkZWFkNmJhOGI1NmU4ZjQwYWU0ODBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRm
b3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuY3BwCkBAIC0yNCwx
MiArMjQsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKICNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCIKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgiCiAjaW5jbHVkZSAiV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRl
ci5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTM5LDE1ICs0MSwyMCBAQCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkqIFBsYXRmb3Jt
R2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCkKICAgICByZXR1cm4gJmZhY3Rvcnk7CiB9CiAKLVBh
c3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmU+IFBsYXRmb3JtR2VzdHVyZUN1
cnZlRmFjdG9yeTo6Y3JlYXRlQ3VydmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJhbmdlKQorUGFzc093blB0cjxXZWJDb3JlOjpQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZT4gUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpjcmVhdGVDdXJ2
ZShpbnQgZGV2aWNlU291cmNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludCwgV2Vi
Q29yZTo6SW50UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCkKIHsKICAgICBPd25QdHI8V2ViRmxpbmdB
bmltYXRvcj4gZmxpbmdBbmltYXRvciA9IG1fbW9ja0ZsaW5nQW5pbWF0b3IucmVsZWFzZSgpOwog
ICAgIGlmICghZmxpbmdBbmltYXRvcikKICAgICAgICAgZmxpbmdBbmltYXRvciA9IGFkb3B0UHRy
KFBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZUZsaW5nQW5pbWF0b3IoKSk7Ci0gICAgaWYgKCFm
bGluZ0FuaW1hdG9yKQotICAgICAgICByZXR1cm4gV2ViQ29yZTo6VG91Y2hwYWRGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUocG9pbnQpOwogCi0gICAgcmV0dXJuIFdlYkZsaW5nQW5p
bWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXI6OmNyZWF0ZShwb2ludCwgcmFuZ2UsIGZsaW5nQW5p
bWF0b3IucmVsZWFzZSgpKTsKKyAgICBpZiAoZmxpbmdBbmltYXRvcikKKyAgICAgICAgcmV0dXJu
IFdlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXI6OmNyZWF0ZShwb2ludCwgV2Vi
Q29yZTo6SW50UmVjdCgpLCBmbGluZ0FuaW1hdG9yLnJlbGVhc2UoKSk7CisKKyAgICAvLyBGSVhN
RTogQWRkIGEgdG91Y2gtc2NyZWVuIHNvdXJjZWQgc3BlY2lmaWMgY3VydmUuCisgICAgaWYgKGRl
dmljZVNvdXJjZSA9PSBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNoc2NyZWVuKQorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUocG9p
bnQsIGN1bXVsYXRpdmVTY3JvbGwpOworCisgICAgcmV0dXJuIFdlYkNvcmU6OlRvdWNocGFkRmxp
bmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKHBvaW50LCBjdW11bGF0aXZlU2Nyb2xsKTsK
IH0KIAogdm9pZCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rvcnk6OnNldFdlYkZsaW5nQW5pbWF0
b3JGb3JUZXN0KFBhc3NPd25QdHI8V2ViRmxpbmdBbmltYXRvcj4gbW9ja0ZsaW5nQW5pbWF0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1Bs
YXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaAppbmRleCA4NWY3ZWNj
NTkxOTM2MjU0NGQzZDYzNzc1NjJiZGMyMGE4ZmE0OWEzLi4xYWIzYmY0NDFhOTM1OTNiNzQ0YmRi
MmMwNTIyNTQ1NDg0YWNiYTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVG
YWN0b3J5LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0
b3J5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5KiBn
ZXQoKTsKIAotICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNy
ZWF0ZUN1cnZlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiByYW5nZSk7CisgICAgUGFzc093blB0cjxXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZT4gY3JlYXRlQ3VydmUoaW50IGRldmljZVNvdXJjZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYsIFdlYkNvcmU6OkludFBvaW50IGN1bXVsYXRpdmVTY3JvbGwgPSBXZWJDb3JlOjpJbnRQb2lu
dCgpKTsKICAgICB2b2lkIHNldFdlYkZsaW5nQW5pbWF0b3JGb3JUZXN0KFBhc3NPd25QdHI8V2Vi
RmxpbmdBbmltYXRvcj4pOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgKaW5k
ZXggZWYyNzdkNWZkNGM2N2RmMWEyNDFmYTZhYTJjYjI1Y2E0OTY0YWI0Yy4uMjEzM2U4NTA4NDA5
MGNjNzI2OWY3NmY4ODM4NmFkMWMzYmI5ZGY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJz
X2gKICNkZWZpbmUgV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnNfaAogCisjaW5jbHVkZSAi
V2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbW1vbi5oIgogCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViRmxvYXRQb2ludC5oIgpAQCAtMzksMTEgKzQwLDEzIEBAIHN0cnVj
dCBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyB7CiAgICAgV2ViUG9pbnQgcG9pbnQ7CiAg
ICAgV2ViUG9pbnQgZ2xvYmFsUG9pbnQ7CiAgICAgaW50IG1vZGlmaWVyczsKKyAgICBXZWJHZXN0
dXJlRXZlbnQ6OlNvdXJjZURldmljZSBzb3VyY2VEZXZpY2U7CiAgICAgV2ViU2l6ZSBjdW11bGF0
aXZlU2Nyb2xsOwogICAgIGRvdWJsZSBzdGFydFRpbWU7CiAKICAgICBXZWJBY3RpdmVXaGVlbEZs
aW5nUGFyYW1ldGVycygpCiAgICAgICAgIDogbW9kaWZpZXJzKDApCisgICAgICAgICwgc291cmNl
RGV2aWNlKFdlYkdlc3R1cmVFdmVudDo6VG91Y2hwYWQpCiAgICAgICAgICwgc3RhcnRUaW1lKDAp
CiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklucHV0RXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RXZlbnQuaAppbmRleCBkMWY1MTczZTlmODQ0MmE0ZTBmNDEyNGU2NjI0MjVhMGQ5ODZlN2NhLi40
YjBkYzllNTU4ZjRiYTQ1OGE3NzA2NzM3MmNkZTc4ZjNmZjQ2MTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oCkBAIC0zNjUsNiArMzY1LDExIEBA
IHB1YmxpYzoKIAogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVibGljIFdlYklucHV0RXZlbnQg
ewogcHVibGljOgorICAgIGVudW0gU291cmNlRGV2aWNlIHsKKyAgICAgICAgVG91Y2hwYWQsCisg
ICAgICAgIFRvdWNoc2NyZWVuLAorICAgIH07CisKICAgICBpbnQgeDsKICAgICBpbnQgeTsKICAg
ICBpbnQgZ2xvYmFsWDsKQEAgLTM5OCw2ICs0MDMsNyBAQCBwdWJsaWM6CiAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICBmbG9hdCB2ZWxvY2l0eVg7CiAgICAgICAgIGZsb2F0IHZlbG9jaXR5WTsKKyAg
ICAgICAgU291cmNlRGV2aWNlIHNvdXJjZURldmljZTsKICAgICAgIH0gZmxpbmdTdGFydDsKIAog
ICAgICAgc3RydWN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAppbmRleCA4MDg0ZDcxNWM3YjAy
YTU3OGU0MWVjYmEzZTk5Mzg0ZjY0MmFkMmU5Li45MWNhYmVkZTNkZWZhZjY1N2QxYTUyZWUyM2E0
MGJkMjRkOTJlMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCkBAIC0yOSw4ICsyOSw4IEBA
CiAKICNpbmNsdWRlICJDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJDQ1By
b3h5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQuaCIKLSNpbmNsdWRlICJUb3VjaHBhZEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViQ29tcG9zaXRvckltcGwuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVyQ2xpZW50LmgiCkBAIC0yNjcsMTIgKzI2NywxMyBAQCBXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6RXZlbnREaXNwb3NpdGlvbiBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6
aAogICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7CiAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNs
aWVudDo6U2Nyb2xsU3RhcnRlZDogewogICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgiY2Mi
LCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6c3Rh
cnRlZCIpOwotICAgICAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3VydmUg
PSBUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KGdl
c3R1cmVFdmVudC5kZWx0YVgsIGdlc3R1cmVFdmVudC5kZWx0YVkpKTsKKyAgICAgICAgT3duUHRy
PFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBmbGluZ0N1cnZlID0gUGxhdGZvcm1HZXN0dXJlQ3VydmVG
YWN0b3J5OjpnZXQoKS0+Y3JlYXRlQ3VydmUoZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC5z
b3VyY2VEZXZpY2UsIEZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50LmRlbHRhWCwgZ2VzdHVyZUV2ZW50
LmRlbHRhWSkpOwogICAgICAgICBtX3doZWVsRmxpbmdBbmltYXRpb24gPSBDQ0FjdGl2ZUdlc3R1
cmVBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmNy
ZWF0ZShmbGluZ0N1cnZlLnJlbGVhc2UoKSksIHRoaXMpOwogICAgICAgICBtX3doZWVsRmxpbmdQ
YXJhbWV0ZXJzLmRlbHRhID0gV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGVsdGFYLCBnZXN0
dXJlRXZlbnQuZGVsdGFZKTsKICAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5wb2ludCA9
IFdlYlBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSk7CiAgICAgICAgIG1fd2hl
ZWxGbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQgPSBXZWJQb2ludChnZXN0dXJlRXZlbnQuZ2xv
YmFsWCwgZ2VzdHVyZUV2ZW50Lmdsb2JhbFkpOwogICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0
ZXJzLm1vZGlmaWVycyA9IGdlc3R1cmVFdmVudC5tb2RpZmllcnM7CisgICAgICAgIG1fd2hlZWxG
bGluZ1BhcmFtZXRlcnMuc291cmNlRGV2aWNlID0gZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFy
dC5zb3VyY2VEZXZpY2U7CiAgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY2hlZHVsZUFu
aW1hdGlvbigpOwogICAgICAgICByZXR1cm4gRGlkSGFuZGxlOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyYzQ4N2I4MDVkODY4MzcxZGVi
YjkxMjU4YWRiNzRjMjUyNjc5NDY3Li40OTZjYTI1Y2M2YWE3ZGI0YmE1ZjExY2MyNzVjM2EwMWIx
NDI0ZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBA
IC0xMTksNyArMTE5LDYgQEAKICNpbmNsdWRlICJUZXh0RmllbGREZWNvcmF0b3JJbXBsLmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJU
b3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50
LmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0LmgiCkBAIC0xNjgsNiArMTY3LDcgQEAKICNpbmNsdWRlIDx3dGYvVWlu
dDhDbGFtcGVkQXJyYXkuaD4KIAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRl
ICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVFdmVudC5oIgogI2luY2x1ZGUgIlRvdWNoRGlzYW1iaWd1YXRpb24uaCIKICNlbmRpZgpAQCAt
NjkzLDcgKzY5Myw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25z
dCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogICAgICAgICBtX2xhc3RXaGVlbEdsb2JhbFBvc2l0
aW9uID0gV2ViUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZlbnQuZ2xvYmFsWSk7CiAgICAgICAgIG1f
ZmxpbmdNb2RpZmllciA9IGV2ZW50Lm1vZGlmaWVyczsKICAgICAgICAgLy8gRklYTUU6IE1ha2Ug
dGhlIGN1cnZlIHBhcmFtZXRyaXphYmxlIGZyb20gdGhlIGJyb3dzZXIuCi0gICAgICAgIG1fZ2Vz
dHVyZUFuaW1hdGlvbiA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3JlYXRlKFRv
dWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZlbnQu
ZGVsdGFYLCBldmVudC5kZWx0YVkpKSwgdGhpcyk7CisgICAgICAgIE93blB0cjxQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9IFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0
KCktPmNyZWF0ZUN1cnZlKGV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2UsIEZsb2F0
UG9pbnQoZXZlbnQuZGVsdGFYLCBldmVudC5kZWx0YVkpKTsKKyAgICAgICAgbV9nZXN0dXJlQW5p
bWF0aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoZmxpbmdDdXJ2
ZS5yZWxlYXNlKCksIHRoaXMpOwogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC03ODUsNyArNzg2LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6dHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9uKGNvbnN0IFdlYkFjdGl2ZVdoZWVs
RmxpbmdQYXIKICAgICBtX2xhc3RXaGVlbFBvc2l0aW9uID0gcGFyYW1ldGVycy5wb2ludDsKICAg
ICBtX2xhc3RXaGVlbEdsb2JhbFBvc2l0aW9uID0gcGFyYW1ldGVycy5nbG9iYWxQb2ludDsKICAg
ICBtX2ZsaW5nTW9kaWZpZXIgPSBwYXJhbWV0ZXJzLm1vZGlmaWVyczsKLSAgICBPd25QdHI8UGxh
dGZvcm1HZXN0dXJlQ3VydmU+IGN1cnZlID0gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlOjpjcmVhdGUocGFyYW1ldGVycy5kZWx0YSwgSW50UG9pbnQocGFyYW1ldGVycy5jdW11bGF0
aXZlU2Nyb2xsKSk7CisgICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSA9IFBs
YXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1cnZlKHBhcmFtZXRlcnMu
c291cmNlRGV2aWNlLCBwYXJhbWV0ZXJzLmRlbHRhLCBJbnRQb2ludChwYXJhbWV0ZXJzLmN1bXVs
YXRpdmVTY3JvbGwpKTsKICAgICBtX2dlc3R1cmVBbmltYXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdl
c3R1cmVBbmltYXRpb246OmNyZWF0ZShjdXJ2ZS5yZWxlYXNlKCksIHRoaXMsIHBhcmFtZXRlcnMu
c3RhcnRUaW1lKTsKICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162510</attachid>
            <date>2012-09-06 08:17:03 -0700</date>
            <delta_ts>2012-09-06 11:54:15 -0700</delta_ts>
            <desc>Patch: fixed merge conflict.</desc>
            <filename>bug-95756-20120906111645.patch</filename>
            <type>text/plain</type>
            <size>11828</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU3ZjdhNjNlZDIyYTE5
MGEyZTMxZTIwZjZlN2ZkYjQyOGUyYjg1OS4uODFiZTM5ZTlkYzg1YWIzMjZmMzc4OWYzODkyYTQ0
ZWNhNWUyODJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTA0ICBSb2Jl
cnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEVuYWJsZSBkaWZmZXJlbnQgZmxpbmcgYmVoYXZpb3VyIGZvciB0b3VjaHNjcmVlbiBhbmQgdG91
Y2hwYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGEgZmxhZyBvbiBXZWJHZXN0dXJlRXZlbnRzIHRoYXQgZGlmZmVyZW50aWF0
ZXMgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAgICAgZXZlbnRzIGJ5IHRoZWlyIG9yaWdpbmF0aW5n
IGRldmljZSBhbmQgcGFzcyB0aGlzIGZsYWcgdG8gYSBmYWN0b3J5IHRoYXQgcHJvZHVjZXMKKyAg
ICAgICAgZGlmZmVyZW50IGRldmljZSAgc3BlY2lmaWMgZmxpbmcgY3VydmVzIGJhc2VkIG9uIHRo
ZSB2YWx1ZSBvZiB0aGUgZmxhZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCBhbmQgdW5pdCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
UGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcDogTW9kaWZpZWQgIGZhY3RvcnkKKyAgICAg
ICAgZW50cnkgcG9pbnQgZm9yIGNvbnN0cnVjdGluZyBmbGluZyBjdXJ2ZSBmb3IgZGlmZmVyZW50
IGRldmljZXMuCisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6
Y3JlYXRlQ3VydmUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZv
cm1HZXN0dXJlQ3VydmVGYWN0b3J5Lmg6CisgICAgICAgIChQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZh
Y3RvcnkpOgorCiAyMDEyLTA5LTA2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRu
eWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIENTUyAzICdvdmVyZmxvdy13cmFwJyBwcm9wZXJ0
eSBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2Y2ZkZDFjMzY5
M2ZlMmE2YTE5NTY1YjBhZTIxZjIwMmRkYWNiZjc4Li4xNmY5MzFhODBiMDJhZWQ3NzY5OGRiMjUz
M2Y1NTRmNTY2OGNjZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDEyLTA5LTA0ICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIEVuYWJsZSBkaWZmZXJlbnQgZmxpbmcgYmVoYXZpb3VyIGZv
ciB0b3VjaHNjcmVlbiBhbmQgdG91Y2hwYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk1NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9i
aW5zb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgZmxhZyBvbiBXZWJHZXN0dXJlRXZl
bnRzIHRoYXQgZGlmZmVyZW50aWF0ZXMgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAgICAgZXZlbnRz
IGJ5IHRoZWlyIG9yaWdpbmF0aW5nIGRldmljZSBhbmQgcGFzcyB0aGlzIGZsYWcgdG8gYSBmYWN0
b3J5IHRoYXQgcHJvZHVjZXMKKyAgICAgICAgZGlmZmVyZW50IGRldmljZSAgc3BlY2lmaWMgZmxp
bmcgY3VydmVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZy4KKworICAgICAgICAqIHB1
YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViQWN0aXZl
V2hlZWxGbGluZ1BhcmFtZXRlcnMpOiBTdG9yZSBzb3VyY2UgZGV2aWNlIGZvciB0cmFuc2ZlciB0
byBtYWludGhyZWFkLgorICAgICAgICAoV2ViS2l0OjpXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1l
dGVyczo6V2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJJbnB1dEV2ZW50Lmg6IEFkZGVkIHNvdXJjZSBkZXZpY2UgZmxhZyB0byBXZWJHZXN0dXJlRXZl
bnQuCisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1
cmVGbGluZyk6ICBVc2UgZmFjdG9yeSB0bworICAgICAgICBvYnRhaW4gZGV2aWNlLWFwcHJvcHJp
YXRlIGZsaW5nIGN1cnZlLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQpOiBVc2UgZmFjdG9yeSB0
byBvYnRhaW4gZGV2aWNlLWFwcHJvcHJpYXRlCisgICAgICAgIGZsaW5nIGN1cnZlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9u
KToKKwogMjAxMi0wOS0wNiAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBXaW4gYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjEyNzcx
NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9Q
bGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuY3BwCmluZGV4IDUw
ZGNjZjM5ZjJkYmNlZTkyYjhkYjY4NWQxYmJlNTc2NWE3MDc5NzguLmVjZDk3MjRkOWRkY2Q4ZmQ4
ZWRlYWQ2YmE4YjU2ZThmNDBhZTQ4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRmb3JtR2VzdHVy
ZUN1cnZlRmFjdG9yeS5jcHAKQEAgLTI0LDEyICsyNCwxNCBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKwogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5oIgogCiAj
aW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJU
b3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKICNpbmNsdWRlICJXZWJGbGluZ0Fu
aW1hdG9yVG9HZXN0dXJlQ3VydmVBZGFwdGVyLmgiCisjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzksMTUgKzQxLDIwIEBAIFBsYXRmb3JtR2Vz
dHVyZUN1cnZlRmFjdG9yeSogUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpnZXQoKQogICAg
IHJldHVybiAmZmFjdG9yeTsKIH0KIAotUGFzc093blB0cjxXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZT4gUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpjcmVhdGVDdXJ2ZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmFuZ2Up
CitQYXNzT3duUHRyPFdlYkNvcmU6OlBsYXRmb3JtR2VzdHVyZUN1cnZlPiBQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZUZhY3Rvcnk6OmNyZWF0ZUN1cnZlKGludCBkZXZpY2VTb3VyY2UsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCBjdW11bGF0aXZlU2Nyb2xs
KQogewogICAgIE93blB0cjxXZWJGbGluZ0FuaW1hdG9yPiBmbGluZ0FuaW1hdG9yID0gbV9tb2Nr
RmxpbmdBbmltYXRvci5yZWxlYXNlKCk7CiAgICAgaWYgKCFmbGluZ0FuaW1hdG9yKQogICAgICAg
ICBmbGluZ0FuaW1hdG9yID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlRmxp
bmdBbmltYXRvcigpKTsKLSAgICBpZiAoIWZsaW5nQW5pbWF0b3IpCi0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShwb2ludCk7
CiAKLSAgICByZXR1cm4gV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRlcjo6Y3Jl
YXRlKHBvaW50LCByYW5nZSwgZmxpbmdBbmltYXRvci5yZWxlYXNlKCkpOworICAgIGlmIChmbGlu
Z0FuaW1hdG9yKQorICAgICAgICByZXR1cm4gV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZl
QWRhcHRlcjo6Y3JlYXRlKHBvaW50LCBXZWJDb3JlOjpJbnRSZWN0KCksIGZsaW5nQW5pbWF0b3Iu
cmVsZWFzZSgpKTsKKworICAgIC8vIEZJWE1FOiBBZGQgYSB0b3VjaC1zY3JlZW4gc291cmNlZCBz
cGVjaWZpYyBjdXJ2ZS4KKyAgICBpZiAoZGV2aWNlU291cmNlID09IFdlYkdlc3R1cmVFdmVudDo6
VG91Y2hzY3JlZW4pCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpUb3VjaHBhZEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShwb2ludCwgY3VtdWxhdGl2ZVNjcm9sbCk7CisKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6VG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUo
cG9pbnQsIGN1bXVsYXRpdmVTY3JvbGwpOwogfQogCiB2b2lkIFBsYXRmb3JtR2VzdHVyZUN1cnZl
RmFjdG9yeTo6c2V0V2ViRmxpbmdBbmltYXRvckZvclRlc3QoUGFzc093blB0cjxXZWJGbGluZ0Fu
aW1hdG9yPiBtb2NrRmxpbmdBbmltYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRmb3JtR2VzdHVyZUN1
cnZlRmFjdG9yeS5oCmluZGV4IDg1ZjdlY2M1OTE5MzYyNTQ0ZDNkNjM3NzU2MmJkYzIwYThmYTQ5
YTMuLjFhYjNiZjQ0MWE5MzU5M2I3NDRiZGIyYzA1MjI1NDU0ODRhY2JhM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJl
Q3VydmVGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFz
cyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkgewogcHVibGljOgogICAgIHN0YXRpYyBQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkqIGdldCgpOwogCi0gICAgUGFzc093blB0cjxXZWJDb3Jl
OjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gY3JlYXRlQ3VydmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJhbmdlKTsKKyAgICBQYXNzT3duUHRyPFdl
YkNvcmU6OlBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGVDdXJ2ZShpbnQgZGV2aWNlU291cmNl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgV2ViQ29yZTo6SW50UG9pbnQgY3VtdWxhdGl2
ZVNjcm9sbCA9IFdlYkNvcmU6OkludFBvaW50KCkpOwogICAgIHZvaWQgc2V0V2ViRmxpbmdBbmlt
YXRvckZvclRlc3QoUGFzc093blB0cjxXZWJGbGluZ0FuaW1hdG9yPik7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY3RpdmVXaGVlbEZs
aW5nUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWN0aXZl
V2hlZWxGbGluZ1BhcmFtZXRlcnMuaAppbmRleCBlZjI3N2Q1ZmQ0YzY3ZGYxYTI0MWZhNmFhMmNi
MjVjYTQ5NjRhYjRjLi4yMTMzZTg1MDg0MDkwY2M3MjY5Zjc2Zjg4Mzg2YWQxYzNiYjlkZjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY3RpdmVXaGVlbEZs
aW5nUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFj
dGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2Vi
QWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnNfaAogI2RlZmluZSBXZWJBY3RpdmVXaGVlbEZsaW5n
UGFyYW1ldGVyc19oCiAKKyNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViQ29tbW9uLmgiCiAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJGbG9hdFBvaW50Lmgi
CkBAIC0zOSwxMSArNDAsMTMgQEAgc3RydWN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJz
IHsKICAgICBXZWJQb2ludCBwb2ludDsKICAgICBXZWJQb2ludCBnbG9iYWxQb2ludDsKICAgICBp
bnQgbW9kaWZpZXJzOworICAgIFdlYkdlc3R1cmVFdmVudDo6U291cmNlRGV2aWNlIHNvdXJjZURl
dmljZTsKICAgICBXZWJTaXplIGN1bXVsYXRpdmVTY3JvbGw7CiAgICAgZG91YmxlIHN0YXJ0VGlt
ZTsKIAogICAgIFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKCkKICAgICAgICAgOiBtb2Rp
ZmllcnMoMCkKKyAgICAgICAgLCBzb3VyY2VEZXZpY2UoV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHBh
ZCkKICAgICAgICAgLCBzdGFydFRpbWUoMCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oCmluZGV4IGI5MmEyYTY0ZWRmODk1ZWIx
NjQyMjIwNDU1YWUzZWMwNmQ4YzkyMzUuLjYzY2U3MTMxY2RjMDIxZDAzNjNhMmRjMWQ2OTAxMzgz
MWRlNGY5NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklu
cHV0RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2
ZW50LmgKQEAgLTM3Niw2ICszNzYsMTEgQEAgcHVibGljOgogCiBjbGFzcyBXZWJHZXN0dXJlRXZl
bnQgOiBwdWJsaWMgV2ViSW5wdXRFdmVudCB7CiBwdWJsaWM6CisgICAgZW51bSBTb3VyY2VEZXZp
Y2UgeworICAgICAgICBUb3VjaHBhZCwKKyAgICAgICAgVG91Y2hzY3JlZW4sCisgICAgfTsKKwog
ICAgIGludCB4OwogICAgIGludCB5OwogICAgIGludCBnbG9iYWxYOwpAQCAtNDA5LDYgKzQxNCw3
IEBAIHB1YmxpYzoKICAgICAgIHN0cnVjdCB7CiAgICAgICAgIGZsb2F0IHZlbG9jaXR5WDsKICAg
ICAgICAgZmxvYXQgdmVsb2NpdHlZOworICAgICAgICBTb3VyY2VEZXZpY2Ugc291cmNlRGV2aWNl
OwogICAgICAgfSBmbGluZ1N0YXJ0OwogCiAgICAgICBzdHJ1Y3QgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGwuY3BwCmluZGV4IDFlNTAzODU1MGIwMTc5MzVjMGZkZDIzYmUzNTQ5ZjJhYTJhMTc0ZDguLjE5
YmQ4OTRjMjM1ZTkwODQ5ZWU2NmI4ZDg3NzMwNDU0ZGFmMTdiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbC5jcHAKQEAgLTI5LDggKzI5LDggQEAKIAogI2luY2x1ZGUgIkNDQWN0aXZlR2VzdHVyZUFu
aW1hdGlvbi5oIgogI2luY2x1ZGUgIkNDUHJveHkuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZUZhY3RvcnkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldC5o
IgotI2luY2x1ZGUgIlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgogI2luY2x1
ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW1wbC5oIgogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQuaCIKQEAgLTI2OCwxMiArMjY4LDEz
IEBAIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpFdmVudERpc3Bvc2l0aW9uIFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoCiAgICAgc3dpdGNoIChzY3JvbGxTdGF0dXMpIHsK
ICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkOiB7CiAgICAgICAg
IFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bDo6aGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFydGVkIik7Ci0gICAgICAgIE93blB0cjxQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9IFRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxv
Y2l0eVgsIGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZKSk7CisgICAgICAg
IE93blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9IFBsYXRmb3JtR2VzdHVy
ZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1cnZlKGdlc3R1cmVFdmVudC5kYXRhLmZsaW5n
U3RhcnQuc291cmNlRGV2aWNlLCBGbG9hdFBvaW50KGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3Rh
cnQudmVsb2NpdHlYLCBnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WSkpOwog
ICAgICAgICBtX3doZWVsRmxpbmdBbmltYXRpb24gPSBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246
OmNyZWF0ZShQbGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmNyZWF0ZShmbGluZ0N1
cnZlLnJlbGVhc2UoKSksIHRoaXMpOwogICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmRl
bHRhID0gV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5
WCwgZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVkpOwogICAgICAgICBtX3do
ZWVsRmxpbmdQYXJhbWV0ZXJzLnBvaW50ID0gV2ViUG9pbnQoZ2VzdHVyZUV2ZW50LngsIGdlc3R1
cmVFdmVudC55KTsKICAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5nbG9iYWxQb2ludCA9
IFdlYlBvaW50KGdlc3R1cmVFdmVudC5nbG9iYWxYLCBnZXN0dXJlRXZlbnQuZ2xvYmFsWSk7CiAg
ICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMubW9kaWZpZXJzID0gZ2VzdHVyZUV2ZW50Lm1v
ZGlmaWVyczsKKyAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5zb3VyY2VEZXZpY2UgPSBn
ZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZTsKICAgICAgICAgbV9pbnB1
dEhhbmRsZXJDbGllbnQtPnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybiBEaWRI
YW5kbGU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CmluZGV4IDRmYjQ1MWFmYmRiOGJkYWMxMDJhMTliOTRjZGM3YmE1NDk0YjQyY2MuLmNmMTQwOTFk
MDM3YWQ0ZjZjM2RjMjU2MDZmNmE3OWQzZTcwOThlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTExOSw3ICsxMTksNiBAQAogI2luY2x1ZGUgIlRl
eHRGaWVsZERlY29yYXRvckltcGwuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJUaW1lci5oIgotI2luY2x1ZGUgIlRvdWNocGFkRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZS5oIgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGlj
YXRvci5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKQEAgLTE2OCw2ICsx
NjcsNyBAQAogI2luY2x1ZGUgPHd0Zi9VaW50OENsYW1wZWRBcnJheS5oPgogCiAjaWYgRU5BQkxF
KEdFU1RVUkVfRVZFTlRTKQorI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCiAjaW5jbHVkZSAiVG91Y2hEaXNh
bWJpZ3VhdGlvbi5oIgogI2VuZGlmCkBAIC02OTMsNyArNjkzLDggQEAgYm9vbCBXZWJWaWV3SW1w
bDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAg
ICAgIG1fbGFzdFdoZWVsR2xvYmFsUG9zaXRpb24gPSBXZWJQb2ludChldmVudC5nbG9iYWxYLCBl
dmVudC5nbG9iYWxZKTsKICAgICAgICAgbV9mbGluZ01vZGlmaWVyID0gZXZlbnQubW9kaWZpZXJz
OwogICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGUgY3VydmUgcGFyYW1ldHJpemFibGUgZnJvbSB0
aGUgYnJvd3Nlci4KLSAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0aXZlUGxhdGZvcm1H
ZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZl
OjpjcmVhdGUoRmxvYXRQb2ludChldmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlYLCBldmVu
dC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZKSksIHRoaXMpOworICAgICAgICBPd25QdHI8UGxh
dGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3VydmUgPSBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rv
cnk6OmdldCgpLT5jcmVhdGVDdXJ2ZShldmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNl
LCBGbG9hdFBvaW50KGV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVgsIGV2ZW50LmRhdGEu
ZmxpbmdTdGFydC52ZWxvY2l0eVkpKTsKKyAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoZmxpbmdDdXJ2ZS5yZWxlYXNlKCks
IHRoaXMpOwogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CkBAIC03ODUsNyArNzg2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dHJhbnNmZXJB
Y3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9uKGNvbnN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXIKICAg
ICBtX2xhc3RXaGVlbFBvc2l0aW9uID0gcGFyYW1ldGVycy5wb2ludDsKICAgICBtX2xhc3RXaGVl
bEdsb2JhbFBvc2l0aW9uID0gcGFyYW1ldGVycy5nbG9iYWxQb2ludDsKICAgICBtX2ZsaW5nTW9k
aWZpZXIgPSBwYXJhbWV0ZXJzLm1vZGlmaWVyczsKLSAgICBPd25QdHI8UGxhdGZvcm1HZXN0dXJl
Q3VydmU+IGN1cnZlID0gVG91Y2hwYWRGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUo
cGFyYW1ldGVycy5kZWx0YSwgSW50UG9pbnQocGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsKSk7
CisgICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSA9IFBsYXRmb3JtR2VzdHVy
ZUN1cnZlRmFjdG9yeTo6Z2V0KCktPmNyZWF0ZUN1cnZlKHBhcmFtZXRlcnMuc291cmNlRGV2aWNl
LCBwYXJhbWV0ZXJzLmRlbHRhLCBJbnRQb2ludChwYXJhbWV0ZXJzLmN1bXVsYXRpdmVTY3JvbGwp
KTsKICAgICBtX2dlc3R1cmVBbmltYXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRp
b246OmNyZWF0ZShjdXJ2ZS5yZWxlYXNlKCksIHRoaXMsIHBhcmFtZXRlcnMuc3RhcnRUaW1lKTsK
ICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>