<?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>66298</bug_id>
          
          <creation_ts>2011-08-16 06:48:18 -0700</creation_ts>
          <short_desc>WebSocket: Queue messages to be sent</short_desc>
          <delta_ts>2011-08-25 04:32:05 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65249</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451586</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-16 06:48:18 -0700</bug_when>
    <thetext>To send a Blob from WebSocket, we must read it asynchronously. Therefore, a Blob cannot be sent immediately, and other data types (String or ArrayBuffer) may also be blocked by other pending sending requests.

To get this behavior correctly, we need to create a queue of WebSocket messages to be sent, and send them in the order they arrived.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451596</commentid>
    <comment_count>1</comment_count>
      <attachid>104038</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-16 07:14:04 -0700</bug_when>
    <thetext>Created attachment 104038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452895</commentid>
    <comment_count>2</comment_count>
      <attachid>104038</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-18 00:57:34 -0700</bug_when>
    <thetext>Comment on attachment 104038
Patch

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

I feel the names don&apos;t look perfect.
IMO,
  SendItem -&gt; QueuedFrame
  addStringToSendQueue() -&gt; enqueueStringFrame()
  addRawDataToSendQueue() -&gt; enqueueRawFrame()
  SendQueue -&gt; OutgoingFrameQueue or SendingFrameQueue

What do you think?

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:763
&gt; +    m_sendQueue.append(item.release());
&gt; +}

Can you call processSendQueue() here instead of calling processSendQueue() in call sites?

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:776
&gt; +    m_sendQueue.append(item.release());
&gt; +}

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454441</commentid>
    <comment_count>3</comment_count>
      <attachid>104637</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-21 19:39:04 -0700</bug_when>
    <thetext>Created attachment 104637
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454442</commentid>
    <comment_count>4</comment_count>
      <attachid>104038</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-21 19:40:51 -0700</bug_when>
    <thetext>Comment on attachment 104038
Patch

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

In Patch v2, names are updated as you suggested.

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:763
&gt;&gt; +}
&gt; 
&gt; Can you call processSendQueue() here instead of calling processSendQueue() in call sites?

Fixed in patch v2.

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:776
&gt;&gt; +}
&gt; 
&gt; ditto.

Fixed too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454444</commentid>
    <comment_count>5</comment_count>
      <attachid>104637</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-21 20:04:19 -0700</bug_when>
    <thetext>Comment on attachment 104637
Patch v2

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

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:759
&gt; +void WebSocketChannel::enqueueStringFrame(OpCode opCode, const String&amp; string)

Is it possible to call enqueueStringFrame with an OpCode other than OpCodeText?
If not, we can omit OpCode argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456741</commentid>
    <comment_count>6</comment_count>
      <attachid>105155</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 03:10:47 -0700</bug_when>
    <thetext>Created attachment 105155
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456746</commentid>
    <comment_count>7</comment_count>
      <attachid>105155</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-25 03:16:36 -0700</bug_when>
    <thetext>Comment on attachment 105155
Patch v3

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456748</commentid>
    <comment_count>8</comment_count>
      <attachid>104637</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 03:17:30 -0700</bug_when>
    <thetext>Comment on attachment 104637
Patch v2

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

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:759
&gt;&gt; +void WebSocketChannel::enqueueStringFrame(OpCode opCode, const String&amp; string)
&gt; 
&gt; Is it possible to call enqueueStringFrame with an OpCode other than OpCodeText?
&gt; If not, we can omit OpCode argument.

OpCode argument has been removed, and this member function has been renamed to euqueueTextFrame so it clearly shows that a text frame is going to be sent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456759</commentid>
    <comment_count>9</comment_count>
      <attachid>105155</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-25 04:32:00 -0700</bug_when>
    <thetext>Comment on attachment 105155
Patch v3

Clearing flags on attachment: 105155

Committed r93773: &lt;http://trac.webkit.org/changeset/93773&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456760</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-25 04:32:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104038</attachid>
            <date>2011-08-16 07:14:04 -0700</date>
            <delta_ts>2011-08-21 19:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66298-20110816231402.patch</filename>
            <type>text/plain</type>
            <size>11204</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwMzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMmQ1MjY1OTA3NmZjOTc3
MzY5NDBkYWYxOTVhNGRlODQwZDAzODhiLi41MzZmZmM1MzBjN2M2ODk3YzIxODMyYTdlZjExOWRi
ZWRkYmMxNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDgtMTYgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBRdWV1
ZSBtZXNzYWdlcyB0byBiZSBzZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NjI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJsb2JzIG11c3QgYmUgcmVhZCBhc3luY2hyb25vdXNseSBhbmQgdGh1cyBj
YW5ub3QgYmUgc2VudCBpbW1lZGlhdGVseS4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvCisgICAgICAg
IGNyZWF0ZSBhIHF1ZXVlIG9mIG1lc3NhZ2VzIHRvIGJlIHNlbnQgaW4gb3JkZXIgdG8gaGFuZGxl
IHBlbmRpbmcgc2VuZCByZXF1ZXN0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFN0cmljdGx5
IHNwZWFraW5nLCB0aGVyZSBpcyBhIHNtYWxsIGNoYW5nZSBpbiBiZWhhdmlvciBidXQgaXQgaXMg
aGFyZCB0bworICAgICAgICByZXByb2R1Y2UgaW4gdGVzdHMuIFNlZSBkZXNjcmlwdGlvbiBvZiBX
ZWJTb2NrZXRDaGFubmVsOjpzZW5kIGJlbG93LgorCisgICAgICAgICogd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6Oldl
YlNvY2tldENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6c2Vu
ZCk6CisgICAgICAgIE5vdywgdGhpcyBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB0cnVlIGlmIGh5
YmktMTAgcHJvdG9jb2wgaXMgc2VsZWN0ZWQuIFRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UKKyAg
ICAgICAgc2hvdWxkIGJlIG1pbmltdW0sIGJlY2F1c2UgdGhlIGN1cnJlbnQgV2ViU29ja2V0IEFQ
SSBkZWZpbmVzIHRoZSByZXR1cm4gdHlwZSBvZiBXZWJTb2NrZXQuc2VuZCgpCisgICAgICAgIGlz
IHZvaWQgKHNlZSBhbHNvIGJ1ZyA2NTg1MCkuCisgICAgICAgIEl0J3MgaGFyZCB0byBtYWtlIFNv
Y2tldFN0cmVhbUhhbmRsZTo6c2VuZCgpIGZhaWwgZGVsaWJlcmF0ZWx5LCB0aGVyZWZvcmUgaXQn
cyBkaWZmaWN1bHQgdG8gd3JpdGUKKyAgICAgICAgYSB0ZXN0IHRvIGRldGVjdCB0aGlzIGJlaGF2
aW9yIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRpZENsb3Nl
U29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnN0YXJ0
Q2xvc2luZ0hhbmRzaGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpw
cm9jZXNzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6YWRkU3Ry
aW5nVG9TZW5kUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6YWRk
UmF3RGF0YVRvU2VuZFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NTZW5kUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
YWJvcnRTZW5kUXVldWUpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5o
OgorCiAyMDExLTA4LTE1ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBJbXBsZW1lbnQgcHJvcGVyIGhhbmRsaW5nIG9mIGZvY3VzaW4vZm9jdXNvdXQgZXZlbnRz
IGluIHJlZ2FyZCB0byBzaGFkb3cgRE9NIGJvdW5kYXJpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA5YWZjNzRjNWE3ZDhkNTk0ZjY5
ZDQ2YmZkMjg1MjRkMmYxMmNiZWY3Li4yYTIwNzJkYTdhYWM3M2Q1YTllYmVhZDdmOTUxOGEzYzQx
ZjM4OTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgV2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5l
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2NrZXRDaGEKICAgICAsIG1f
aWRlbnRpZmllcigwKQogICAgICwgbV91c2VIaXhpZTc2UHJvdG9jb2wodHJ1ZSkKICAgICAsIG1f
aGFzQ29udGludW91c0ZyYW1lKGZhbHNlKQorICAgICwgbV9zZW5kUXVldWVTdGF0dXMoU2VuZFF1
ZXVlT3BlbikKIHsKICAgICBBU1NFUlQobV9jb250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9jb250ZXh0KTsKQEAg
LTE0NSwxMCArMTQ2LDE5IEBAIFN0cmluZyBXZWJTb2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCgp
CiBib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewog
ICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5kICVzIiwgdGhpcywgbWVz
c2FnZS51dGY4KCkuZGF0YSgpKTsKLSAgICBDU3RyaW5nIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsK
LSAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3Rv
Y29sKSB7CisgICAgICAgIENTdHJpbmcgdXRmOCA9IG1lc3NhZ2UudXRmOCgpOwogICAgICAgICBy
ZXR1cm4gc2VuZEZyYW1lSGl4aWU3Nih1dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSk7Ci0gICAg
cmV0dXJuIHNlbmRGcmFtZShPcENvZGVUZXh0LCB1dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSk7
CisgICAgfQorICAgIGFkZFN0cmluZ1RvU2VuZFF1ZXVlKE9wQ29kZVRleHQsIG1lc3NhZ2UpOwor
ICAgIHByb2Nlc3NTZW5kUXVldWUoKTsKKyAgICAvLyBBY2NvcmRpbmcgdG8gV2ViU29ja2V0IEFQ
SSBzcGVjaWZpY2F0aW9uLCBXZWJTb2NrZXQuc2VuZCgpIHNob3VsZCByZXR1cm4gdm9pZCBpbnN0
ZWFkCisgICAgLy8gb2YgYm9vbGVhbi4gSG93ZXZlciwgb3VyIGltcGxlbWVudGF0aW9uIHN0aWxs
IHJldHVybnMgYm9vbGVhbiBkdWUgdG8gY29tcGF0aWJpbGl0eQorICAgIC8vIGNvbmNlcm4gKHNl
ZSBidWcgNjU4NTApLgorICAgIC8vIG1fY2hhbm5lbC0+c2VuZCgpIG1heSBoYXBwZW4gbGF0ZXIs
IHRodXMgaXQncyBub3QgYWx3YXlzIHBvc3NpYmxlIHRvIGtub3cgd2hldGhlcgorICAgIC8vIHRo
ZSBtZXNzYWdlIGhhcyBiZWVuIHNlbnQgdG8gdGhlIHNvY2tldCBzdWNjZXNzZnVsbHkuIEluIHRo
aXMgY2FzZSwgd2UgaGF2ZSBubyBjaG9pY2UKKyAgICAvLyBidXQgdG8gcmV0dXJuIHRydWUuCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHVuc2lnbmVkIGxvbmcgV2ViU29ja2V0Q2hhbm5lbDo6YnVm
ZmVyZWRBbW91bnQoKSBjb25zdApAQCAtMjM3LDYgKzI0Nyw4IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKiBoYW5kbGUpCiAg
ICAgbV9jbG9zZWQgPSB0cnVlOwogICAgIGlmIChtX2Nsb3NpbmdUaW1lci5pc0FjdGl2ZSgpKQog
ICAgICAgICBtX2Nsb3NpbmdUaW1lci5zdG9wKCk7CisgICAgaWYgKCFtX3VzZUhpeGllNzZQcm90
b2NvbCAmJiBtX3NlbmRRdWV1ZVN0YXR1cyAhPSBTZW5kUXVldWVDbG9zZWQpCisgICAgICAgIGFi
b3J0U2VuZFF1ZXVlKCk7CiAgICAgaWYgKG1faGFuZGxlKSB7CiAgICAgICAgIG1fdW5oYW5kbGVk
QnVmZmVyZWRBbW91bnQgPSBtX2hhbmRsZS0+YnVmZmVyZWRBbW91bnQoKTsKICAgICAgICAgaWYg
KG1fc3VzcGVuZGVkKQpAQCAtNDE2LDE5ICs0MjgsMTkgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
OjpzdGFydENsb3NpbmdIYW5kc2hha2UoKQogICAgIGlmIChtX2Nsb3NpbmcpCiAgICAgICAgIHJl
dHVybjsKICAgICBBU1NFUlQobV9oYW5kbGUpOwotICAgIGJvb2wgc2VudFN1Y2Nlc3NmdWxseTsK
ICAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpIHsKICAgICAgICAgVmVjdG9yPGNoYXI+IGJ1
ZjsKICAgICAgICAgYnVmLmFwcGVuZCgnXHhmZicpOwogICAgICAgICBidWYuYXBwZW5kKCdcMCcp
OwotICAgICAgICBzZW50U3VjY2Vzc2Z1bGx5ID0gbV9oYW5kbGUtPnNlbmQoYnVmLmRhdGEoKSwg
YnVmLnNpemUoKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIHNlbnRTdWNjZXNzZnVsbHkgPSBzZW5k
RnJhbWUoT3BDb2RlQ2xvc2UsICIiLCAwKTsgLy8gRklYTUU6IFNlbmQgc3RhdHVzIGNvZGUgYW5k
IHJlYXNvbiBtZXNzYWdlLgotCi0gICAgaWYgKCFzZW50U3VjY2Vzc2Z1bGx5KSB7Ci0gICAgICAg
IG1faGFuZGxlLT5kaXNjb25uZWN0KCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFt
X2hhbmRsZS0+c2VuZChidWYuZGF0YSgpLCBidWYuc2l6ZSgpKSkgeworICAgICAgICAgICAgbV9o
YW5kbGUtPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICAgIGFkZFJhd0RhdGFUb1NlbmRRdWV1ZShPcENvZGVDbG9zZSwgIiIs
IDApOyAvLyBGSVhNRTogU2VuZCBzdGF0dXMgY29kZSBhbmQgcmVhc29uIG1lc3NhZ2UuCisgICAg
ICAgIHByb2Nlc3NTZW5kUXVldWUoKTsKICAgICB9CisKICAgICBtX2Nsb3NpbmcgPSB0cnVlOwog
ICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZFN0YXJ0Q2xvc2luZ0hhbmRz
aGFrZSgpOwpAQCAtNjI3LDE1ICs2MzksMTYgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9j
ZXNzRnJhbWUoKQogICAgICAgICBza2lwQnVmZmVyKGZyYW1lLmZyYW1lRW5kIC0gbV9idWZmZXIp
OwogICAgICAgICBtX3JlY2VpdmVkQ2xvc2luZ0hhbmRzaGFrZSA9IHRydWU7CiAgICAgICAgIHN0
YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwotICAgICAgICBpZiAobV9jbG9zaW5nKQotICAgICAgICAg
ICAgbV9oYW5kbGUtPmNsb3NlKCk7IC8vIENsb3NlIGFmdGVyIHNlbmRpbmcgYSBjbG9zZSBmcmFt
ZS4KKyAgICAgICAgaWYgKG1fY2xvc2luZykgeworICAgICAgICAgICAgbV9zZW5kUXVldWVTdGF0
dXMgPSBTZW5kUXVldWVDbG9zaW5nOworICAgICAgICAgICAgcHJvY2Vzc1NlbmRRdWV1ZSgpOwor
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPcENvZGVQaW5nOiB7Ci0gICAg
ICAgIGJvb2wgcmVzdWx0ID0gc2VuZEZyYW1lKE9wQ29kZVBvbmcsIGZyYW1lLnBheWxvYWQsIGZy
YW1lLnBheWxvYWRMZW5ndGgpOworICAgICAgICBhZGRSYXdEYXRhVG9TZW5kUXVldWUoT3BDb2Rl
UG9uZywgZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCk7CiAgICAgICAgIHNraXBC
dWZmZXIoZnJhbWUuZnJhbWVFbmQgLSBtX2J1ZmZlcik7Ci0gICAgICAgIGlmICghcmVzdWx0KQot
ICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgYSBwb25nIGZyYW1lLiIpOworICAgICAg
ICBwcm9jZXNzU2VuZFF1ZXVlKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtNzM4LDYg
Kzc1MSw3MSBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZUhpeGllNzYoKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBXZWJTb2NrZXRDaGFubmVsOjphZGRTdHJpbmdU
b1NlbmRRdWV1ZShPcENvZGUgb3BDb2RlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBB
U1NFUlQoIW1fdXNlSGl4aWU3NlByb3RvY29sKTsKKyAgICBBU1NFUlQobV9zZW5kUXVldWVTdGF0
dXMgPT0gU2VuZFF1ZXVlT3Blbik7CisgICAgT3duUHRyPFNlbmRJdGVtPiBpdGVtID0gYWRvcHRQ
dHIobmV3IFNlbmRJdGVtKTsKKyAgICBpdGVtLT5vcENvZGUgPSBvcENvZGU7CisgICAgaXRlbS0+
aXRlbVR5cGUgPSBTZW5kSXRlbVN0cmluZzsKKyAgICBpdGVtLT5zdHJpbmdEYXRhID0gc3RyaW5n
OworICAgIG1fc2VuZFF1ZXVlLmFwcGVuZChpdGVtLnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6YWRkUmF3RGF0YVRvU2VuZFF1ZXVlKE9wQ29kZSBvcENvZGUsIGNvbnN0
IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQoreworICAgIEFTU0VSVCghbV91c2VIaXhp
ZTc2UHJvdG9jb2wpOworICAgIEFTU0VSVChtX3NlbmRRdWV1ZVN0YXR1cyA9PSBTZW5kUXVldWVP
cGVuKTsKKyAgICBPd25QdHI8U2VuZEl0ZW0+IGl0ZW0gPSBhZG9wdFB0cihuZXcgU2VuZEl0ZW0p
OworICAgIGl0ZW0tPm9wQ29kZSA9IG9wQ29kZTsKKyAgICBpdGVtLT5pdGVtVHlwZSA9IFNlbmRJ
dGVtVmVjdG9yOworICAgIGl0ZW0tPnZlY3RvckRhdGEucmVzaXplKGRhdGFMZW5ndGgpOworICAg
IGlmIChkYXRhTGVuZ3RoKQorICAgICAgICBtZW1jcHkoaXRlbS0+dmVjdG9yRGF0YS5kYXRhKCks
IGRhdGEsIGRhdGFMZW5ndGgpOworICAgIG1fc2VuZFF1ZXVlLmFwcGVuZChpdGVtLnJlbGVhc2Uo
KSk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc1NlbmRRdWV1ZSgpCit7Cisg
ICAgQVNTRVJUKCFtX3VzZUhpeGllNzZQcm90b2NvbCk7CisgICAgaWYgKG1fc2VuZFF1ZXVlU3Rh
dHVzID09IFNlbmRRdWV1ZUNsb3NlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKCFt
X3NlbmRRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgT3duUHRyPFNlbmRJdGVtPiBpdGVtID0g
bV9zZW5kUXVldWUudGFrZUZpcnN0KCk7CisgICAgICAgIHN3aXRjaCAoaXRlbS0+aXRlbVR5cGUp
IHsKKyAgICAgICAgY2FzZSBTZW5kSXRlbVN0cmluZzogeworICAgICAgICAgICAgQ1N0cmluZyB1
dGY4ID0gaXRlbS0+c3RyaW5nRGF0YS51dGY4KCk7CisgICAgICAgICAgICBpZiAoIXNlbmRGcmFt
ZShpdGVtLT5vcENvZGUsIHV0ZjguZGF0YSgpLCB1dGY4Lmxlbmd0aCgpKSkKKyAgICAgICAgICAg
ICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2VuZEl0ZW1WZWN0b3I6CisgICAg
ICAgICAgICBpZiAoIXNlbmRGcmFtZShpdGVtLT5vcENvZGUsIGl0ZW0tPnZlY3RvckRhdGEuZGF0
YSgpLCBpdGVtLT52ZWN0b3JEYXRhLnNpemUoKSkpCisgICAgICAgICAgICAgICAgZmFpbCgiRmFp
bGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlQobV9zZW5kUXVldWUu
aXNFbXB0eSgpKTsKKyAgICBpZiAobV9zZW5kUXVldWVTdGF0dXMgPT0gU2VuZFF1ZXVlQ2xvc2lu
ZykgeworICAgICAgICBtX3NlbmRRdWV1ZVN0YXR1cyA9IFNlbmRRdWV1ZUNsb3NlZDsKKyAgICAg
ICAgbV9oYW5kbGUtPmNsb3NlKCk7CisgICAgfQorfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmFib3J0U2VuZFF1ZXVlKCkKK3sKKyAgICBBU1NFUlQoIW1fdXNlSGl4aWU3NlByb3RvY29sKTsK
KyAgICBtX3NlbmRRdWV1ZS5jbGVhcigpOworICAgIG1fc2VuZFF1ZXVlU3RhdHVzID0gU2VuZFF1
ZXVlQ2xvc2VkOworfQorCiBib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmRGcmFtZShPcENvZGUg
b3BDb2RlLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCkKIHsKICAgICBBU1NF
UlQobV9oYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuaAppbmRleCAwZmQ5NmYxNjFlYzRlOTY0OWUzZWI0ZGMwNjc4ZTE4NzUyZDYzMWZhLi42ZGY4
NzBjODAzY2RiZmM4ZDRhNDliNGVlMWNjN2NhY2E3NjM0MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1
ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2UuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTI3LDYgKzEyOCw1MCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgcHJvY2Vzc0ZyYW1lKCk7CiAgICAgICAgIGJvb2wgcHJvY2Vzc0Zy
YW1lSGl4aWU3NigpOwogCisgICAgICAgIC8vIEl0IGlzIGFsbG93ZWQgdG8gc2VuZCBhIEJsb2Ig
YXMgYSBiaW5hcnkgZnJhbWUgaWYgaHliaS0xMCBwcm90b2NvbCBpcyBpbiB1c2UuIFNlbmRpbmcg
YSBCbG9iCisgICAgICAgIC8vIGNhbiBiZSBkZWxheWVkIGJlY2F1c2UgaXQgbXVzdCBiZSByZWFk
IGFzeW5jaHJvbm91c2x5LiBPdGhlciB0eXBlcyBvZiBkYXRhIChTdHJpbmcgb3IKKyAgICAgICAg
Ly8gQXJyYXlCdWZmZXIpIG1heSBhbHNvIGJlIGJsb2NrZWQgYnkgcHJlY2VkaW5nIHNlbmRpbmcg
cmVxdWVzdCBvZiBhIEJsb2IuCisgICAgICAgIC8vCisgICAgICAgIC8vICJTZW5kIHF1ZXVlIiBp
cyB1c2VkIHRvIGFkZHJlc3MgdGhpcyBzaXR1YXRpb24uIFdoZW5ldmVyIGEgbmV3IGRhdGEgZnJh
bWUgaXMgZ29pbmcgdG8gYmUgc2VudCwKKyAgICAgICAgLy8gaXQgZmlyc3QgbXVzdCBnbyB0byB0
aGUgc2VuZCBxdWV1ZS4gSXRlbXMgaW4gdGhlIHF1ZXVlIGFyZSBwcm9jZXNzZWQgaW4gdGhlIG9y
ZGVyIHRoZXkgd2VyZQorICAgICAgICAvLyBwdXQgaW50byB0aGUgcXVldWUuIEEgU2VuZEl0ZW0g
b2YgdGhlIHR5cGUgU2VuZEl0ZW1CbG9iIGJsb2NrcyBmdXJ0aGVyIHByb2Nlc3NpbmcgdW50aWwg
dGhlCisgICAgICAgIC8vIEJsb2IgaXMgY29tcGxldGVseSByZWFkIGFuZCBzZW50IHRvIHRoZSBz
b2NrZXQgc3RyZWFtLgorICAgICAgICAvLworICAgICAgICAvLyBTZW5kIHF1ZXVlIGlzIG5vdCB1
c2VkIHdoZW4gaGl4aWUtNzYgcHJvdG9jb2wgaXMgY2hvc2VuLgorICAgICAgICBlbnVtIFNlbmRJ
dGVtVHlwZSB7CisgICAgICAgICAgICBTZW5kSXRlbVN0cmluZywKKyAgICAgICAgICAgIFNlbmRJ
dGVtVmVjdG9yCisgICAgICAgICAgICAvLyBGSVhNRTogQWRkIFNlbmRJdGVtQmxvYi4KKyAgICAg
ICAgfTsKKyAgICAgICAgc3RydWN0IFNlbmRJdGVtIHsKKyAgICAgICAgICAgIE9wQ29kZSBvcENv
ZGU7CisgICAgICAgICAgICBTZW5kSXRlbVR5cGUgaXRlbVR5cGU7CisgICAgICAgICAgICAvLyBP
bmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGl0ZW1zIGlzIHVzZWQsIGFjY29yZGluZyB0byB0aGUg
dmFsdWUgb2YgaXRlbVR5cGUuCisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nRGF0YTsKKyAgICAg
ICAgICAgIFZlY3RvcjxjaGFyPiB2ZWN0b3JEYXRhOworICAgICAgICAgICAgLy8gRklYTUU6IEFk
ZCBibG9iRGF0YS4KKyAgICAgICAgfTsKKyAgICAgICAgdm9pZCBhZGRTdHJpbmdUb1NlbmRRdWV1
ZShPcENvZGUsIGNvbnN0IFN0cmluZyYpOworICAgICAgICB2b2lkIGFkZFJhd0RhdGFUb1NlbmRR
dWV1ZShPcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKTsKKyAgICAg
ICAgLy8gRklYTUU6IEFkZCBhZGRCbG9iVG9TZW5kUXVldWUoKS4KKworICAgICAgICB2b2lkIHBy
b2Nlc3NTZW5kUXVldWUoKTsKKyAgICAgICAgdm9pZCBhYm9ydFNlbmRRdWV1ZSgpOworCisgICAg
ICAgIGVudW0gU2VuZFF1ZXVlU3RhdHVzIHsKKyAgICAgICAgICAgIC8vIEl0IGlzIGFsbG93ZWQg
dG8gcHV0IGEgU2VuZEl0ZW0gaW50byB0aGUgc2VuZCBxdWV1ZS4KKyAgICAgICAgICAgIFNlbmRR
dWV1ZU9wZW4sCisgICAgICAgICAgICAvLyBDbG9zZSBmcmFtZSBoYXMgYWxyZWFkeSBiZWVuIHB1
dCBpbnRvIHRoZSBzZW5kIHF1ZXVlIGJ1dCBtYXkgbm90IGhhdmUgYmVlbiBzZW50IHlldDsKKyAg
ICAgICAgICAgIC8vIG1faGFuZGxlLT5jbG9zZSgpIHdpbGwgYmUgY2FsbGVkIGFzIHNvb24gYXMg
dGhlIHNlbmQgcXVldWUgaXMgY2xlYXJlZC4gSXQgaXMgbm90CisgICAgICAgICAgICAvLyBhbGxv
d2VkIHRvIHB1dCBhIG5ldyBTZW5kSXRlbSBpbnRvIHRoZSBzZW5kIHF1ZXVlLgorICAgICAgICAg
ICAgU2VuZFF1ZXVlQ2xvc2luZywKKyAgICAgICAgICAgIC8vIENsb3NlIGZyYW1lIGhhcyBiZWVu
IHNlbnQgb3IgdGhlIHNlbnQgcXVldWUgd2FzIGFib3J0ZWQuIEl0IGlzIG5vdCBhbGxvd2VkIHRv
IHB1dAorICAgICAgICAgICAgLy8gYSBuZXcgU2VuZEl0ZW0gdG8gdGhlIHNlbmQgcXVldWUuCisg
ICAgICAgICAgICBTZW5kUXVldWVDbG9zZWQKKyAgICAgICAgfTsKKworICAgICAgICAvLyBJZiB5
b3UgYXJlIGdvaW5nIHRvIHNlbmQgYSBoeWJpLTEwIGZyYW1lLCB5b3UgbmVlZCB0byB1c2Ugc2Vu
ZCBxdWV1ZSBpbnN0ZWFkIG9mIGNhbGwKKyAgICAgICAgLy8gc2VuZEZyYW1lKCkgZGlyZWN0bHku
CiAgICAgICAgIGJvb2wgc2VuZEZyYW1lKE9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90
IGRhdGFMZW5ndGgpOwogICAgICAgICBib29sIHNlbmRGcmFtZUhpeGllNzYoY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpOwogCkBAIC0xNTQsNiArMTk5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIG1faGFzQ29udGludW91c0ZyYW1lOwogICAgICAgICBP
cENvZGUgbV9jb250aW51b3VzRnJhbWVPcENvZGU7CiAgICAgICAgIFZlY3RvcjxjaGFyPiBtX2Nv
bnRpbnVvdXNGcmFtZURhdGE7CisKKyAgICAgICAgRGVxdWU8T3duUHRyPFNlbmRJdGVtPiA+IG1f
c2VuZFF1ZXVlOworICAgICAgICBTZW5kUXVldWVTdGF0dXMgbV9zZW5kUXVldWVTdGF0dXM7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104637</attachid>
            <date>2011-08-21 19:39:04 -0700</date>
            <delta_ts>2011-08-25 03:17:30 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-66298-20110822113903.patch</filename>
            <type>text/plain</type>
            <size>11730</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM0MjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhM2EwZjFlY2JlYTJmNzBk
MTg5OTY3ZjBiMWE3NzI0Y2ZlMGIyYmYxLi5iZDQ4ZDc2YjE1N2Q5OWY2ZWU3OGVjNzFhYjU4YTZh
OGFjNjFiOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDgtMjEgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBRdWV1
ZSBtZXNzYWdlcyB0byBiZSBzZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NjI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJsb2JzIG11c3QgYmUgcmVhZCBhc3luY2hyb25vdXNseSBhbmQgdGh1cyBj
YW5ub3QgYmUgc2VudCBpbW1lZGlhdGVseS4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvCisgICAgICAg
IGNyZWF0ZSBhIHF1ZXVlIG9mIG1lc3NhZ2VzIHRvIGJlIHNlbnQgaW4gb3JkZXIgdG8gaGFuZGxl
IHBlbmRpbmcgcmVxdWVzdHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBTdHJpY3RseSBzcGVh
a2luZywgdGhlcmUgaXMgYSBzbWFsbCBjaGFuZ2UgaW4gYmVoYXZpb3IgYnV0IGl0IGlzIGhhcmQg
dG8KKyAgICAgICAgcmVwcm9kdWNlIGluIHRlc3RzLiBTZWUgZGVzY3JpcHRpb24gb2YgV2ViU29j
a2V0Q2hhbm5lbDo6c2VuZCBiZWxvdy4KKworICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2Nr
ZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmQpOgor
ICAgICAgICBOb3csIHRoaXMgZnVuY3Rpb24gYWx3YXlzIHJldHVybnMgdHJ1ZSBpZiBoeWJpLTEw
IHByb3RvY29sIGlzIHNlbGVjdGVkLiBUaGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlCisgICAgICAg
IHNob3VsZCBiZSBtaW5pbXVtLCBiZWNhdXNlIHRoZSBjdXJyZW50IFdlYlNvY2tldCBBUEkgZGVm
aW5lcyB0aGUgcmV0dXJuIHR5cGUgb2YgV2ViU29ja2V0LnNlbmQoKQorICAgICAgICBpcyB2b2lk
IChzZWUgYWxzbyBidWcgNjU4NTApLgorICAgICAgICBJdCdzIGhhcmQgdG8gbWFrZSBTb2NrZXRT
dHJlYW1IYW5kbGU6OnNlbmQoKSBmYWlsIGRlbGliZXJhdGVseSwgdGhlcmVmb3JlIGl0J3MgZGlm
ZmljdWx0IHRvIHdyaXRlCisgICAgICAgIGEgdGVzdCB0byBkZXRlY3QgdGhpcyBiZWhhdmlvciBj
aGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDbG9zZVNvY2tl
dFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzdGFydENsb3Np
bmdIYW5kc2hha2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vz
c0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmVucXVldWVTdHJp
bmdGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlUmF3
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdv
aW5nRnJhbWVRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjphYm9y
dE91dGdvaW5nRnJhbWVRdWV1ZSk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmg6CisKIDIwMTEtMDgtMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBCZXR0ZXIgYnVpbGQgZml4IGFmdGVyIHI5MzM4NC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGVlODY4ZmZiMzE2YmJjNzY3
YmJmYTczM2IxMDIyNDQ1NGM0MDY1ODYuLmUxODc1MWYyYjE4YjVkNDdkYWM5MzFiODkyM2EyY2I5
ODkzNzY0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcApAQCAtOTksNiArOTksNyBAQCBXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFu
bmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFdlYlNvY2tldENoYQogICAgICwg
bV91c2VIaXhpZTc2UHJvdG9jb2wodHJ1ZSkKICAgICAsIG1faGFzQ29udGludW91c0ZyYW1lKGZh
bHNlKQogICAgICwgbV9jbG9zZUV2ZW50Q29kZShDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3Vy
ZSkKKyAgICAsIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzKE91dGdvaW5nRnJhbWVRdWV1ZU9w
ZW4pCiB7CiAgICAgQVNTRVJUKG1fY29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fY29udGV4dCk7CkBAIC0xNDYs
MTAgKzE0NywxOCBAQCBTdHJpbmcgV2ViU29ja2V0Q2hhbm5lbDo6c3VicHJvdG9jb2woKQogYm9v
bCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBM
T0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgc2VuZCAlcyIsIHRoaXMsIG1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSk7Ci0gICAgQ1N0cmluZyB1dGY4ID0gbWVzc2FnZS51dGY4KCk7Ci0gICAg
aWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQorICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkg
eworICAgICAgICBDU3RyaW5nIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsKICAgICAgICAgcmV0dXJu
IHNlbmRGcmFtZUhpeGllNzYodXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpOwotICAgIHJldHVy
biBzZW5kRnJhbWUoT3BDb2RlVGV4dCwgdXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpOworICAg
IH0KKyAgICBlbnF1ZXVlU3RyaW5nRnJhbWUoT3BDb2RlVGV4dCwgbWVzc2FnZSk7CisgICAgLy8g
QWNjb3JkaW5nIHRvIFdlYlNvY2tldCBBUEkgc3BlY2lmaWNhdGlvbiwgV2ViU29ja2V0LnNlbmQo
KSBzaG91bGQgcmV0dXJuIHZvaWQgaW5zdGVhZAorICAgIC8vIG9mIGJvb2xlYW4uIEhvd2V2ZXIs
IG91ciBpbXBsZW1lbnRhdGlvbiBzdGlsbCByZXR1cm5zIGJvb2xlYW4gZHVlIHRvIGNvbXBhdGli
aWxpdHkKKyAgICAvLyBjb25jZXJuIChzZWUgYnVnIDY1ODUwKS4KKyAgICAvLyBtX2NoYW5uZWwt
PnNlbmQoKSBtYXkgaGFwcGVuIGxhdGVyLCB0aHVzIGl0J3Mgbm90IGFsd2F5cyBwb3NzaWJsZSB0
byBrbm93IHdoZXRoZXIKKyAgICAvLyB0aGUgbWVzc2FnZSBoYXMgYmVlbiBzZW50IHRvIHRoZSBz
b2NrZXQgc3VjY2Vzc2Z1bGx5LiBJbiB0aGlzIGNhc2UsIHdlIGhhdmUgbm8gY2hvaWNlCisgICAg
Ly8gYnV0IHRvIHJldHVybiB0cnVlLgorICAgIHJldHVybiB0cnVlOwogfQogCiB1bnNpZ25lZCBs
b25nIFdlYlNvY2tldENoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKQEAgLTIzOCw2ICsy
NDcsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tl
dFN0cmVhbUhhbmRsZSogaGFuZGxlKQogICAgIG1fY2xvc2VkID0gdHJ1ZTsKICAgICBpZiAobV9j
bG9zaW5nVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9jbG9zaW5nVGltZXIuc3RvcCgpOwor
ICAgIGlmICghbV91c2VIaXhpZTc2UHJvdG9jb2wgJiYgbV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0
dXMgIT0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2VkKQorICAgICAgICBhYm9ydE91dGdvaW5nRnJh
bWVRdWV1ZSgpOwogICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICBtX3VuaGFuZGxlZEJ1ZmZl
cmVkQW1vdW50ID0gbV9oYW5kbGUtPmJ1ZmZlcmVkQW1vdW50KCk7CiAgICAgICAgIGlmIChtX3N1
c3BlbmRlZCkKQEAgLTQxNywxOSArNDI4LDE3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6c3Rh
cnRDbG9zaW5nSGFuZHNoYWtlKCkKICAgICBpZiAobV9jbG9zaW5nKQogICAgICAgICByZXR1cm47
CiAgICAgQVNTRVJUKG1faGFuZGxlKTsKLSAgICBib29sIHNlbnRTdWNjZXNzZnVsbHk7CiAgICAg
aWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CiAgICAgICAgIFZlY3RvcjxjaGFyPiBidWY7CiAg
ICAgICAgIGJ1Zi5hcHBlbmQoJ1x4ZmYnKTsKICAgICAgICAgYnVmLmFwcGVuZCgnXDAnKTsKLSAg
ICAgICAgc2VudFN1Y2Nlc3NmdWxseSA9IG1faGFuZGxlLT5zZW5kKGJ1Zi5kYXRhKCksIGJ1Zi5z
aXplKCkpOworICAgICAgICBpZiAoIW1faGFuZGxlLT5zZW5kKGJ1Zi5kYXRhKCksIGJ1Zi5zaXpl
KCkpKSB7CisgICAgICAgICAgICBtX2hhbmRsZS0+ZGlzY29ubmVjdCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHNlbnRTdWNjZXNzZnVsbHkg
PSBzZW5kRnJhbWUoT3BDb2RlQ2xvc2UsICIiLCAwKTsgLy8gRklYTUU6IFNlbmQgc3RhdHVzIGNv
ZGUgYW5kIHJlYXNvbiBtZXNzYWdlLgorICAgICAgICBlbnF1ZXVlUmF3RnJhbWUoT3BDb2RlQ2xv
c2UsICIiLCAwKTsgLy8gRklYTUU6IFNlbmQgc3RhdHVzIGNvZGUgYW5kIHJlYXNvbiBtZXNzYWdl
LgogCi0gICAgaWYgKCFzZW50U3VjY2Vzc2Z1bGx5KSB7Ci0gICAgICAgIG1faGFuZGxlLT5kaXNj
b25uZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgbV9jbG9zaW5nID0gdHJ1ZTsK
ICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRTdGFydENsb3NpbmdIYW5k
c2hha2UoKTsKQEAgLTYzNywxNyArNjQ2LDE2IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJv
Y2Vzc0ZyYW1lKCkKICAgICAgICAgc2tpcEJ1ZmZlcihmcmFtZS5mcmFtZUVuZCAtIG1fYnVmZmVy
KTsKICAgICAgICAgbV9yZWNlaXZlZENsb3NpbmdIYW5kc2hha2UgPSB0cnVlOwogICAgICAgICBz
dGFydENsb3NpbmdIYW5kc2hha2UoKTsKLSAgICAgICAgaWYgKG1fY2xvc2luZykKLSAgICAgICAg
ICAgIG1faGFuZGxlLT5jbG9zZSgpOyAvLyBDbG9zZSBhZnRlciBzZW5kaW5nIGEgY2xvc2UgZnJh
bWUuCisgICAgICAgIGlmIChtX2Nsb3NpbmcpIHsKKyAgICAgICAgICAgIG1fb3V0Z29pbmdGcmFt
ZVF1ZXVlU3RhdHVzID0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2luZzsKKyAgICAgICAgICAgIHBy
b2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKIAot
ICAgIGNhc2UgT3BDb2RlUGluZzogewotICAgICAgICBib29sIHJlc3VsdCA9IHNlbmRGcmFtZShP
cENvZGVQb25nLCBmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKTsKKyAgICBjYXNl
IE9wQ29kZVBpbmc6CisgICAgICAgIGVucXVldWVSYXdGcmFtZShPcENvZGVQb25nLCBmcmFtZS5w
YXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKTsKICAgICAgICAgc2tpcEJ1ZmZlcihmcmFtZS5m
cmFtZUVuZCAtIG1fYnVmZmVyKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICBm
YWlsKCJGYWlsZWQgdG8gc2VuZCBhIHBvbmcgZnJhbWUuIik7CiAgICAgICAgIGJyZWFrOwotICAg
IH0KIAogICAgIGNhc2UgT3BDb2RlUG9uZzoKICAgICAgICAgLy8gQSBzZXJ2ZXIgbWF5IHNlbmQg
YSBwb25nIGluIHJlc3BvbnNlIHRvIG91ciBwaW5nLCBvciBhbiB1bnNvbGljaXRlZCBwb25nIHdo
aWNoIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgKQEAgLTc0OCw2ICs3NTYsNzMgQEAgYm9vbCBXZWJT
b2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWVIaXhpZTc2KCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVN0cmluZ0ZyYW1lKE9wQ29kZSBvcENv
ZGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIEFTU0VSVCghbV91c2VIaXhpZTc2UHJv
dG9jb2wpOworICAgIEFTU0VSVChtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2lu
Z0ZyYW1lUXVldWVPcGVuKTsKKyAgICBPd25QdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gYWRvcHRQ
dHIobmV3IFF1ZXVlZEZyYW1lKTsKKyAgICBmcmFtZS0+b3BDb2RlID0gb3BDb2RlOworICAgIGZy
YW1lLT5mcmFtZVR5cGUgPSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc7CisgICAgZnJhbWUtPnN0cmlu
Z0RhdGEgPSBzdHJpbmc7CisgICAgbV9vdXRnb2luZ0ZyYW1lUXVldWUuYXBwZW5kKGZyYW1lLnJl
bGVhc2UoKSk7CisgICAgcHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpOworfQorCit2b2lkIFdl
YlNvY2tldENoYW5uZWw6OmVucXVldWVSYXdGcmFtZShPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFy
KiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCkKK3sKKyAgICBBU1NFUlQoIW1fdXNlSGl4aWU3NlBy
b3RvY29sKTsKKyAgICBBU1NFUlQobV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMgPT0gT3V0Z29p
bmdGcmFtZVF1ZXVlT3Blbik7CisgICAgT3duUHRyPFF1ZXVlZEZyYW1lPiBmcmFtZSA9IGFkb3B0
UHRyKG5ldyBRdWV1ZWRGcmFtZSk7CisgICAgZnJhbWUtPm9wQ29kZSA9IG9wQ29kZTsKKyAgICBm
cmFtZS0+ZnJhbWVUeXBlID0gUXVldWVkRnJhbWVUeXBlVmVjdG9yOworICAgIGZyYW1lLT52ZWN0
b3JEYXRhLnJlc2l6ZShkYXRhTGVuZ3RoKTsKKyAgICBpZiAoZGF0YUxlbmd0aCkKKyAgICAgICAg
bWVtY3B5KGZyYW1lLT52ZWN0b3JEYXRhLmRhdGEoKSwgZGF0YSwgZGF0YUxlbmd0aCk7CisgICAg
bV9vdXRnb2luZ0ZyYW1lUXVldWUuYXBwZW5kKGZyYW1lLnJlbGVhc2UoKSk7CisgICAgcHJvY2Vz
c091dGdvaW5nRnJhbWVRdWV1ZSgpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nl
c3NPdXRnb2luZ0ZyYW1lUXVldWUoKQoreworICAgIEFTU0VSVCghbV91c2VIaXhpZTc2UHJvdG9j
b2wpOworICAgIGlmIChtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1l
UXVldWVDbG9zZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHdoaWxlICghbV9vdXRnb2luZ0Zy
YW1lUXVldWUuaXNFbXB0eSgpKSB7CisgICAgICAgIE93blB0cjxRdWV1ZWRGcmFtZT4gZnJhbWUg
PSBtX291dGdvaW5nRnJhbWVRdWV1ZS50YWtlRmlyc3QoKTsKKyAgICAgICAgc3dpdGNoIChmcmFt
ZS0+ZnJhbWVUeXBlKSB7CisgICAgICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlU3RyaW5nOiB7Cisg
ICAgICAgICAgICBDU3RyaW5nIHV0ZjggPSBmcmFtZS0+c3RyaW5nRGF0YS51dGY4KCk7CisgICAg
ICAgICAgICBpZiAoIXNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCB1dGY4LmRhdGEoKSwgdXRmOC5s
ZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0
IGZyYW1lLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNl
IFF1ZXVlZEZyYW1lVHlwZVZlY3RvcjoKKyAgICAgICAgICAgIGlmICghc2VuZEZyYW1lKGZyYW1l
LT5vcENvZGUsIGZyYW1lLT52ZWN0b3JEYXRhLmRhdGEoKSwgZnJhbWUtPnZlY3RvckRhdGEuc2l6
ZSgpKSkKKyAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJh
bWUuIik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIEFTU0VSVChtX291dGdvaW5nRnJhbWVRdWV1ZS5pc0VtcHR5KCkpOworICAg
IGlmIChtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1lUXVldWVDbG9z
aW5nKSB7CisgICAgICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID0gT3V0Z29pbmdGcmFt
ZVF1ZXVlQ2xvc2VkOworICAgICAgICBtX2hhbmRsZS0+Y2xvc2UoKTsKKyAgICB9Cit9CisKK3Zv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6YWJvcnRPdXRnb2luZ0ZyYW1lUXVldWUoKQoreworICAgIEFT
U0VSVCghbV91c2VIaXhpZTc2UHJvdG9jb2wpOworICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLmNs
ZWFyKCk7CisgICAgbV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMgPSBPdXRnb2luZ0ZyYW1lUXVl
dWVDbG9zZWQ7Cit9CisKIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZyYW1lKE9wQ29kZSBv
cENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQogewogICAgIEFTU0VS
VChtX2hhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oCmluZGV4IDM4ODRmY2Y1M2Q1Y2E0MjBmMjY4NDc1OWZiYjllNTQ1NGNjMTE0YjguLjY3Y2E4
Mjk2MWU4YTQ1NDM0N2RlMGQxODVjNzVhNGUzZTA1YjM0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2lu
Y2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xMzgsNiArMTM5LDUwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBwcm9jZXNzRnJhbWUoKTsKICAgICAgICAgYm9vbCBwcm9jZXNzRnJh
bWVIaXhpZTc2KCk7CiAKKyAgICAgICAgLy8gSXQgaXMgYWxsb3dlZCB0byBzZW5kIGEgQmxvYiBh
cyBhIGJpbmFyeSBmcmFtZSBpZiBoeWJpLTEwIHByb3RvY29sIGlzIGluIHVzZS4gU2VuZGluZyBh
IEJsb2IKKyAgICAgICAgLy8gY2FuIGJlIGRlbGF5ZWQgYmVjYXVzZSBpdCBtdXN0IGJlIHJlYWQg
YXN5bmNocm9ub3VzbHkuIE90aGVyIHR5cGVzIG9mIGRhdGEgKFN0cmluZyBvcgorICAgICAgICAv
LyBBcnJheUJ1ZmZlcikgbWF5IGFsc28gYmUgYmxvY2tlZCBieSBwcmVjZWRpbmcgc2VuZGluZyBy
ZXF1ZXN0IG9mIGEgQmxvYi4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVG8gYWRkcmVzcyB0aGlz
IHNpdHVhdGlvbiwgbWVzc2FnZXMgdG8gYmUgc2VudCBuZWVkIHRvIGJlIHN0b3JlZCBpbiBhIHF1
ZXVlLiBXaGVuZXZlciBhIG5ldworICAgICAgICAvLyBkYXRhIGZyYW1lIGlzIGdvaW5nIHRvIGJl
IHNlbnQsIGl0IGZpcnN0IG11c3QgZ28gdG8gdGhlIHF1ZXVlLiBJdGVtcyBpbiB0aGUgcXVldWUg
YXJlIHByb2Nlc3NlZAorICAgICAgICAvLyBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHB1dCBpbnRv
IHRoZSBxdWV1ZS4gU2VuZGluZyByZXF1ZXN0IG9mIGEgQmxvYiBibG9ja3MgZnVydGhlciBwcm9j
ZXNzaW5nCisgICAgICAgIC8vIHVudGlsIHRoZSBCbG9iIGlzIGNvbXBsZXRlbHkgcmVhZCBhbmQg
c2VudCB0byB0aGUgc29ja2V0IHN0cmVhbS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gV2hlbiBo
aXhpZS03NiBwcm90b2NvbCBpcyBjaG9zZW4sIHRoZSBxdWV1ZSBpcyBub3QgdXNlZCBhbmQgbWVz
c2FnZXMgYXJlIHNlbnQgZGlyZWN0bHkuCisgICAgICAgIGVudW0gUXVldWVkRnJhbWVUeXBlIHsK
KyAgICAgICAgICAgIFF1ZXVlZEZyYW1lVHlwZVN0cmluZywKKyAgICAgICAgICAgIFF1ZXVlZEZy
YW1lVHlwZVZlY3RvcgorICAgICAgICAgICAgLy8gRklYTUU6IEFkZCBRdWV1ZWRGcmFtZVR5cGVC
bG9iLgorICAgICAgICB9OworICAgICAgICBzdHJ1Y3QgUXVldWVkRnJhbWUgeworICAgICAgICAg
ICAgT3BDb2RlIG9wQ29kZTsKKyAgICAgICAgICAgIFF1ZXVlZEZyYW1lVHlwZSBmcmFtZVR5cGU7
CisgICAgICAgICAgICAvLyBPbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGl0ZW1zIGlzIHVzZWQs
IGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgZnJhbWVUeXBlLgorICAgICAgICAgICAgU3RyaW5n
IHN0cmluZ0RhdGE7CisgICAgICAgICAgICBWZWN0b3I8Y2hhcj4gdmVjdG9yRGF0YTsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBBZGQgYmxvYkRhdGEuCisgICAgICAgIH07CisgICAgICAgIHZvaWQg
ZW5xdWV1ZVN0cmluZ0ZyYW1lKE9wQ29kZSwgY29uc3QgU3RyaW5nJik7CisgICAgICAgIHZvaWQg
ZW5xdWV1ZVJhd0ZyYW1lKE9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFMZW5n
dGgpOworICAgICAgICAvLyBGSVhNRTogQWRkIGVucXVldWVCbG9iRnJhbWUoKS4KKworICAgICAg
ICB2b2lkIHByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKKyAgICAgICAgdm9pZCBhYm9ydE91
dGdvaW5nRnJhbWVRdWV1ZSgpOworCisgICAgICAgIGVudW0gT3V0Z29pbmdGcmFtZVF1ZXVlU3Rh
dHVzIHsKKyAgICAgICAgICAgIC8vIEl0IGlzIGFsbG93ZWQgdG8gcHV0IGEgbmV3IGl0ZW0gaW50
byB0aGUgcXVldWUuCisgICAgICAgICAgICBPdXRnb2luZ0ZyYW1lUXVldWVPcGVuLAorICAgICAg
ICAgICAgLy8gQ2xvc2UgZnJhbWUgaGFzIGFscmVhZHkgYmVlbiBwdXQgaW50byB0aGUgcXVldWUg
YnV0IG1heSBub3QgaGF2ZSBiZWVuIHNlbnQgeWV0OworICAgICAgICAgICAgLy8gbV9oYW5kbGUt
PmNsb3NlKCkgd2lsbCBiZSBjYWxsZWQgYXMgc29vbiBhcyB0aGUgcXVldWUgaXMgY2xlYXJlZC4g
SXQgaXMgbm90CisgICAgICAgICAgICAvLyBhbGxvd2VkIHRvIHB1dCBhIG5ldyBpdGVtIGludG8g
dGhlIHF1ZXVlLgorICAgICAgICAgICAgT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2luZywKKyAgICAg
ICAgICAgIC8vIENsb3NlIGZyYW1lIGhhcyBiZWVuIHNlbnQgb3IgdGhlIHF1ZXVlIHdhcyBhYm9y
dGVkLiBJdCBpcyBub3QgYWxsb3dlZCB0byBwdXQKKyAgICAgICAgICAgIC8vIGEgbmV3IGl0ZW0g
dG8gdGhlIHF1ZXVlLgorICAgICAgICAgICAgT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2VkCisgICAg
ICAgIH07CisKKyAgICAgICAgLy8gSWYgeW91IGFyZSBnb2luZyB0byBzZW5kIGEgaHliaS0xMCBm
cmFtZSwgeW91IG5lZWQgdG8gdXNlIHRoZSBvdXRnb2luZyBmcmFtZSBxdWV1ZQorICAgICAgICAv
LyBpbnN0ZWFkIG9mIGNhbGwgc2VuZEZyYW1lKCkgZGlyZWN0bHkuCiAgICAgICAgIGJvb2wgc2Vu
ZEZyYW1lKE9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpOwogICAg
ICAgICBib29sIHNlbmRGcmFtZUhpeGllNzYoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFM
ZW5ndGgpOwogCkBAIC0xNjcsNiArMjEyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBWZWN0b3I8Y2hhcj4gbV9jb250aW51b3VzRnJhbWVEYXRhOwogICAgICAgICB1bnNpZ25lZCBz
aG9ydCBtX2Nsb3NlRXZlbnRDb2RlOwogICAgICAgICBTdHJpbmcgbV9jbG9zZUV2ZW50UmVhc29u
OworCisgICAgICAgIERlcXVlPE93blB0cjxRdWV1ZWRGcmFtZT4gPiBtX291dGdvaW5nRnJhbWVR
dWV1ZTsKKyAgICAgICAgT3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzIG1fb3V0Z29pbmdGcmFtZVF1
ZXVlU3RhdHVzOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105155</attachid>
            <date>2011-08-25 03:10:47 -0700</date>
            <delta_ts>2011-08-25 04:32:00 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-66298-20110825191045.patch</filename>
            <type>text/plain</type>
            <size>11725</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM3MDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYTY4MTQ3MjEyYmEyM2M1
MWUxYzVjMGZkOGU2NTI1YWYxNDg5YWJkLi5lNWFhZjU1OWI5NWUxNjFiYTIwYzNkOGJlMTgzNGQy
MmFhNTYzYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDgtMjUgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBRdWV1
ZSBtZXNzYWdlcyB0byBiZSBzZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NjI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJsb2JzIG11c3QgYmUgcmVhZCBhc3luY2hyb25vdXNseSBhbmQgdGh1cyBj
YW5ub3QgYmUgc2VudCBpbW1lZGlhdGVseS4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvCisgICAgICAg
IGNyZWF0ZSBhIHF1ZXVlIG9mIG1lc3NhZ2VzIHRvIGJlIHNlbnQgaW4gb3JkZXIgdG8gaGFuZGxl
IHBlbmRpbmcgcmVxdWVzdHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBTdHJpY3RseSBzcGVh
a2luZywgdGhlcmUgaXMgYSBzbWFsbCBjaGFuZ2UgaW4gYmVoYXZpb3IgYnV0IGl0IGlzIGhhcmQg
dG8KKyAgICAgICAgcmVwcm9kdWNlIGluIHRlc3RzLiBTZWUgZGVzY3JpcHRpb24gb2YgV2ViU29j
a2V0Q2hhbm5lbDo6c2VuZCBiZWxvdy4KKworICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2Nr
ZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmQpOgor
ICAgICAgICBOb3csIHRoaXMgZnVuY3Rpb24gYWx3YXlzIHJldHVybnMgdHJ1ZSBpZiBoeWJpLTEw
IHByb3RvY29sIGlzIHNlbGVjdGVkLiBUaGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlCisgICAgICAg
IHNob3VsZCBiZSBtaW5pbXVtLCBiZWNhdXNlIHRoZSBjdXJyZW50IFdlYlNvY2tldCBBUEkgZGVm
aW5lcyB0aGUgcmV0dXJuIHR5cGUgb2YgV2ViU29ja2V0LnNlbmQoKQorICAgICAgICBpcyB2b2lk
IChzZWUgYWxzbyBidWcgNjU4NTApLgorICAgICAgICBJdCdzIGhhcmQgdG8gbWFrZSBTb2NrZXRT
dHJlYW1IYW5kbGU6OnNlbmQoKSBmYWlsIGRlbGliZXJhdGVseSwgdGhlcmVmb3JlIGl0J3MgZGlm
ZmljdWx0IHRvIHdyaXRlCisgICAgICAgIGEgdGVzdCB0byBkZXRlY3QgdGhpcyBiZWhhdmlvciBj
aGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDbG9zZVNvY2tl
dFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzdGFydENsb3Np
bmdIYW5kc2hha2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vz
c0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmVucXVldWVUZXh0
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVJhd0Zy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2lu
Z0ZyYW1lUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6YWJvcnRP
dXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oOgorCiAyMDExLTA4LTI0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IENvbnNvbGVNZXNzYWdlIGludG8gYSBz
ZXBhcmF0ZSBmaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbC5jcHAKaW5kZXggZWU4NjhmZmIzMTZiYmM3NjdiYmZhNzMzYjEwMjI0NDU0YzQwNjU4Ni4u
NTYyODRlNTkyOWJlNTVhMTJkOTJjYzY2NjM1ZWIwNjFkZjQ3NjBmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC05OSw2ICs5OSw3IEBA
IFdlYlNvY2tldENoYW5uZWw6OldlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgV2ViU29ja2V0Q2hhCiAgICAgLCBtX3VzZUhpeGllNzZQcm90b2NvbCh0cnVl
KQogICAgICwgbV9oYXNDb250aW51b3VzRnJhbWUoZmFsc2UpCiAgICAgLCBtX2Nsb3NlRXZlbnRD
b2RlKENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlKQorICAgICwgbV9vdXRnb2luZ0ZyYW1l
UXVldWVTdGF0dXMoT3V0Z29pbmdGcmFtZVF1ZXVlT3BlbikKIHsKICAgICBBU1NFUlQobV9jb250
ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0
PERvY3VtZW50Kj4obV9jb250ZXh0KTsKQEAgLTE0NiwxMCArMTQ3LDE4IEBAIFN0cmluZyBXZWJT
b2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCgpCiBib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hh
bm5lbCAlcCBzZW5kICVzIiwgdGhpcywgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSAgICBDU3Ry
aW5nIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wp
CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CisgICAgICAgIENTdHJpbmcgdXRmOCA9
IG1lc3NhZ2UudXRmOCgpOwogICAgICAgICByZXR1cm4gc2VuZEZyYW1lSGl4aWU3Nih1dGY4LmRh
dGEoKSwgdXRmOC5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIHNlbmRGcmFtZShPcENvZGVUZXh0LCB1
dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CisgICAgfQorICAgIGVucXVldWVUZXh0RnJhbWUo
bWVzc2FnZSk7CisgICAgLy8gQWNjb3JkaW5nIHRvIFdlYlNvY2tldCBBUEkgc3BlY2lmaWNhdGlv
biwgV2ViU29ja2V0LnNlbmQoKSBzaG91bGQgcmV0dXJuIHZvaWQgaW5zdGVhZAorICAgIC8vIG9m
IGJvb2xlYW4uIEhvd2V2ZXIsIG91ciBpbXBsZW1lbnRhdGlvbiBzdGlsbCByZXR1cm5zIGJvb2xl
YW4gZHVlIHRvIGNvbXBhdGliaWxpdHkKKyAgICAvLyBjb25jZXJuIChzZWUgYnVnIDY1ODUwKS4K
KyAgICAvLyBtX2NoYW5uZWwtPnNlbmQoKSBtYXkgaGFwcGVuIGxhdGVyLCB0aHVzIGl0J3Mgbm90
IGFsd2F5cyBwb3NzaWJsZSB0byBrbm93IHdoZXRoZXIKKyAgICAvLyB0aGUgbWVzc2FnZSBoYXMg
YmVlbiBzZW50IHRvIHRoZSBzb2NrZXQgc3VjY2Vzc2Z1bGx5LiBJbiB0aGlzIGNhc2UsIHdlIGhh
dmUgbm8gY2hvaWNlCisgICAgLy8gYnV0IHRvIHJldHVybiB0cnVlLgorICAgIHJldHVybiB0cnVl
OwogfQogCiB1bnNpZ25lZCBsb25nIFdlYlNvY2tldENoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KCkg
Y29uc3QKQEAgLTIzOCw2ICsyNDcsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3Nl
U29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSogaGFuZGxlKQogICAgIG1fY2xvc2VkID0g
dHJ1ZTsKICAgICBpZiAobV9jbG9zaW5nVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9jbG9z
aW5nVGltZXIuc3RvcCgpOworICAgIGlmICghbV91c2VIaXhpZTc2UHJvdG9jb2wgJiYgbV9vdXRn
b2luZ0ZyYW1lUXVldWVTdGF0dXMgIT0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2VkKQorICAgICAg
ICBhYm9ydE91dGdvaW5nRnJhbWVRdWV1ZSgpOwogICAgIGlmIChtX2hhbmRsZSkgewogICAgICAg
ICBtX3VuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50ID0gbV9oYW5kbGUtPmJ1ZmZlcmVkQW1vdW50KCk7
CiAgICAgICAgIGlmIChtX3N1c3BlbmRlZCkKQEAgLTQxNywxOSArNDI4LDE3IEBAIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6c3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkKICAgICBpZiAobV9jbG9zaW5n
KQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1faGFuZGxlKTsKLSAgICBib29sIHNlbnRT
dWNjZXNzZnVsbHk7CiAgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CiAgICAgICAgIFZl
Y3RvcjxjaGFyPiBidWY7CiAgICAgICAgIGJ1Zi5hcHBlbmQoJ1x4ZmYnKTsKICAgICAgICAgYnVm
LmFwcGVuZCgnXDAnKTsKLSAgICAgICAgc2VudFN1Y2Nlc3NmdWxseSA9IG1faGFuZGxlLT5zZW5k
KGJ1Zi5kYXRhKCksIGJ1Zi5zaXplKCkpOworICAgICAgICBpZiAoIW1faGFuZGxlLT5zZW5kKGJ1
Zi5kYXRhKCksIGJ1Zi5zaXplKCkpKSB7CisgICAgICAgICAgICBtX2hhbmRsZS0+ZGlzY29ubmVj
dCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAg
IHNlbnRTdWNjZXNzZnVsbHkgPSBzZW5kRnJhbWUoT3BDb2RlQ2xvc2UsICIiLCAwKTsgLy8gRklY
TUU6IFNlbmQgc3RhdHVzIGNvZGUgYW5kIHJlYXNvbiBtZXNzYWdlLgorICAgICAgICBlbnF1ZXVl
UmF3RnJhbWUoT3BDb2RlQ2xvc2UsICIiLCAwKTsgLy8gRklYTUU6IFNlbmQgc3RhdHVzIGNvZGUg
YW5kIHJlYXNvbiBtZXNzYWdlLgogCi0gICAgaWYgKCFzZW50U3VjY2Vzc2Z1bGx5KSB7Ci0gICAg
ICAgIG1faGFuZGxlLT5kaXNjb25uZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAg
bV9jbG9zaW5nID0gdHJ1ZTsKICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5k
aWRTdGFydENsb3NpbmdIYW5kc2hha2UoKTsKQEAgLTYzNywxNyArNjQ2LDE2IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgc2tpcEJ1ZmZlcihmcmFtZS5m
cmFtZUVuZCAtIG1fYnVmZmVyKTsKICAgICAgICAgbV9yZWNlaXZlZENsb3NpbmdIYW5kc2hha2Ug
PSB0cnVlOwogICAgICAgICBzdGFydENsb3NpbmdIYW5kc2hha2UoKTsKLSAgICAgICAgaWYgKG1f
Y2xvc2luZykKLSAgICAgICAgICAgIG1faGFuZGxlLT5jbG9zZSgpOyAvLyBDbG9zZSBhZnRlciBz
ZW5kaW5nIGEgY2xvc2UgZnJhbWUuCisgICAgICAgIGlmIChtX2Nsb3NpbmcpIHsKKyAgICAgICAg
ICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2lu
ZzsKKyAgICAgICAgICAgIHByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKKyAgICAgICAgfQog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgT3BDb2RlUGluZzogewotICAgICAgICBib29sIHJl
c3VsdCA9IHNlbmRGcmFtZShPcENvZGVQb25nLCBmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2Fk
TGVuZ3RoKTsKKyAgICBjYXNlIE9wQ29kZVBpbmc6CisgICAgICAgIGVucXVldWVSYXdGcmFtZShP
cENvZGVQb25nLCBmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKTsKICAgICAgICAg
c2tpcEJ1ZmZlcihmcmFtZS5mcmFtZUVuZCAtIG1fYnVmZmVyKTsKLSAgICAgICAgaWYgKCFyZXN1
bHQpCi0gICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBhIHBvbmcgZnJhbWUuIik7CiAg
ICAgICAgIGJyZWFrOwotICAgIH0KIAogICAgIGNhc2UgT3BDb2RlUG9uZzoKICAgICAgICAgLy8g
QSBzZXJ2ZXIgbWF5IHNlbmQgYSBwb25nIGluIHJlc3BvbnNlIHRvIG91ciBwaW5nLCBvciBhbiB1
bnNvbGljaXRlZCBwb25nIHdoaWNoIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgKQEAgLTc0OCw2ICs3
NTYsNzMgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWVIaXhpZTc2KCkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRleHRG
cmFtZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBBU1NFUlQoIW1fdXNlSGl4aWU3NlBy
b3RvY29sKTsKKyAgICBBU1NFUlQobV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMgPT0gT3V0Z29p
bmdGcmFtZVF1ZXVlT3Blbik7CisgICAgT3duUHRyPFF1ZXVlZEZyYW1lPiBmcmFtZSA9IGFkb3B0
UHRyKG5ldyBRdWV1ZWRGcmFtZSk7CisgICAgZnJhbWUtPm9wQ29kZSA9IE9wQ29kZVRleHQ7Cisg
ICAgZnJhbWUtPmZyYW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZVN0cmluZzsKKyAgICBmcmFtZS0+
c3RyaW5nRGF0YSA9IHN0cmluZzsKKyAgICBtX291dGdvaW5nRnJhbWVRdWV1ZS5hcHBlbmQoZnJh
bWUucmVsZWFzZSgpKTsKKyAgICBwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCk7Cit9CisKK3Zv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVJhd0ZyYW1lKE9wQ29kZSBvcENvZGUsIGNvbnN0
IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQoreworICAgIEFTU0VSVCghbV91c2VIaXhp
ZTc2UHJvdG9jb2wpOworICAgIEFTU0VSVChtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBP
dXRnb2luZ0ZyYW1lUXVldWVPcGVuKTsKKyAgICBPd25QdHI8UXVldWVkRnJhbWU+IGZyYW1lID0g
YWRvcHRQdHIobmV3IFF1ZXVlZEZyYW1lKTsKKyAgICBmcmFtZS0+b3BDb2RlID0gb3BDb2RlOwor
ICAgIGZyYW1lLT5mcmFtZVR5cGUgPSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I7CisgICAgZnJhbWUt
PnZlY3RvckRhdGEucmVzaXplKGRhdGFMZW5ndGgpOworICAgIGlmIChkYXRhTGVuZ3RoKQorICAg
ICAgICBtZW1jcHkoZnJhbWUtPnZlY3RvckRhdGEuZGF0YSgpLCBkYXRhLCBkYXRhTGVuZ3RoKTsK
KyAgICBtX291dGdvaW5nRnJhbWVRdWV1ZS5hcHBlbmQoZnJhbWUucmVsZWFzZSgpKTsKKyAgICBw
cm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCit7CisgICAgQVNTRVJUKCFtX3VzZUhpeGllNzZQ
cm90b2NvbCk7CisgICAgaWYgKG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID09IE91dGdvaW5n
RnJhbWVRdWV1ZUNsb3NlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKCFtX291dGdv
aW5nRnJhbWVRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgT3duUHRyPFF1ZXVlZEZyYW1lPiBm
cmFtZSA9IG1fb3V0Z29pbmdGcmFtZVF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICBzd2l0Y2gg
KGZyYW1lLT5mcmFtZVR5cGUpIHsKKyAgICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc6
IHsKKyAgICAgICAgICAgIENTdHJpbmcgdXRmOCA9IGZyYW1lLT5zdHJpbmdEYXRhLnV0ZjgoKTsK
KyAgICAgICAgICAgIGlmICghc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIHV0ZjguZGF0YSgpLCB1
dGY4Lmxlbmd0aCgpKSkKKyAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJT
b2NrZXQgZnJhbWUuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg
IGNhc2UgUXVldWVkRnJhbWVUeXBlVmVjdG9yOgorICAgICAgICAgICAgaWYgKCFzZW5kRnJhbWUo
ZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnZlY3RvckRhdGEuZGF0YSgpLCBmcmFtZS0+dmVjdG9yRGF0
YS5zaXplKCkpKQorICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tl
dCBmcmFtZS4iKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgQVNTRVJUKG1fb3V0Z29pbmdGcmFtZVF1ZXVlLmlzRW1wdHkoKSk7
CisgICAgaWYgKG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1
ZUNsb3NpbmcpIHsKKyAgICAgICAgbV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMgPSBPdXRnb2lu
Z0ZyYW1lUXVldWVDbG9zZWQ7CisgICAgICAgIG1faGFuZGxlLT5jbG9zZSgpOworICAgIH0KK30K
Kwordm9pZCBXZWJTb2NrZXRDaGFubmVsOjphYm9ydE91dGdvaW5nRnJhbWVRdWV1ZSgpCit7Cisg
ICAgQVNTRVJUKCFtX3VzZUhpeGllNzZQcm90b2NvbCk7CisgICAgbV9vdXRnb2luZ0ZyYW1lUXVl
dWUuY2xlYXIoKTsKKyAgICBtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9IE91dGdvaW5nRnJh
bWVRdWV1ZUNsb3NlZDsKK30KKwogYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kRnJhbWUoT3BD
b2RlIG9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpCiB7CiAgICAg
QVNTRVJUKG1faGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsLmgKaW5kZXggMzg4NGZjZjUzZDVjYTQyMGYyNjg0NzU5ZmJiOWU1NDU0Y2MxMTRiOC4u
ODU0NTY0ZjZmMzdjMzJhNTZmYmI5OWM1MzE4N2JjZWQ3MmU0ZDI3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSAiV2ViU29ja2V0SGFuZHNoYWtlLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTEzOCw2ICsxMzksNTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIHByb2Nlc3NGcmFtZSgpOwogICAgICAgICBib29sIHByb2Nl
c3NGcmFtZUhpeGllNzYoKTsKIAorICAgICAgICAvLyBJdCBpcyBhbGxvd2VkIHRvIHNlbmQgYSBC
bG9iIGFzIGEgYmluYXJ5IGZyYW1lIGlmIGh5YmktMTAgcHJvdG9jb2wgaXMgaW4gdXNlLiBTZW5k
aW5nIGEgQmxvYgorICAgICAgICAvLyBjYW4gYmUgZGVsYXllZCBiZWNhdXNlIGl0IG11c3QgYmUg
cmVhZCBhc3luY2hyb25vdXNseS4gT3RoZXIgdHlwZXMgb2YgZGF0YSAoU3RyaW5nIG9yCisgICAg
ICAgIC8vIEFycmF5QnVmZmVyKSBtYXkgYWxzbyBiZSBibG9ja2VkIGJ5IHByZWNlZGluZyBzZW5k
aW5nIHJlcXVlc3Qgb2YgYSBCbG9iLgorICAgICAgICAvLworICAgICAgICAvLyBUbyBhZGRyZXNz
IHRoaXMgc2l0dWF0aW9uLCBtZXNzYWdlcyB0byBiZSBzZW50IG5lZWQgdG8gYmUgc3RvcmVkIGlu
IGEgcXVldWUuIFdoZW5ldmVyIGEgbmV3CisgICAgICAgIC8vIGRhdGEgZnJhbWUgaXMgZ29pbmcg
dG8gYmUgc2VudCwgaXQgZmlyc3QgbXVzdCBnbyB0byB0aGUgcXVldWUuIEl0ZW1zIGluIHRoZSBx
dWV1ZSBhcmUgcHJvY2Vzc2VkCisgICAgICAgIC8vIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgcHV0
IGludG8gdGhlIHF1ZXVlLiBTZW5kaW5nIHJlcXVlc3Qgb2YgYSBCbG9iIGJsb2NrcyBmdXJ0aGVy
IHByb2Nlc3NpbmcKKyAgICAgICAgLy8gdW50aWwgdGhlIEJsb2IgaXMgY29tcGxldGVseSByZWFk
IGFuZCBzZW50IHRvIHRoZSBzb2NrZXQgc3RyZWFtLgorICAgICAgICAvLworICAgICAgICAvLyBX
aGVuIGhpeGllLTc2IHByb3RvY29sIGlzIGNob3NlbiwgdGhlIHF1ZXVlIGlzIG5vdCB1c2VkIGFu
ZCBtZXNzYWdlcyBhcmUgc2VudCBkaXJlY3RseS4KKyAgICAgICAgZW51bSBRdWV1ZWRGcmFtZVR5
cGUgeworICAgICAgICAgICAgUXVldWVkRnJhbWVUeXBlU3RyaW5nLAorICAgICAgICAgICAgUXVl
dWVkRnJhbWVUeXBlVmVjdG9yCisgICAgICAgICAgICAvLyBGSVhNRTogQWRkIFF1ZXVlZEZyYW1l
VHlwZUJsb2IuCisgICAgICAgIH07CisgICAgICAgIHN0cnVjdCBRdWV1ZWRGcmFtZSB7CisgICAg
ICAgICAgICBPcENvZGUgb3BDb2RlOworICAgICAgICAgICAgUXVldWVkRnJhbWVUeXBlIGZyYW1l
VHlwZTsKKyAgICAgICAgICAgIC8vIE9ubHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXRlbXMgaXMg
dXNlZCwgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiBmcmFtZVR5cGUuCisgICAgICAgICAgICBT
dHJpbmcgc3RyaW5nRGF0YTsKKyAgICAgICAgICAgIFZlY3RvcjxjaGFyPiB2ZWN0b3JEYXRhOwor
ICAgICAgICAgICAgLy8gRklYTUU6IEFkZCBibG9iRGF0YS4KKyAgICAgICAgfTsKKyAgICAgICAg
dm9pZCBlbnF1ZXVlVGV4dEZyYW1lKGNvbnN0IFN0cmluZyYpOworICAgICAgICB2b2lkIGVucXVl
dWVSYXdGcmFtZShPcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKTsK
KyAgICAgICAgLy8gRklYTUU6IEFkZCBlbnF1ZXVlQmxvYkZyYW1lKCkuCisKKyAgICAgICAgdm9p
ZCBwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCk7CisgICAgICAgIHZvaWQgYWJvcnRPdXRnb2lu
Z0ZyYW1lUXVldWUoKTsKKworICAgICAgICBlbnVtIE91dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyB7
CisgICAgICAgICAgICAvLyBJdCBpcyBhbGxvd2VkIHRvIHB1dCBhIG5ldyBpdGVtIGludG8gdGhl
IHF1ZXVlLgorICAgICAgICAgICAgT3V0Z29pbmdGcmFtZVF1ZXVlT3BlbiwKKyAgICAgICAgICAg
IC8vIENsb3NlIGZyYW1lIGhhcyBhbHJlYWR5IGJlZW4gcHV0IGludG8gdGhlIHF1ZXVlIGJ1dCBt
YXkgbm90IGhhdmUgYmVlbiBzZW50IHlldDsKKyAgICAgICAgICAgIC8vIG1faGFuZGxlLT5jbG9z
ZSgpIHdpbGwgYmUgY2FsbGVkIGFzIHNvb24gYXMgdGhlIHF1ZXVlIGlzIGNsZWFyZWQuIEl0IGlz
IG5vdAorICAgICAgICAgICAgLy8gYWxsb3dlZCB0byBwdXQgYSBuZXcgaXRlbSBpbnRvIHRoZSBx
dWV1ZS4KKyAgICAgICAgICAgIE91dGdvaW5nRnJhbWVRdWV1ZUNsb3NpbmcsCisgICAgICAgICAg
ICAvLyBDbG9zZSBmcmFtZSBoYXMgYmVlbiBzZW50IG9yIHRoZSBxdWV1ZSB3YXMgYWJvcnRlZC4g
SXQgaXMgbm90IGFsbG93ZWQgdG8gcHV0CisgICAgICAgICAgICAvLyBhIG5ldyBpdGVtIHRvIHRo
ZSBxdWV1ZS4KKyAgICAgICAgICAgIE91dGdvaW5nRnJhbWVRdWV1ZUNsb3NlZAorICAgICAgICB9
OworCisgICAgICAgIC8vIElmIHlvdSBhcmUgZ29pbmcgdG8gc2VuZCBhIGh5YmktMTAgZnJhbWUs
IHlvdSBuZWVkIHRvIHVzZSB0aGUgb3V0Z29pbmcgZnJhbWUgcXVldWUKKyAgICAgICAgLy8gaW5z
dGVhZCBvZiBjYWxsIHNlbmRGcmFtZSgpIGRpcmVjdGx5LgogICAgICAgICBib29sIHNlbmRGcmFt
ZShPcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKTsKICAgICAgICAg
Ym9vbCBzZW5kRnJhbWVIaXhpZTc2KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3Ro
KTsKIApAQCAtMTY3LDYgKzIxMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVmVj
dG9yPGNoYXI+IG1fY29udGludW91c0ZyYW1lRGF0YTsKICAgICAgICAgdW5zaWduZWQgc2hvcnQg
bV9jbG9zZUV2ZW50Q29kZTsKICAgICAgICAgU3RyaW5nIG1fY2xvc2VFdmVudFJlYXNvbjsKKwor
ICAgICAgICBEZXF1ZTxPd25QdHI8UXVldWVkRnJhbWU+ID4gbV9vdXRnb2luZ0ZyYW1lUXVldWU7
CisgICAgICAgIE91dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyBtX291dGdvaW5nRnJhbWVRdWV1ZVN0
YXR1czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>