<?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>99947</bug_id>
          
          <creation_ts>2012-10-21 17:47:10 -0700</creation_ts>
          <short_desc>Handle two-finger tap gestures in the same way as long-press gestures</short_desc>
          <delta_ts>2012-10-24 14:54:33 -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>
          <dependson>99763</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Terry Anderson">tdanderson</reporter>
          <assigned_to name="Terry Anderson">tdanderson</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>rjkroege</cc>
    
    <cc>sadrul</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747175</commentid>
    <comment_count>0</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-10-21 17:47:10 -0700</bug_when>
    <thetext>Currently a long-press gesture is used to dispatch a context menu (for platforms defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and touch area of the long-press gesture.

This CL will cause two-finger tap gestures to be handled in the same way as long-press gestures. The location and touch area of a two-finger tap gesture will correspond to the location and touch area of the first finger down; the location/area of the second finger will be ignored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747191</commentid>
    <comment_count>1</comment_count>
      <attachid>169821</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-10-21 19:02:19 -0700</bug_when>
    <thetext>Created attachment 169821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747193</commentid>
    <comment_count>2</comment_count>
      <attachid>169821</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-10-21 19:05:35 -0700</bug_when>
    <thetext>Comment on attachment 169821
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:2526
&gt;          return handleGestureLongPress(gestureEvent);

Is this OK or should I instead have a handleGestureLongPress() and a handleGestureTwoFingerTap() which both call a common function containing the current implementation of handleGestureLongPress() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748848</commentid>
    <comment_count>3</comment_count>
      <attachid>169821</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-23 12:08:39 -0700</bug_when>
    <thetext>Comment on attachment 169821
Patch

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2526
&gt;&gt;          return handleGestureLongPress(gestureEvent);
&gt; 
&gt; Is this OK or should I instead have a handleGestureLongPress() and a handleGestureTwoFingerTap() which both call a common function containing the current implementation of handleGestureLongPress() ?

Its probably clearer to do that.  This code really just wants to dispatch based on the type without making any policy decisions about what the gestures mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749077</commentid>
    <comment_count>4</comment_count>
      <attachid>170256</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-10-23 15:54:38 -0700</bug_when>
    <thetext>Created attachment 170256
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749490</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-24 03:02:47 -0700</bug_when>
    <thetext>I still believe both of these gestures should be named GestureContextMenu, since there can be different ways to trigger that, and two finger taps might be used for other purposes on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749828</commentid>
    <comment_count>6</comment_count>
      <attachid>170430</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-10-24 11:00:32 -0700</bug_when>
    <thetext>Created attachment 170430
Patch for landing after fixing merge conflicts with WK99520</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749842</commentid>
    <comment_count>7</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-10-24 11:09:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I still believe both of these gestures should be named GestureContextMenu, since there can be different ways to trigger that, and two finger taps might be used for other purposes on other platforms.

I have created https://bugs.webkit.org/show_bug.cgi?id=100270 to discuss this suggestion. Let&apos;s land this patch as-is for the time being.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749851</commentid>
    <comment_count>8</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-24 11:19:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; I still believe both of these gestures should be named GestureContextMenu, since there can be different ways to trigger that, and two finger taps might be used for other purposes on other platforms.
&gt; 
&gt; I have created https://bugs.webkit.org/show_bug.cgi?id=100270 to discuss this suggestion. Let&apos;s land this patch as-is for the time being.

Fine by me. The patch looks good to me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750074</commentid>
    <comment_count>9</comment_count>
      <attachid>170430</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 14:54:29 -0700</bug_when>
    <thetext>Comment on attachment 170430
Patch for landing after fixing merge conflicts with WK99520

Clearing flags on attachment: 170430

Committed r132406: &lt;http://trac.webkit.org/changeset/132406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750075</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 14:54:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169821</attachid>
            <date>2012-10-21 19:02:19 -0700</date>
            <delta_ts>2012-10-23 15:54:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99947-20121021220059.patch</filename>
            <type>text/plain</type>
            <size>8998</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RjNTk3YjNmNzNhM2Rl
OWFjYjkwZDc0NTIwYTQ2YWJjY2QxNGYwOS4uZjM4Y2E0YTM3OGQxNmYwYjg2MTViMzBjZmFhZjQ1
YmY3YjliNWM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTEwLTIxICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEhhbmRsZSB0
d28tZmluZ2VyIHRhcCBnZXN0dXJlcyBpbiB0aGUgc2FtZSB3YXkgYXMgbG9uZy1wcmVzcyBnZXN0
dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5
NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJy
ZW50bHkgYSBsb25nLXByZXNzIGdlc3R1cmUgaXMgdXNlZCB0byBkaXNwYXRjaCBhIGNvbnRleHQg
bWVudSAoZm9yIHBsYXRmb3JtcyAKKyAgICAgICAgZGVmaW5pbmcgQ09OVEVYVF9NRU5VUykgb3Ig
dG8gc2VsZWN0IHRleHQgKGZvciBBbmRyb2lkKS4gQWRkaXRpb25hbGx5LCBmb3IgcGxhdGZvcm1z
IAorICAgICAgICBkZWZpbmluZyBUT1VDSF9BREpVU1RNRU5ULCBnZXN0dXJlIHRhcmdldCBmdXp6
aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGUgbG9jYXRpb24gYW5kIAorICAgICAgICB0b3VjaCBhcmVh
IG9mIHRoZSBsb25nLXByZXNzIGdlc3R1cmUuCisKKyAgICAgICAgVGhpcyBDTCB3aWxsIGNhdXNl
IHR3by1maW5nZXIgdGFwIGdlc3R1cmVzIHRvIGJlIGhhbmRsZWQgaW4gdGhlIHNhbWUgd2F5IGFz
IGxvbmctcHJlc3MgCisgICAgICAgIGdlc3R1cmVzLiBUaGUgbG9jYXRpb24gYW5kIHRvdWNoIGFy
ZWEgb2YgYSB0d28tZmluZ2VyIHRhcCBnZXN0dXJlIHdpbGwgY29ycmVzcG9uZCB0byAKKyAgICAg
ICAgdGhlIGxvY2F0aW9uIGFuZCB0b3VjaCBhcmVhIG9mIHRoZSBmaXJzdCBmaW5nZXIgZG93bjsg
dGhlIGxvY2F0aW9uL2FyZWEgb2YgdGhlIHNlY29uZCAKKyAgICAgICAgZmluZ2VyIHdpbGwgYmUg
aWdub3JlZC4KKworICAgICAgICBUZXN0OiB0b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtdHdv
LWZpbmdlci10YXAuaHRtbAorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24pOgorCiAyMDEy
LTEwLTIxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBGYWN0
b3Igc3R5bGVzaGVldCBpbnZhbGlkYXRpb24gYW5hbHlzaXMgY29kZSBpbnRvIGEgY2xhc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2ZhNGYzMjEzODQxNWUxYWJmYmFiNDFiNDU2NjFi
NmJlMmQ4Y2RlMC4uY2JmYzcyMTA4Yjk1M2IzODY3ZmVhOGYwYzgyOTkyYjJjMGQ2N2RkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0yMSAgVGVy
cnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBIYW5kbGUg
dHdvLWZpbmdlciB0YXAgZ2VzdHVyZXMgaW4gdGhlIHNhbWUgd2F5IGFzIGxvbmctcHJlc3MgZ2Vz
dHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5
OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2V0
IHRoZSBhcmVhIG9mIGEgdHdvLWZpbmdlciB0YXAgZ2VzdHVyZSB0byBiZSB0aGUgYXJlYSBvZiB0
aGUgZW5jbG9zaW5nCisgICAgICAgIHJlY3RhbmdsZSBmb3IgdGhlIGZpcnN0IGZpbmdlciBkb3du
LgorCisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVu
dEJ1aWxkZXIpOgorCiAyMDEyLTEwLTE5ICBZdXN1ZiBPenV5c2FsICA8eXVzdWZvQGdvb2dsZS5j
b20+CiAKICAgICAgICAgW2Nocm9taXVtXSBEb3VibGUtdGFwIGRlZmF1bHRzIHRvIHpvb20gKHNo
b3VsZCBvbmx5IGRvIHRoaXMgb24gQW5kcm9pZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCA1ZWYwYzYxZGE5M2QwYzE2NGFiZWY3NGVkZmM2ZjBkZTBmNzc2MjExLi5hYzQz
YTlkNjZhZDM5OGY2MTE2MDdkOTBhNmNkZDlmYjllMjI1MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0yNTIyLDYgKzI1MjIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZl
bnQpCiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bjoKICAgICAgICAgcmV0
dXJuIGhhbmRsZUdlc3R1cmVUYXBEb3duKCk7CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlTG9uZ1ByZXNzOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRh
cDoKICAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVMb25nUHJlc3MoZ2VzdHVyZUV2ZW50KTsK
ICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6CiAgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKQEAgLTI2NTksNiArMjY2MCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24oY29uc3QgUGxhdGZvcm1HZXN0dXJl
RXZlbnQmIGdlc3R1cmVFdmVuCiAgICAgICAgIGJlc3RDbGlja2FibGVOb2RlRm9yVG91Y2hQb2lu
dChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgSW50U2l6ZShnZXN0dXJlRXZlbnQuYXJlYSgpLndp
ZHRoKCkgLyAyLCBnZXN0dXJlRXZlbnQuYXJlYSgpLmhlaWdodCgpIC8gMiksIGFkanVzdGVkUG9p
bnQsIHRhcmdldE5vZGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6
Okdlc3R1cmVMb25nUHJlc3M6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVHdvRmlu
Z2VyVGFwOgogICAgICAgICBiZXN0Q29udGV4dE1lbnVOb2RlRm9yVG91Y2hQb2ludChnZXN0dXJl
RXZlbnQucG9zaXRpb24oKSwgSW50U2l6ZShnZXN0dXJlRXZlbnQuYXJlYSgpLndpZHRoKCkgLyAy
LCBnZXN0dXJlRXZlbnQuYXJlYSgpLmhlaWdodCgpIC8gMiksIGFkanVzdGVkUG9pbnQsIHRhcmdl
dE5vZGUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDBm
NGY2ZDVhODY4NTI3NGU0YWFhMDZmNmM2YzYzY2QzNzMzOGE0YzQuLjhmZjJlMjEwZDA2MWVmYTNl
ZDY4ODlhODZhZmJlOWY3Yzg5MGQ5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTE3MSw2ICsxNzEsNyBA
QCBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRl
cihXaWRnZXQqIHdpZGdldCwgY29uc3QgVwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA7CisgICAgICAgIG1fYXJlYSA9IEludFNpemUoZS5k
YXRhLnR3b0ZpbmdlclRhcC5maXJzdEZpbmdlcldpZHRoLCBlLmRhdGEudHdvRmluZ2VyVGFwLmZp
cnN0RmluZ2VySGVpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50
OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlTG9uZ1ByZXNzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUzNGVhMzc5YzIzZDhiYzk5ODUyMjkwMTYzNDkwOGY0MmNk
ZjhmMDkuLjgyMTFhZjYxYTg2MjZiOTI2NGFhMzcxZTAyODlhZDk3MzhhYTcwNjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMi0xMC0yMSAgVGVycnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBIYW5kbGUgdHdvLWZpbmdlciB0YXAgZ2VzdHVyZXMgaW4g
dGhlIHNhbWUgd2F5IGFzIGxvbmctcHJlc3MgZ2VzdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGxheW91dCB0ZXN0IGZvciBkaXNwYXRjaGlu
ZyBjb250ZXh0IG1lbnVzIG9uIGEgdHdvLWZpbmdlciB0YXAKKyAgICAgICAgZ2VzdHVyZSB3aGVu
IHRvdWNoIGFkanVzdG1lbnQgaXMgZW5hYmxlZC4KKworICAgICAgICAqIHRvdWNoYWRqdXN0bWVu
dC90b3VjaC1saW5rcy10d28tZmluZ2VyLXRhcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHRvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28tZmluZ2VyLXRhcC5odG1sOiBBZGRl
ZC4KKwogMjAxMi0xMC0yMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgdXBkYXRlIHRvIHJlbW92
ZSBwYXNzaW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Rv
dWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28tZmluZ2VyLXRhcC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmUxNzgxOTYyYWE2ZjY4YzczZjdkZWIzYmZkYjgzZDE5OWZiN2VhZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28t
ZmluZ2VyLXRhcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgaWYgYSB0d28g
ZmluZ2VyIHRhcCBnZXN0dXJlIG9uIGxpbmtzIHdpbGwgdHJpZ2dlciBhIGNvbnRleHQgbWVudSB3
aGVuIHRvdWNoIGFkanVzdG1lbnQgaXMgdXNlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1Rlc3RpbmcgZGlyZWN0IGhpdHMuCitQQVNTCitQQVNTCitQQVNTCitUZXN0aW5nIGlu
ZGlyZWN0IGhpdHMuCitQQVNTCitQQVNTCitQQVNTCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hh
ZGp1c3RtZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLmh0bWwgYi9MYXlvdXRUZXN0cy90
b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtdHdvLWZpbmdlci10YXAuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YWU5YjhmMzJlMGYwNGUzY2UwYmM5NjgzZDM5ODRmMjcxN2E1NGIwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXIt
dGFwLmh0bWwKQEAgLTAsMCArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogVGVzdGluZyB0aGF0IGEgY29udGV4dCBt
ZW51IHdpbGwgYXBwZWFyIG9uIGEgdHdvLWZpbmdlciB0YXAgLSBidWcgOTk5NDc8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwv
c2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgI3NhbmRib3ggeworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMHB4OworICAgICAgICAgICAgdG9w
OiAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKworPGRp
diBpZD0ic2FuZGJveCI+Cis8cD48YSBocmVmPSIiIGlkPSJsaW5rMSI+STwvYT4gcHJvcG9zZSB0
byBjb25zaWRlciA8YSBocmVmPSIiIGlkPSJsaW5rMiI+dGhlIHF1ZXN0aW9uPC9hPiwgIkNhbiBt
YWNoaW5lcyB0aGluaz8iPGJyPlRoaXMgc2hvdWxkIGJlZ2luIHdpdGggZGVmaW5pdGlvbnMgb2Yg
dGhlIG1lYW5pbmcgb2YgdGhlIHRlcm1zICJtYWNoaW5lIiBhbmQgPGEgaHJlZj0iIiBpZD0ibGlu
azMiPiJ0aGluay4iPC9hPjwvcD4KKzwvZGl2PgorCis8cCBpZD0nZGVzY3JpcHRpb24nPjwvcD4K
KzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorCis8c2NyaXB0PgorICAgIHZhciBlbGVtZW50Owor
ICAgIHZhciBhZGp1c3RlZE5vZGU7CisgICAgLy8gU2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBl
bGVtZW50cworICAgIHZhciBlID0ge307CisgICAgWydzYW5kYm94JywgJ2xpbmsxJywgJ2xpbmsy
JywgJ2xpbmszJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7CisgICAgICAgIGVbYV0gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChhKTsKKyAgICB9KTsKKworICAgIGRvY3VtZW50Lm9uY29udGV4dG1l
bnUgPSBmdW5jdGlvbigpIHsgZGVidWcoIlBBU1MiKTsgfQorCisgICAgZnVuY3Rpb24gdGVzdFR3
b0ZpbmdlclRhcCh0b3VjaHBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50U2VuZGVyLmdl
c3R1cmVUd29GaW5nZXJUYXApCisgICAgICAgICAgICBldmVudFNlbmRlci5nZXN0dXJlVHdvRmlu
Z2VyVGFwKHRvdWNocG9pbnQubGVmdCwgdG91Y2hwb2ludC50b3ApOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBkZWJ1ZygiZ2VzdHVyZVR3b0ZpbmdlclRhcCBub3QgaW1wbGVtZW50ZWQgYnkg
dGhpcyBwbGF0Zm9ybS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2go
ZWxlbWVudCkKKyAgICB7CisgICAgICAgIC8vIFRvdWNoIGRpcmVjdGx5IGluIHRoZSBjZW50ZXIg
b2YgdGhlIGVsZW1lbnQuCisgICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2lu
dChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudCksICdjZW50ZXInLCAwLCAyMCwgMzApOworICAg
ICAgICB0ZXN0VHdvRmluZ2VyVGFwKHRvdWNocG9pbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3RJbmRpcmVjdFRvdWNoKGVsZW1lbnQpCisgICAgeworICAgICAgICAvLyBUb3VjaCBqdXN0
IHJpZ2h0IG9mIHRoZSBlbGVtZW50LgorICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9mZnNldFRv
dWNoUG9pbnQoZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpLCAncmlnaHQnLCAxMCwgMzAsIDIw
KTsKKyAgICAgICAgdGVzdFR3b0ZpbmdlclRhcCh0b3VjaHBvaW50KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygpCisgICAgeworICAgICAgICBkZWJ1ZygnVGVzdGlu
ZyBkaXJlY3QgaGl0cy4nKTsKKyAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazEpOworICAg
ICAgICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMik7CisgICAgICAgIHRlc3REaXJlY3RUb3VjaChl
LmxpbmszKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaGVzKCkKKyAg
ICB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIGluZGlyZWN0IGhpdHMuJyk7CisgICAgICAgIHRl
c3RJbmRpcmVjdFRvdWNoKGUubGluazEpOworICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaChlLmxp
bmsyKTsKKyAgICAgICAgdGVzdEluZGlyZWN0VG91Y2goZS5saW5rMyk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0
Q2xpY2thYmxlTm9kZSkgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3RzIGlmIGEgdHdv
IGZpbmdlciB0YXAgZ2VzdHVyZSBvbiBsaW5rcyB3aWxsIHRyaWdnZXIgYSBjb250ZXh0IG1lbnUg
d2hlbiB0b3VjaCBhZGp1c3RtZW50IGlzIHVzZWQuJyk7CisgICAgICAgICAgICB0ZXN0RGlyZWN0
VG91Y2hlcygpOworICAgICAgICAgICAgdGVzdEluZGlyZWN0VG91Y2hlcygpOworICAgICAgICAg
ICAgZS5zYW5kYm94LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcnVuVGVzdHMoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170256</attachid>
            <date>2012-10-23 15:54:38 -0700</date>
            <delta_ts>2012-10-24 11:00:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99947-20121023185314.patch</filename>
            <type>text/plain</type>
            <size>11090</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcwZWIyMzgzZjYyZWU4
NTZiNzU3OGExYjc4OWFjNjhhMmIyYzQ5NS4uNTUwNmExZmExOGM4ZDQxYTk2MzFhYzM2MmJhNTA5
OGJlYTZlNTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTIzICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEhhbmRsZSB0
d28tZmluZ2VyIHRhcCBnZXN0dXJlcyBpbiB0aGUgc2FtZSB3YXkgYXMgbG9uZy1wcmVzcyBnZXN0
dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5
NDcKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEN1cnJlbnRs
eSBhIGxvbmctcHJlc3MgZ2VzdHVyZSBpcyB1c2VkIHRvIGRpc3BhdGNoIGEgY29udGV4dCBtZW51
IChmb3IgcGxhdGZvcm1zIAorICAgICAgICBkZWZpbmluZyBDT05URVhUX01FTlVTKSBvciB0byBz
ZWxlY3QgdGV4dCAoZm9yIEFuZHJvaWQpLiBBZGRpdGlvbmFsbHksIGZvciBwbGF0Zm9ybXMgCisg
ICAgICAgIGRlZmluaW5nIFRPVUNIX0FESlVTVE1FTlQsIGdlc3R1cmUgdGFyZ2V0IGZ1enppbmcg
aXMgcGVyZm9ybWVkIG9uIHRoZSBsb2NhdGlvbiBhbmQgCisgICAgICAgIHRvdWNoIGFyZWEgb2Yg
dGhlIGxvbmctcHJlc3MgZ2VzdHVyZS4KKworICAgICAgICBUaGlzIENMIHdpbGwgY2F1c2UgdHdv
LWZpbmdlciB0YXAgZ2VzdHVyZXMgdG8gYmUgaGFuZGxlZCBpbiB0aGUgc2FtZSB3YXkgYXMgbG9u
Zy1wcmVzcyAKKyAgICAgICAgZ2VzdHVyZXMuIFRoZSBsb2NhdGlvbiBhbmQgdG91Y2ggYXJlYSBv
ZiBhIHR3by1maW5nZXIgdGFwIGdlc3R1cmUgd2lsbCBjb3JyZXNwb25kIHRvIAorICAgICAgICB0
aGUgbG9jYXRpb24gYW5kIHRvdWNoIGFyZWEgb2YgdGhlIGZpcnN0IGZpbmdlciBkb3duOyB0aGUg
bG9jYXRpb24vYXJlYSBvZiB0aGUgc2Vjb25kIAorICAgICAgICBmaW5nZXIgd2lsbCBiZSBpZ25v
cmVkLgorCisgICAgICAgIFRlc3Q6IHRvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28tZmlu
Z2VyLXRhcC5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVMb25nUHJlc3MpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVU
d29GaW5nZXJUYXApOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0
dXJlRm9yVGV4dFNlbGVjdGlvbk9yQ29udGV4dE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24pOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgorCiAyMDEyLTEwLTIzICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gUG9wdXAgbWVudXMg
cG9zaXRpb25pbmcgbmVlZHMgdG8gdGFrZSBtdWx0aXBsZSBtb25pdG9ycyBpbnRvIGFjY291bnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ2MGYwYTBmNmQxMDM5ZTdhMWI0OTI1OGNj
NDM0MTA0OGYxYWUwM2QuLjVmZTc1NzIzOTRmMmJhZmI4MGFjY2U5ZTg2YTg2ZjMyMDJlNzY4MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMjMg
IFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGFu
ZGxlIHR3by1maW5nZXIgdGFwIGdlc3R1cmVzIGluIHRoZSBzYW1lIHdheSBhcyBsb25nLXByZXNz
IGdlc3R1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05OTk0NworCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgU2V0
IHRoZSBhcmVhIG9mIGEgdHdvLWZpbmdlciB0YXAgZ2VzdHVyZSB0byBiZSB0aGUgYXJlYSBvZiB0
aGUgZW5jbG9zaW5nCisgICAgICAgIHJlY3RhbmdsZSBmb3IgdGhlIGZpcnN0IGZpbmdlciBkb3du
LgorCisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVu
dEJ1aWxkZXIpOgorCiAyMDEyLTEwLTIzICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IHJlZmFjdG9yIGJhY2tlbmQgdG8gdXNlIElEQipN
ZXRhZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVlZjBjNjFkYTkz
ZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjRiMmRlMzlhYjM0NzcwMWJjMWMwN2RhZWY5
N2Q1MTVjMTYwOGZiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI1
MjEsNiArMjUyMSw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICAgICAgcmV0dXJuIGhh
bmRsZUdlc3R1cmVUYXAoZ2VzdHVyZUV2ZW50KTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVUYXBEb3duOgogICAgICAgICByZXR1cm4gaGFuZGxlR2VzdHVyZVRhcERvd24oKTsKKyAg
ICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CisgICAgICAgIHJldHVy
biBoYW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKGdlc3R1cmVFdmVudCk7CiAgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAgICByZXR1cm4gaGFuZGxlR2VzdHVy
ZUxvbmdQcmVzcyhnZXN0dXJlRXZlbnQpOwogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZURvdWJsZVRhcDoKQEAgLTI1NzIsNiArMjU3NCwxNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlR2VzdHVyZVRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQog
CiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogeworICAgIHJldHVybiBoYW5kbGVHZXN0dXJl
Rm9yVGV4dFNlbGVjdGlvbk9yQ29udGV4dE1lbnUoZ2VzdHVyZUV2ZW50KTsKK30KKworYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAoY29uc3QgUGxhdGZvcm1HZXN0
dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKK3sKKyAgICByZXR1cm4gaGFuZGxlR2VzdHVyZUZvclRl
eHRTZWxlY3Rpb25PckNvbnRleHRNZW51KGdlc3R1cmVFdmVudCk7Cit9CisKK2Jvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVHZXN0dXJlRm9yVGV4dFNlbGVjdGlvbk9yQ29udGV4dE1lbnUoY29uc3Qg
UGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKK3sKICNpZiBPUyhBTkRST0lEKQog
ICAgIEludFBvaW50IGhpdFRlc3RQb2ludCA9IG1fZnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250
ZW50cyhnZXN0dXJlRXZlbnQucG9zaXRpb24oKSk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQg
PSBoaXRUZXN0UmVzdWx0QXRQb2ludChoaXRUZXN0UG9pbnQsIHRydWUpOwpAQCAtMjY1OSw2ICsy
NjcxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmFkanVzdEdlc3R1cmVQb3NpdGlvbihjb25zdCBQ
bGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW4KICAgICAgICAgYmVzdENsaWNrYWJsZU5v
ZGVGb3JUb3VjaFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBJbnRTaXplKGdlc3R1cmVF
dmVudC5hcmVhKCkud2lkdGgoKSAvIDIsIGdlc3R1cmVFdmVudC5hcmVhKCkuaGVpZ2h0KCkgLyAy
KSwgYWRqdXN0ZWRQb2ludCwgdGFyZ2V0Tm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6R2VzdHVyZUxvbmdQcmVzczoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6
Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgICAgIGJlc3RDb250ZXh0TWVudU5vZGVGb3JUb3Vj
aFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBJbnRTaXplKGdlc3R1cmVFdmVudC5hcmVh
KCkud2lkdGgoKSAvIDIsIGdlc3R1cmVFdmVudC5hcmVhKCkuaGVpZ2h0KCkgLyAyKSwgYWRqdXN0
ZWRQb2ludCwgdGFyZ2V0Tm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBhNjA0ZGEyYzg0MGUzMjFiNmQ3ZDFjODUxMDIy
NTk3MmRhOGIxODhhLi44NjkzOGUwNTYyZjNkZmRkMzRhOWYzM2U2YjAwN2VkMTlhNTFkMjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
KTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVUYXAoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
KTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVMb25nUHJlc3MoY29uc3QgUGxhdGZvcm1HZXN0dXJl
RXZlbnQmKTsKKyAgICBib29sIGhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAoY29uc3QgUGxhdGZv
cm1HZXN0dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVTY3JvbGxVcGRhdGUoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICNlbmRpZgogCkBAIC0zNjQsNiArMzY1LDcgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgYm9vbCBoYW5kbGVHZXN0
dXJlU2Nyb2xsQ29yZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYsIFBsYXRmb3JtV2hlZWxF
dmVudEdyYW51bGFyaXR5LCBib29sIGxhdGNoZWRXaGVlbCk7CiAgICAgYm9vbCBoYW5kbGVHZXN0
dXJlVGFwRG93bigpOworICAgIGJvb2wgaGFuZGxlR2VzdHVyZUZvclRleHRTZWxlY3Rpb25PckNv
bnRleHRNZW51KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAjZW5kaWYKIAogICAgIEZy
YW1lKiBtX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDBmNGY2ZDVhODY4NTI3NGU0YWFhMDZmNmM2
YzYzY2QzNzMzOGE0YzQuLjhmZjJlMjEwZDA2MWVmYTNlZDY4ODlhODZhZmJlOWY3Yzg5MGQ5ZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50
Q29udmVyc2lvbi5jcHAKQEAgLTE3MSw2ICsxNzEsNyBAQCBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1
aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcihXaWRnZXQqIHdpZGdldCwgY29uc3Qg
VwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5n
ZXJUYXA6CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJU
YXA7CisgICAgICAgIG1fYXJlYSA9IEludFNpemUoZS5kYXRhLnR3b0ZpbmdlclRhcC5maXJzdEZp
bmdlcldpZHRoLCBlLmRhdGEudHdvRmluZ2VyVGFwLmZpcnN0RmluZ2VySGVpZ2h0KTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAg
ICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVl
NzEzNzgxZmI2NmMxZThlNDU5YzJiNWU4YjNhMTc0ZWFlNWJhYjYuLjg2Yjc5MDVlNGRkNTQyMjJi
Y2I4NDJiMTgzOWEwMDhkOTlkNjM0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0y
MyAgVGVycnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBI
YW5kbGUgdHdvLWZpbmdlciB0YXAgZ2VzdHVyZXMgaW4gdGhlIHNhbWUgd2F5IGFzIGxvbmctcHJl
c3MgZ2VzdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk5OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBO
ZXcgbGF5b3V0IHRlc3QgZm9yIGRpc3BhdGNoaW5nIGNvbnRleHQgbWVudXMgb24gYSB0d28tZmlu
Z2VyIHRhcAorICAgICAgICBnZXN0dXJlIHdoZW4gdG91Y2ggYWRqdXN0bWVudCBpcyBlbmFibGVk
LgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFz
IGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9u
cyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtz
LXR3by1maW5nZXItdGFwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdG91Y2hhZGp1
c3RtZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEw
LTIzICBFbGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEdl
bmVyYXRlZCBzaG91bGQgbm90IGJlIHN1cHBvcnRlZCBmb3IgdGhpbmdzIHdpdGggYSBzaGFkb3cK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28t
ZmluZ2VyLXRhcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91
Y2gtbGlua3MtdHdvLWZpbmdlci10YXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMTc4MTk2
MmFhNmY2OGM3M2Y3ZGViM2JmZGI4M2QxOTlmYjdlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtdHdvLWZpbmdlci10YXAtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIGlmIGEgdHdvIGZpbmdlciB0YXAgZ2VzdHVy
ZSBvbiBsaW5rcyB3aWxsIHRyaWdnZXIgYSBjb250ZXh0IG1lbnUgd2hlbiB0b3VjaCBhZGp1c3Rt
ZW50IGlzIHVzZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIGRp
cmVjdCBoaXRzLgorUEFTUworUEFTUworUEFTUworVGVzdGluZyBpbmRpcmVjdCBoaXRzLgorUEFT
UworUEFTUworUEFTUworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1s
aW5rcy10d28tZmluZ2VyLXRhcC5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Rv
dWNoLWxpbmtzLXR3by1maW5nZXItdGFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFlOWI4ZjMyZTBmMDRl
M2NlMGJjOTY4M2QzOTg0ZjI3MTdhNTRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28tZmluZ2VyLXRhcC5odG1sCkBAIC0wLDAg
KzEsODcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VG91
Y2ggQWRqdXN0bWVudCA6IFRlc3RpbmcgdGhhdCBhIGNvbnRleHQgbWVudSB3aWxsIGFwcGVhciBv
biBhIHR3by1maW5nZXIgdGFwIC0gYnVnIDk5OTQ3PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3NjcmlwdD4KKyAgICA8c3R5
bGU+CisgICAgICAgICNzYW5kYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICB9
CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+CisKKzxkaXYgaWQ9InNhbmRib3giPgor
PHA+PGEgaHJlZj0iIiBpZD0ibGluazEiPkk8L2E+IHByb3Bvc2UgdG8gY29uc2lkZXIgPGEgaHJl
Zj0iIiBpZD0ibGluazIiPnRoZSBxdWVzdGlvbjwvYT4sICJDYW4gbWFjaGluZXMgdGhpbms/Ijxi
cj5UaGlzIHNob3VsZCBiZWdpbiB3aXRoIGRlZmluaXRpb25zIG9mIHRoZSBtZWFuaW5nIG9mIHRo
ZSB0ZXJtcyAibWFjaGluZSIgYW5kIDxhIGhyZWY9IiIgaWQ9ImxpbmszIj4idGhpbmsuIjwvYT48
L3A+Cis8L2Rpdj4KKworPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Cis8ZGl2IGlkPSdjb25zb2xl
Jz48L2Rpdj4KKworPHNjcmlwdD4KKyAgICB2YXIgZWxlbWVudDsKKyAgICB2YXIgYWRqdXN0ZWRO
b2RlOworICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKKyAgICB2YXIg
ZSA9IHt9OworICAgIFsnc2FuZGJveCcsICdsaW5rMScsICdsaW5rMicsICdsaW5rMyddLmZvckVh
Y2goZnVuY3Rpb24oYSkgeworICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
YSk7CisgICAgfSk7CisKKyAgICBkb2N1bWVudC5vbmNvbnRleHRtZW51ID0gZnVuY3Rpb24oKSB7
IGRlYnVnKCJQQVNTIik7IH0KKworICAgIGZ1bmN0aW9uIHRlc3RUd29GaW5nZXJUYXAodG91Y2hw
b2ludCkKKyAgICB7CisgICAgICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJlVHdvRmluZ2VyVGFw
KQorICAgICAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVR3b0ZpbmdlclRhcCh0b3VjaHBvaW50
LmxlZnQsIHRvdWNocG9pbnQudG9wKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVidWco
Imdlc3R1cmVUd29GaW5nZXJUYXAgbm90IGltcGxlbWVudGVkIGJ5IHRoaXMgcGxhdGZvcm0uIik7
CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoKGVsZW1lbnQpCisgICAgewor
ICAgICAgICAvLyBUb3VjaCBkaXJlY3RseSBpbiB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50Lgor
ICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9mZnNldFRvdWNoUG9pbnQoZmluZEFic29sdXRlQm91
bmRzKGVsZW1lbnQpLCAnY2VudGVyJywgMCwgMjAsIDMwKTsKKyAgICAgICAgdGVzdFR3b0Zpbmdl
clRhcCh0b3VjaHBvaW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3Vj
aChlbGVtZW50KQorICAgIHsKKyAgICAgICAgLy8gVG91Y2gganVzdCByaWdodCBvZiB0aGUgZWxl
bWVudC4KKyAgICAgICAgdmFyIHRvdWNocG9pbnQgPSBvZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNv
bHV0ZUJvdW5kcyhlbGVtZW50KSwgJ3JpZ2h0JywgMTAsIDMwLCAyMCk7CisgICAgICAgIHRlc3RU
d29GaW5nZXJUYXAodG91Y2hwb2ludCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdERpcmVj
dFRvdWNoZXMoKQorICAgIHsKKyAgICAgICAgZGVidWcoJ1Rlc3RpbmcgZGlyZWN0IGhpdHMuJyk7
CisgICAgICAgIHRlc3REaXJlY3RUb3VjaChlLmxpbmsxKTsKKyAgICAgICAgdGVzdERpcmVjdFRv
dWNoKGUubGluazIpOworICAgICAgICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMyk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2hlcygpCisgICAgeworICAgICAgICBkZWJ1
ZygnVGVzdGluZyBpbmRpcmVjdCBoaXRzLicpOworICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaChl
LmxpbmsxKTsKKyAgICAgICAgdGVzdEluZGlyZWN0VG91Y2goZS5saW5rMik7CisgICAgICAgIHRl
c3RJbmRpcmVjdFRvdWNoKGUubGluazMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Rz
KCkKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0cyBpZiBhIHR3byBmaW5nZXIgdGFwIGdlc3R1
cmUgb24gbGlua3Mgd2lsbCB0cmlnZ2VyIGEgY29udGV4dCBtZW51IHdoZW4gdG91Y2ggYWRqdXN0
bWVudCBpcyB1c2VkLicpOworICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKKyAgICAg
ICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoZXMoKTsKKyAgICAgICAgICAgIGUuc2FuZGJveC5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICB9CisgICAgfQorICAgIHJ1blRlc3RzKCk7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170430</attachid>
            <date>2012-10-24 11:00:32 -0700</date>
            <delta_ts>2012-10-24 14:54:29 -0700</delta_ts>
            <desc>Patch for landing after fixing merge conflicts with WK99520</desc>
            <filename>bug-99947-20121024135907.patch</filename>
            <type>text/plain</type>
            <size>10416</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBjNzEwZDAxM2Q3Yjdl
YjYzM2Q3Y2RjMDBhMGMxODc5NmU1YjY3Zi4uM2YyM2MyYzc5OTgyOTY4OGEwYjVjY2VhMTQxOTUz
OWM4OWY3YzVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEwLTI0ICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEhhbmRsZSB0
d28tZmluZ2VyIHRhcCBnZXN0dXJlcyBpbiB0aGUgc2FtZSB3YXkgYXMgbG9uZy1wcmVzcyBnZXN0
dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5
NDcKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEN1cnJlbnRs
eSBhIGxvbmctcHJlc3MgZ2VzdHVyZSBpcyB1c2VkIHRvIGRpc3BhdGNoIGEgY29udGV4dCBtZW51
IChmb3IgcGxhdGZvcm1zIAorICAgICAgICBkZWZpbmluZyBDT05URVhUX01FTlVTKSBvciB0byBz
ZWxlY3QgdGV4dCAoZm9yIEFuZHJvaWQpLiBBZGRpdGlvbmFsbHksIGZvciBwbGF0Zm9ybXMgCisg
ICAgICAgIGRlZmluaW5nIFRPVUNIX0FESlVTVE1FTlQsIGdlc3R1cmUgdGFyZ2V0IGZ1enppbmcg
aXMgcGVyZm9ybWVkIG9uIHRoZSBsb2NhdGlvbiBhbmQgCisgICAgICAgIHRvdWNoIGFyZWEgb2Yg
dGhlIGxvbmctcHJlc3MgZ2VzdHVyZS4KKworICAgICAgICBUaGlzIENMIHdpbGwgY2F1c2UgdHdv
LWZpbmdlciB0YXAgZ2VzdHVyZXMgdG8gYmUgaGFuZGxlZCBpbiB0aGUgc2FtZSB3YXkgYXMgbG9u
Zy1wcmVzcyAKKyAgICAgICAgZ2VzdHVyZXMuIFRoZSBsb2NhdGlvbiBhbmQgdG91Y2ggYXJlYSBv
ZiBhIHR3by1maW5nZXIgdGFwIGdlc3R1cmUgd2lsbCBjb3JyZXNwb25kIHRvIAorICAgICAgICB0
aGUgbG9jYXRpb24gYW5kIHRvdWNoIGFyZWEgb2YgdGhlIGZpcnN0IGZpbmdlciBkb3duOyB0aGUg
bG9jYXRpb24vYXJlYSBvZiB0aGUgc2Vjb25kIAorICAgICAgICBmaW5nZXIgd2lsbCBiZSBpZ25v
cmVkLgorCisgICAgICAgIFRlc3Q6IHRvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28tZmlu
Z2VyLXRhcC5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVMb25nUHJlc3MpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1
cmVGb3JUZXh0U2VsZWN0aW9uT3JDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXApOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24pOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgorCiAyMDEyLTEwLTI0ICBQYXJ0
aCBQYXRlbCAgPHBhcnBhdGVsQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEV4dGVu
ZGluZyBleGlzdGluZyBUaHJlYWRVbnNhZmUgc2luZ2xldG9ucyBpbiB3ZWJraXQgdG8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGQzNjRkZDVkMmE4N2RiNjE2ZDFjMzExOWNkZjE2ZWEz
YzFkYTUyMS4uMjlmNmVkMmYxYTU2NWY3OTc4NzczZmZiMGU1ZjJkOTMzNGU1ZTVkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0yNCAgVGVycnkg
QW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBIYW5kbGUgdHdv
LWZpbmdlciB0YXAgZ2VzdHVyZXMgaW4gdGhlIHNhbWUgd2F5IGFzIGxvbmctcHJlc3MgZ2VzdHVy
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBTZXQgdGhlIGFy
ZWEgb2YgYSB0d28tZmluZ2VyIHRhcCBnZXN0dXJlIHRvIGJlIHRoZSBhcmVhIG9mIHRoZSBlbmNs
b3NpbmcKKyAgICAgICAgcmVjdGFuZ2xlIGZvciB0aGUgZmlyc3QgZmluZ2VyIGRvd24uCisKKyAg
ICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRl
cik6CisKIDIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9u
IGZvciBMaXN0SGFzaFNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDA5
ZmIwYTkyMzQ0MGJjNGE1MDliMTdmNWNiNWEzNzdhYTAzM2RmODQuLjRiZWZlMDRiNjYyMmZiZGFi
YTc5NThjZTYwYTFmMTdhZDc5Njc2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTI1NzQsNiArMjU3NCwxMSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVy
ZVRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogCiBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1cmVF
dmVudCYgZ2VzdHVyZUV2ZW50KQogeworICAgIHJldHVybiBoYW5kbGVHZXN0dXJlRm9yVGV4dFNl
bGVjdGlvbk9yQ29udGV4dE1lbnUoZ2VzdHVyZUV2ZW50KTsKK30KKworYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZUdlc3R1cmVGb3JUZXh0U2VsZWN0aW9uT3JDb250ZXh0TWVudShjb25zdCBQbGF0
Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQorewogI2lmIE9TKEFORFJPSUQpCiAgICAg
SW50UG9pbnQgaGl0VGVzdFBvaW50ID0gbV9mcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRz
KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpKTsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGhp
dFRlc3RSZXN1bHRBdFBvaW50KGhpdFRlc3RQb2ludCwgdHJ1ZSk7CkBAIC0yNTkzLDExICsyNTk4
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVMb25nUHJlc3MoY29uc3QgUGxh
dGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmUKIAogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZUdlc3R1cmVUd29GaW5nZXJUYXAoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVF
dmVudCkKIHsKLSNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICByZXR1cm4gc2VuZENvbnRl
eHRNZW51RXZlbnRGb3JHZXN0dXJlKGdlc3R1cmVFdmVudCk7Ci0jZWxzZQotICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgorICAgIHJldHVybiBoYW5kbGVHZXN0dXJlRm9yVGV4dFNlbGVjdGlvbk9y
Q29udGV4dE1lbnUoZ2VzdHVyZUV2ZW50KTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZUdlc3R1cmVTY3JvbGxVcGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVF
dmVudCkKQEAgLTI2NzAsNiArMjY3MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0
dXJlUG9zaXRpb24oY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVuCiAgICAg
ICAgIGJlc3RDbGlja2FibGVOb2RlRm9yVG91Y2hQb2ludChnZXN0dXJlRXZlbnQucG9zaXRpb24o
KSwgSW50U2l6ZShnZXN0dXJlRXZlbnQuYXJlYSgpLndpZHRoKCkgLyAyLCBnZXN0dXJlRXZlbnQu
YXJlYSgpLmhlaWdodCgpIC8gMiksIGFkanVzdGVkUG9pbnQsIHRhcmdldE5vZGUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CisgICAg
Y2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOgogICAgICAgICBiZXN0Q29u
dGV4dE1lbnVOb2RlRm9yVG91Y2hQb2ludChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgSW50U2l6
ZShnZXN0dXJlRXZlbnQuYXJlYSgpLndpZHRoKCkgLyAyLCBnZXN0dXJlRXZlbnQuYXJlYSgpLmhl
aWdodCgpIC8gMiksIGFkanVzdGVkUG9pbnQsIHRhcmdldE5vZGUpOwogICAgICAgICBicmVhazsK
ICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggOWEzNjFmMmRh
YzQyZDExNzdmNmJhNGI5MmQ4ZGYzZWQ4MDQxN2E0ZS4uODY5MzhlMDU2MmYzZGZkZDM0YTlmMzNl
NmIwMDdlZDE5YTUxZDI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zNjUs
NiArMzY1LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgYm9v
bCBoYW5kbGVHZXN0dXJlU2Nyb2xsQ29yZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYsIFBs
YXRmb3JtV2hlZWxFdmVudEdyYW51bGFyaXR5LCBib29sIGxhdGNoZWRXaGVlbCk7CiAgICAgYm9v
bCBoYW5kbGVHZXN0dXJlVGFwRG93bigpOworICAgIGJvb2wgaGFuZGxlR2VzdHVyZUZvclRleHRT
ZWxlY3Rpb25PckNvbnRleHRNZW51KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAjZW5k
aWYKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDBmNGY2ZDVhODY4NTI3
NGU0YWFhMDZmNmM2YzYzY2QzNzMzOGE0YzQuLjhmZjJlMjEwZDA2MWVmYTNlZDY4ODlhODZhZmJl
OWY3Yzg5MGQ5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTE3MSw2ICsxNzEsNyBAQCBQbGF0Zm9ybUdl
c3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcihXaWRnZXQqIHdp
ZGdldCwgY29uc3QgVwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdl
c3R1cmVUd29GaW5nZXJUYXA6CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1
cmVUd29GaW5nZXJUYXA7CisgICAgICAgIG1fYXJlYSA9IEludFNpemUoZS5kYXRhLnR3b0Zpbmdl
clRhcC5maXJzdEZpbmdlcldpZHRoLCBlLmRhdGEudHdvRmluZ2VyVGFwLmZpcnN0RmluZ2VySGVp
Z2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9u
Z1ByZXNzOgogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNz
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDIzMzYwNTFiZGIxYmRmM2E4YjQ3ZmMzZWY0ZDk1ZGVmZjFkZDNjNWYuLjliNTIx
Mzk1MzU0NmJlOGJiYzcyZjU2NGM2NDE3OTkwYWI2NmVkNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMC0yNCAgVGVycnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4K
KworICAgICAgICBIYW5kbGUgdHdvLWZpbmdlciB0YXAgZ2VzdHVyZXMgaW4gdGhlIHNhbWUgd2F5
IGFzIGxvbmctcHJlc3MgZ2VzdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk5OTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4K
KworICAgICAgICBOZXcgbGF5b3V0IHRlc3QgZm9yIGRpc3BhdGNoaW5nIGNvbnRleHQgbWVudXMg
b24gYSB0d28tZmluZ2VyIHRhcAorICAgICAgICBnZXN0dXJlIHdoZW4gdG91Y2ggYWRqdXN0bWVu
dCBpcyBlbmFibGVkLgorCisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLXR3
by1maW5nZXItdGFwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdG91Y2hhZGp1c3Rt
ZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTI0
ICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgogCiAg
ICAgICAgIENTUzMgTWVkaWEgUXVlcmllcyAtIGFkZCByZXNvbHV0aW9uIHRlc3RzIHRvIFczQyB0
ZXN0IHN1aXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gt
bGlua3MtdHdvLWZpbmdlci10YXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iZTE3ODE5NjJhYTZmNjhjNzNmN2RlYjNiZmRiODNkMTk5ZmI3ZWFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXIt
dGFwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyBpZiBhIHR3byBmaW5nZXIg
dGFwIGdlc3R1cmUgb24gbGlua3Mgd2lsbCB0cmlnZ2VyIGEgY29udGV4dCBtZW51IHdoZW4gdG91
Y2ggYWRqdXN0bWVudCBpcyB1c2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
VGVzdGluZyBkaXJlY3QgaGl0cy4KK1BBU1MKK1BBU1MKK1BBU1MKK1Rlc3RpbmcgaW5kaXJlY3Qg
aGl0cy4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1l
bnQvdG91Y2gtbGlua3MtdHdvLWZpbmdlci10YXAuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRq
dXN0bWVudC90b3VjaC1saW5rcy10d28tZmluZ2VyLXRhcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZTli
OGYzMmUwZjA0ZTNjZTBiYzk2ODNkMzk4NGYyNzE3YTU0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtdHdvLWZpbmdlci10YXAuaHRt
bApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHRpdGxlPlRvdWNoIEFkanVzdG1lbnQgOiBUZXN0aW5nIHRoYXQgYSBjb250ZXh0IG1lbnUgd2ls
bCBhcHBlYXIgb24gYSB0d28tZmluZ2VyIHRhcCAtIGJ1ZyA5OTk0NzwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVudC5qcyI+PC9zY3JpcHQ+
CisgICAgPHN0eWxlPgorICAgICAgICAjc2FuZGJveCB7CisgICAgICAgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8ZGl2IGlkPSJz
YW5kYm94Ij4KKzxwPjxhIGhyZWY9IiIgaWQ9ImxpbmsxIj5JPC9hPiBwcm9wb3NlIHRvIGNvbnNp
ZGVyIDxhIGhyZWY9IiIgaWQ9ImxpbmsyIj50aGUgcXVlc3Rpb248L2E+LCAiQ2FuIG1hY2hpbmVz
IHRoaW5rPyI8YnI+VGhpcyBzaG91bGQgYmVnaW4gd2l0aCBkZWZpbml0aW9ucyBvZiB0aGUgbWVh
bmluZyBvZiB0aGUgdGVybXMgIm1hY2hpbmUiIGFuZCA8YSBocmVmPSIiIGlkPSJsaW5rMyI+InRo
aW5rLiI8L2E+PC9wPgorPC9kaXY+CisKKzxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgorPGRpdiBp
ZD0nY29uc29sZSc+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgdmFyIGVsZW1lbnQ7CisgICAgdmFy
IGFkanVzdGVkTm9kZTsKKyAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRz
CisgICAgdmFyIGUgPSB7fTsKKyAgICBbJ3NhbmRib3gnLCAnbGluazEnLCAnbGluazInLCAnbGlu
azMnXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAgICAgZVthXSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGEpOworICAgIH0pOworCisgICAgZG9jdW1lbnQub25jb250ZXh0bWVudSA9IGZ1
bmN0aW9uKCkgeyBkZWJ1ZygiUEFTUyIpOyB9CisKKyAgICBmdW5jdGlvbiB0ZXN0VHdvRmluZ2Vy
VGFwKHRvdWNocG9pbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnRTZW5kZXIuZ2VzdHVyZVR3
b0ZpbmdlclRhcCkKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUd29GaW5nZXJUYXAo
dG91Y2hwb2ludC5sZWZ0LCB0b3VjaHBvaW50LnRvcCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGRlYnVnKCJnZXN0dXJlVHdvRmluZ2VyVGFwIG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBs
YXRmb3JtLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3REaXJlY3RUb3VjaChlbGVtZW50
KQorICAgIHsKKyAgICAgICAgLy8gVG91Y2ggZGlyZWN0bHkgaW4gdGhlIGNlbnRlciBvZiB0aGUg
ZWxlbWVudC4KKyAgICAgICAgdmFyIHRvdWNocG9pbnQgPSBvZmZzZXRUb3VjaFBvaW50KGZpbmRB
YnNvbHV0ZUJvdW5kcyhlbGVtZW50KSwgJ2NlbnRlcicsIDAsIDIwLCAzMCk7CisgICAgICAgIHRl
c3RUd29GaW5nZXJUYXAodG91Y2hwb2ludCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdElu
ZGlyZWN0VG91Y2goZWxlbWVudCkKKyAgICB7CisgICAgICAgIC8vIFRvdWNoIGp1c3QgcmlnaHQg
b2YgdGhlIGVsZW1lbnQuCisgICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2lu
dChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudCksICdyaWdodCcsIDEwLCAzMCwgMjApOworICAg
ICAgICB0ZXN0VHdvRmluZ2VyVGFwKHRvdWNocG9pbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3REaXJlY3RUb3VjaGVzKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIGRpcmVj
dCBoaXRzLicpOworICAgICAgICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMSk7CisgICAgICAgIHRl
c3REaXJlY3RUb3VjaChlLmxpbmsyKTsKKyAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazMp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RJbmRpcmVjdFRvdWNoZXMoKQorICAgIHsKKyAg
ICAgICAgZGVidWcoJ1Rlc3RpbmcgaW5kaXJlY3QgaGl0cy4nKTsKKyAgICAgICAgdGVzdEluZGly
ZWN0VG91Y2goZS5saW5rMSk7CisgICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubGluazIpOwor
ICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaChlLmxpbmszKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0cygpCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2Fi
bGVOb2RlKSB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgaWYgYSB0d28gZmluZ2Vy
IHRhcCBnZXN0dXJlIG9uIGxpbmtzIHdpbGwgdHJpZ2dlciBhIGNvbnRleHQgbWVudSB3aGVuIHRv
dWNoIGFkanVzdG1lbnQgaXMgdXNlZC4nKTsKKyAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVz
KCk7CisgICAgICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7CisgICAgICAgICAgICBlLnNh
bmRib3guc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgfQorICAgIH0KKyAgICBydW5U
ZXN0cygpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>