<?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>109661</bug_id>
          
          <creation_ts>2013-02-12 21:34:09 -0800</creation_ts>
          <short_desc>Implement CoordinatedSurface for Threaded Coordinated Graphics</short_desc>
          <delta_ts>2013-07-02 12:18:01 -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>Layout and Rendering</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>109659</dependson>
    
    <dependson>108899</dependson>
          <blocked>102994</blocked>
    
    <blocked>117227</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jae Hyun Park">jaepark</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>831610</commentid>
    <comment_count>0</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-02-12 21:34:09 -0800</bug_when>
    <thetext>To implement Threaded Coordinated Graphics, we need to implement CoordinatedSurface of WebKit1.

Currently, Coordinated Graphics is using WebCoordinatedSurface as CoordinatedSurface, which resides in Source/WebKit2.
WebCoordinatedSurface is implemented with some WebKit2 specific code, such as CoreIPC. So, we cannot reuse WebCoordinatedSurface in Threaded Coordinated Graphics. 
Therefore, WebKit1 CoordinatedSurface implementation with similar behavior is needed to implement Threaded Coordinated Graphics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831621</commentid>
    <comment_count>1</comment_count>
      <attachid>188009</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-02-12 21:50:45 -0800</bug_when>
    <thetext>Created attachment 188009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831622</commentid>
    <comment_count>2</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-02-12 21:52:21 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=188009) [details]
&gt; Patch

Sorry for the terrible naming. I couldn&apos;t come up with anything. Any suggestions on the naming?

This patch is the general idea for how WebKit1 CoordinatedSurface would be implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831623</commentid>
    <comment_count>3</comment_count>
      <attachid>188009</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-12 21:59:32 -0800</bug_when>
    <thetext>Comment on attachment 188009
Patch

Attachment 188009 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16440635</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831624</commentid>
    <comment_count>4</comment_count>
      <attachid>188009</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-12 22:00:01 -0800</bug_when>
    <thetext>Comment on attachment 188009
Patch

Attachment 188009 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16439647</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831627</commentid>
    <comment_count>5</comment_count>
      <attachid>188009</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-12 22:01:33 -0800</bug_when>
    <thetext>Comment on attachment 188009
Patch

Attachment 188009 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16483600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880320</commentid>
    <comment_count>6</comment_count>
      <attachid>188009</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-23 21:46:01 -0700</bug_when>
    <thetext>Comment on attachment 188009
Patch

Attachment 188009 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/219001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897229</commentid>
    <comment_count>7</comment_count>
      <attachid>203785</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-06-05 03:24:49 -0700</bug_when>
    <thetext>Created attachment 203785
Patch

Rebased to upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897267</commentid>
    <comment_count>8</comment_count>
      <attachid>203785</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-06-05 04:27:52 -0700</bug_when>
    <thetext>Comment on attachment 203785
Patch

Attachment 203785 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/701475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897270</commentid>
    <comment_count>9</comment_count>
      <attachid>203785</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-05 04:29:40 -0700</bug_when>
    <thetext>Comment on attachment 203785
Patch

Attachment 203785 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/763265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897272</commentid>
    <comment_count>10</comment_count>
      <attachid>203785</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-05 04:31:26 -0700</bug_when>
    <thetext>Comment on attachment 203785
Patch

Attachment 203785 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/662549</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897274</commentid>
    <comment_count>11</comment_count>
      <attachid>203785</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-06-05 04:35:07 -0700</bug_when>
    <thetext>Comment on attachment 203785
Patch

Attachment 203785 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/769090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905198</commentid>
    <comment_count>12</comment_count>
      <attachid>205848</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-07-01 18:31:08 -0700</bug_when>
    <thetext>Created attachment 205848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905239</commentid>
    <comment_count>13</comment_count>
      <attachid>205848</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-07-01 21:36:44 -0700</bug_when>
    <thetext>Comment on attachment 205848
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp:58
&gt; +    GraphicsContext* context = beginPaint(rect);
&gt; +    client-&gt;paintToSurfaceContext(context);
&gt; +    endPaint();

It would be better if this was all in one function. Otherwise it may look like beginPaint and endPaint can be called outside the context of paintToSurface.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp:77
&gt; +#if USE(TEXTURE_MAPPER)

I think we can remove these in coordinated-graphics code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905244</commentid>
    <comment_count>14</comment_count>
      <attachid>205863</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-07-01 22:06:20 -0700</bug_when>
    <thetext>Created attachment 205863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905245</commentid>
    <comment_count>15</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-07-01 22:10:45 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 205848 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205848&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp:58
&gt; &gt; +    GraphicsContext* context = beginPaint(rect);
&gt; &gt; +    client-&gt;paintToSurfaceContext(context);
&gt; &gt; +    endPaint();
&gt; 
&gt; It would be better if this was all in one function. Otherwise it may look like beginPaint and endPaint can be called outside the context of paintToSurface.

I agree. Removed beginPaint and endPaint.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp:77
&gt; &gt; +#if USE(TEXTURE_MAPPER)
&gt; 
&gt; I think we can remove these in coordinated-graphics code.
Fixed.


Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905538</commentid>
    <comment_count>16</comment_count>
      <attachid>205863</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-02 12:17:57 -0700</bug_when>
    <thetext>Comment on attachment 205863
Patch

Clearing flags on attachment: 205863

Committed r152307: &lt;http://trac.webkit.org/changeset/152307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905539</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-02 12:18:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188009</attachid>
            <date>2013-02-12 21:50:45 -0800</date>
            <delta_ts>2013-06-05 03:24:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109661-20130212214754.patch</filename>
            <type>text/plain</type>
            <size>11956</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI5OTMwYWM5YTdkZmZm
NTlhMGJkZWI4ZjZkYzBlMzM2ZjgyNjY3Ni4uNTVlZDMzMTk0NWI1OTlkODYyYWJkNzNiNDM2OTg4
OGQyYzQ0NTNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEzLTAyLTEyICBKYWUg
SHl1biBQYXJrICA8amFlLnBhcmtAY29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgSW1wbGVtZW50
IFdlYktpdDEgQ29vcmRpbmF0ZWRTdXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gcGF0Y2ggZm9yIFRocmVh
ZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzLgorCisgICAgICAgIEltcGxlbWVudCBDb29yZGluYXRl
ZFN1cmZhY2VJbXBsIHVzaW5nIEdyYXBoaWNzU3VyZmFjZSBhbmQgSW1hZ2VCdWZmZXIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2VJbXBsLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVk
U3VyZmFjZUltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZh
Y2VJbXBsOjpDb29yZGluYXRlZFN1cmZhY2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkU3VyZmFjZUltcGw6OmNyZWF0ZVdpdGhTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkU3VyZmFjZUltcGw6On5Db29yZGluYXRlZFN1cmZhY2VJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkU3VyZmFjZUltcGw6OmJlZ2luUGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlSW1wbDo6ZW5kUGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlSW1wbDo6Y29weVRvVGV4dHVyZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFj
ZUltcGwuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvb3JkaW5hdGVk
U3VyZmFjZUltcGwpOgorCisyMDEzLTAyLTEyICBKYWUgSHl1biBQYXJrICA8amFlLnBhcmtAY29t
cGFueTEwMC5uZXQ+CisKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3MgOiBSZWZhY3RvciBD
b29yZGluYXRlZFN1cmZhY2UgdG8gcHJvdmlkZSBiZWdpblBhaW50IGFuZCBlbmRQYWludAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODk5CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMDYwOTMzMTUxODRmYzQ3ODU5OWEyODAwZTBmYzdmYjAwYzYw
NzViMS4uZjFkNDhjZDRlZjVmYzY4MDk1ZjBhYzE5ZmNiODNjNjllODllYzVmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE5OTcsNiArMTk5Nyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2VJbXBsLmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0ZUF0bGFzLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXgg
OTQzNTY4ODhhNzQ3ZTJhODVmMTM4MjRmZDhhM2IyOWI5NDlkYzY5Mi4uN2IwMTQ4NTNlODM1Nzk3
ZWRhNzdiMTE2NmU3YzIzY2EyZGMzNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00MTAwLDYgKzQxMDAs
NyBAQCB1c2U/KDNEX0dSQVBISUNTKSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5oIFwKICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmggXAog
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRT
dXJmYWNlLmggXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRTdXJmYWNlSW1wbC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1N1cmZhY2VVcGRhdGVJbmZvLmggXAogICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVXBkYXRlQXRsYXMuaApAQCAtNDEy
Myw2ICs0MTI0LDcgQEAgdXNlPygzRF9HUkFQSElDUykgewogICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBcCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZElt
YWdlQmFja2luZy5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2VJbXBsLmNwcCBcCiAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3Bw
IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0ZUF0
bGFzLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRTdXJmYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRTdXJm
YWNlSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MxNDllZDVkNTA1MTA3ZDE2MTYzM2RiYzc3YTRlOGFi
MTg4YWQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2VJbXBsLmNwcApAQCAtMCww
ICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlSW1wbC5oIgorCisjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQorCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJHTC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxDb29y
ZGluYXRlZFN1cmZhY2VJbXBsPiBDb29yZGluYXRlZFN1cmZhY2VJbXBsOjpjcmVhdGUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncykKK3sKKyAgICBS
ZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlSW1wbD4gc3VyZmFjZTsKKyNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKKyAgICBzdXJmYWNlID0gY3JlYXRlV2l0aFN1cmZhY2Uoc2l6ZSwgZmxhZ3MpOwor
I2VuZGlmCisKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHN1cmZhY2UgPSBjcmVhdGUoc2l6
ZSwgZmxhZ3MsIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSkpOworCisgICAgcmV0dXJuIHN1cmZh
Y2UucmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZUltcGw+IENv
b3JkaW5hdGVkU3VyZmFjZUltcGw6OmNyZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLCBDb29yZGlu
YXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZFN1cmZhY2VJbXBsKHNpemUs
IGZsYWdzLCBidWZmZXIpKTsKK30KKworQ29vcmRpbmF0ZWRTdXJmYWNlSW1wbDo6Q29vcmRpbmF0
ZWRTdXJmYWNlSW1wbChjb25zdCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZs
YWdzIGZsYWdzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIpCisgICAgOiBDb29yZGlu
YXRlZFN1cmZhY2Uoc2l6ZSwgZmxhZ3MpCisgICAgLCBtX2ltYWdlQnVmZmVyKGJ1ZmZlcikKK3sK
K30KKworI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1
cmZhY2VJbXBsPiBDb29yZGluYXRlZFN1cmZhY2VJbXBsOjpjcmVhdGVXaXRoU3VyZmFjZShjb25z
dCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzKQoreworICAg
IC8vIFRoaXMgbWlnaHQgcmV0dXJuIG51bGwsIGlmIHRoZSBzeXN0ZW0gaXMgdW5hYmxlIHRvIHBy
b3ZpZGUgYSBuZXcgZ3JhcGhpY3Mgc3VyZmFjZS4KKyAgICAvLyBJbiB0aGF0IGNhc2UsIHRoaXMg
ZnVuY3Rpb24gd291bGQgcmV0dXJuIG51bGwgYW5kIGFsbG93IGZhbGxpbmcgYmFjayB0byBTaGFy
ZWFibGVCaXRtYXAuCisgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gc3VyZmFjZSA9IGNyZWF0
ZUdyYXBoaWNzU3VyZmFjZShzaXplLCBmbGFncyk7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIEFTU0VSVChzdXJmYWNlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENvb3JkaW5hdGVkU3VyZmFjZUltcGwoc2l6ZSwgZmxhZ3MsIHN1cmZhY2UucmVsZWFzZSgp
KSk7Cit9CisKK0Nvb3JkaW5hdGVkU3VyZmFjZUltcGw6OkNvb3JkaW5hdGVkU3VyZmFjZUltcGwo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncywgUGFz
c1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IHN1cmZhY2UpCisgICAgOiBDb29yZGluYXRlZFN1cmZh
Y2Uoc2l6ZSwgZmxhZ3MsIHN1cmZhY2UpCit7Cit9CisjZW5kaWYKKworQ29vcmRpbmF0ZWRTdXJm
YWNlSW1wbDo6fkNvb3JkaW5hdGVkU3VyZmFjZUltcGwoKQoreworfQorCitHcmFwaGljc0NvbnRl
eHQqIENvb3JkaW5hdGVkU3VyZmFjZUltcGw6OmJlZ2luUGFpbnQoY29uc3QgSW50UmVjdCYgcmVj
dCkKK3sKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBpZiAoaXNCYWNrZWRCeUdyYXBo
aWNzU3VyZmFjZSgpKSB7CisgICAgICAgIG1fZ3JhcGhpY3NDb250ZXh0ID0gbV9ncmFwaGljc1N1
cmZhY2UtPmJlZ2luUGFpbnQocmVjdCwgMCAvKiBXcml0ZSB3aXRob3V0IHJldGFpbmluZyBwaXhl
bHMqLyk7CisgICAgICAgIHJldHVybiBtX2dyYXBoaWNzQ29udGV4dC5nZXQoKTsKKyAgICB9Cisj
ZW5kaWYKKworICAgIEFTU0VSVChtX2ltYWdlQnVmZmVyKTsKKyAgICBHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCA9IG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKyAgICBncmFwaGlj
c0NvbnRleHQtPnNhdmUoKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmNsaXAocmVjdCk7CisgICAg
Z3JhcGhpY3NDb250ZXh0LT50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpKTsKKyAgICByZXR1
cm4gZ3JhcGhpY3NDb250ZXh0OworfQorCit2b2lkIENvb3JkaW5hdGVkU3VyZmFjZUltcGw6OmVu
ZFBhaW50KCkKK3sKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBpZiAoaXNCYWNrZWRC
eUdyYXBoaWNzU3VyZmFjZSgpKSB7CisgICAgICAgIEFTU0VSVChtX2dyYXBoaWNzQ29udGV4dCk7
CisgICAgICAgIG1fZ3JhcGhpY3NDb250ZXh0LmNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisjZW5kaWYKKworICAgIEFTU0VSVChtX2ltYWdlQnVmZmVyKTsKKyAgICBtX2ltYWdlQnVm
ZmVyLT5jb250ZXh0KCktPnJlc3RvcmUoKTsKK30KKworI2lmIFVTRShURVhUVVJFX01BUFBFUikK
K3ZvaWQgQ29vcmRpbmF0ZWRTdXJmYWNlSW1wbDo6Y29weVRvVGV4dHVyZShQYXNzUmVmUHRyPEJp
dG1hcFRleHR1cmU+IHBhc3NUZXh0dXJlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IElu
dFBvaW50JiBzb3VyY2VPZmZzZXQpCit7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1
cmUocGFzc1RleHR1cmUpOworCisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgaWYgKGNv
cHlUb1RleHR1cmVVc2luZ0dyYXBoaWNzU3VyZmFjZSh0ZXh0dXJlLmdldCgpLCB0YXJnZXQsIHNv
dXJjZU9mZnNldCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgQVNTRVJUKG1faW1h
Z2VCdWZmZXIpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2ltYWdlQnVmZmVyLT5jb3B5
SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRz
KGltYWdlLmdldCgpLCB0YXJnZXQsIHNvdXJjZU9mZnNldCwgQml0bWFwVGV4dHVyZTo6VXBkYXRl
Q2FuTW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOworfQorI2VuZGlmIC8vIFVTRShURVhUVVJFX01B
UFBFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZUltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1
cmZhY2VJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkyMTg3NTE4YTk2NDRjNmMzZWY4ZmZkNzNmZmM5ODRi
Y2U3NjE1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2VJbXBsLmgKQEAgLTAsMCAr
MSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvb3JkaW5hdGVkU3VyZmFjZUlt
cGxfaAorI2RlZmluZSBDb29yZGluYXRlZFN1cmZhY2VJbXBsX2gKKworI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIKKyNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvb3JkaW5h
dGVkU3VyZmFjZUltcGwgOiBwdWJsaWMgQ29vcmRpbmF0ZWRTdXJmYWNlIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5Db29yZGluYXRlZFN1cmZhY2VJbXBsKCk7CisKKyAgICAvLyBDcmVhdGUgYSBu
ZXcgQ29vcmRpbmF0ZWRTdXJmYWNlSW1wbCBhbmQgYWxsb2NhdGUgZWl0aGVyIGEgR3JhcGhpY3NT
dXJmYWNlIG9yIGEgSW1hZ2VCdWZmZXIgYXMgYmFja2luZy4KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDb29yZGluYXRlZFN1cmZhY2VJbXBsPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYsIEZsYWdzKTsK
KworICAgIEdyYXBoaWNzQ29udGV4dCogYmVnaW5QYWludChjb25zdCBJbnRSZWN0Jik7CisgICAg
dm9pZCBlbmRQYWludCgpOworCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQorICAgIHZpcnR1YWwg
dm9pZCBjb3B5VG9UZXh0dXJlKFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4sIGNvbnN0IEludFJl
Y3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCkgT1ZFUlJJREU7CisjZW5k
aWYKKworcHJpdmF0ZToKKyAgICBDb29yZGluYXRlZFN1cmZhY2VJbXBsKGNvbnN0IEludFNpemUm
LCBGbGFncywgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4pOworCisgICAgLy8gQ3JlYXRlIGEgQ29v
cmRpbmF0ZWRTdXJmYWNlSW1wbCByZWZlcmVuY2luZyBhbiBleGlzaXRpbmcgSW1hZ2VCdWZmZXIK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2VJbXBsPiBjcmVhdGUoY29u
c3QgSW50U2l6ZSYsIEZsYWdzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPik7CisKKyNpZiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBDb29yZGluYXRlZFN1cmZhY2VJbXBsKGNvbnN0IEludFNp
emUmLCBGbGFncywgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KTsKKyAgICAvLyBDcmVhdGUg
YSBDb29yZGluYXRlZFN1cmZhY2VJbXBsIGJhY2tlZCBieSBhIGdyYXBoaWNzIHN1cmZhY2UKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2VJbXBsPiBjcmVhdGVXaXRoU3Vy
ZmFjZShjb25zdCBJbnRTaXplJiwgRmxhZ3MpOworI2VuZGlmCisKKyAgICBPd25QdHI8SW1hZ2VC
dWZmZXI+IG1faW1hZ2VCdWZmZXI7CisKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyAgICBP
d25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2dyYXBoaWNzQ29udGV4dDsKKyNlbmRpZgorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQorCisjZW5kaWYgLy8gQ29vcmRpbmF0ZWRTdXJmYWNlSW1wbF9oCg==
</data>
<flag name="commit-queue"
          id="208002"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203785</attachid>
            <date>2013-06-05 03:24:49 -0700</date>
            <delta_ts>2013-07-01 18:31:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Coordinated-Graphics-Implement-ThreadSafeCoordinated.patch</filename>
            <type>text/plain</type>
            <size>12615</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">RnJvbSBkMjg5MGIxZDhhZmM0NDM5MzA5OWM1ZTUwMzY4OWUxZTZmZjVlYzFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWUgSHl1biBQYXJrIDxqYWUucGFya0Bjb21wYW55MTAwLm5l
dD4KRGF0ZTogVHVlLCAxOSBNYXIgMjAxMyAxNjo0NDozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd
IFtDb29yZGluYXRlZCBHcmFwaGljc10gSW1wbGVtZW50CiBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRT
dXJmYWNlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjYxCgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgYSBwcmVwYXJhdGlvbiBwYXRjaCBm
b3IgVGhyZWFkZWQgQ29vcmRpYW50ZWQgR3JhcGhpY3MuCgpJbXBsZW1lbnQgVGhyZWFkU2FmZUNv
b3JkaW5hdGVkU3VyZmFjZSB1c2luZyBHcmFwaGljc1N1cmZhY2UgYW5kCkltYWdlQnVmZmVyLgot
LS0KIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjQgKysrKwogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAyICsKIC4uLi9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRT
dXJmYWNlLmNwcCAgIHwgIDEzMCArKysrKysrKysrKysrKysrKysrKwogLi4uL2Nvb3JkaW5hdGVk
L1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuaCAgICAgfCAgIDcyICsrKysrKysrKysrCiA1
IGZpbGVzIGNoYW5nZWQsIDIyOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RocmVhZFNh
ZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RocmVhZFNhZmVDb29yZGlu
YXRlZFN1cmZhY2UuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2JkODA4NS4uNWZlZDBiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5NzUsNiArMTk3NSw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9VcGRhdGVBdGxhcy5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA2YTA5ZTBiLi44YmM5ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAKIDIwMTMtMDYt
MDQgIEphZSBIeXVuIFBhcmsgIDxqYWUucGFya0Bjb21wYW55MTAwLm5ldD4KIAorICAgICAgICBb
Q29vcmRpbmF0ZWQgR3JhcGhpY3NdIEltcGxlbWVudCBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJm
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2
NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2ggZm9yIFRocmVhZGVkIENvb3JkaWFudGVkIEdyYXBoaWNz
LgorCisgICAgICAgIEltcGxlbWVudCBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlIHVzaW5n
IEdyYXBoaWNzU3VyZmFjZSBhbmQKKyAgICAgICAgSW1hZ2VCdWZmZXIuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJm
YWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3Vy
ZmFjZTo6VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVXaXRoU3VyZmFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjp+VGhyZWFkU2FmZUNvb3Jk
aW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRT
dXJmYWNlOjpiZWdpblBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFNhZmVDb29yZGlu
YXRlZFN1cmZhY2U6OmVuZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFNhZmVDb29y
ZGluYXRlZFN1cmZhY2U6OmNvcHlUb1RleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmg6IEFk
ZGVkLgorCisyMDEzLTA2LTA0ICBKYWUgSHl1biBQYXJrICA8amFlLnBhcmtAY29tcGFueTEwMC5u
ZXQ+CisKICAgICAgICAgW0Nvb3JkaW5hdGVkIEdyYXBoaWNzXSBNYW5hZ2UgdGhlIGxpZmVjeWNs
ZSBvZiBHcmFwaGljc0NvbnRleHQgZXhwbGljaXRseS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODg5OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA3OTlkMGE1
Li5kYmRkNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQxNTEsNiArNDE1MSw3IEBAIHVzZT8oM0RfR1JB
UEhJQ1MpIHsKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkU3VyZmFjZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL1N1cmZhY2VVcGRhdGVJbmZvLmggXAorICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFj
ZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0
ZUF0bGFzLmgKIAogICAgIFNPVVJDRVMgKz0gXApAQCAtNDE4Miw2ICs0MTgzLDcgQEAgdXNlPygz
RF9HUkFQSElDUykgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5jcHAgXAogICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmNwcCBc
CisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZl
Q29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9VcGRhdGVBdGxhcy5jcHAKIAogICAgIElOQ0xVREVQQVRIICs9ICQkUFdE
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZh
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmY3ZWU4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGhyZWFkU2FmZUNvb3JkaW5h
dGVkU3VyZmFjZS5jcHAKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2Uu
aCIKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2lmIFVTRShURVhUVVJFX01B
UFBFUikKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZT4gVGhy
ZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIENv
b3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MpCit7CisgICAgUmVmUHRyPFRocmVhZFNhZmVD
b29yZGluYXRlZFN1cmZhY2U+IHN1cmZhY2U7CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisg
ICAgc3VyZmFjZSA9IGNyZWF0ZVdpdGhTdXJmYWNlKHNpemUsIGZsYWdzKTsKKyNlbmRpZgorCisg
ICAgaWYgKCFzdXJmYWNlKQorICAgICAgICBzdXJmYWNlID0gY3JlYXRlKHNpemUsIGZsYWdzLCBJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUpKTsKKworICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2Uo
KTsKK30KKworUGFzc1JlZlB0cjxUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlPiBUaHJlYWRT
YWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29vcmRp
bmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncywgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVy
KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFj
ZShzaXplLCBmbGFncywgYnVmZmVyKSk7Cit9CisKK1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZh
Y2U6OlRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29v
cmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncywgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gYnVm
ZmVyKQorICAgIDogQ29vcmRpbmF0ZWRTdXJmYWNlKHNpemUsIGZsYWdzKQorICAgICwgbV9pbWFn
ZUJ1ZmZlcihidWZmZXIpCit7Cit9CisKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKK1Bhc3NS
ZWZQdHI8VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZT4gVGhyZWFkU2FmZUNvb3JkaW5hdGVk
U3VyZmFjZTo6Y3JlYXRlV2l0aFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29vcmRpbmF0
ZWRTdXJmYWNlOjpGbGFncyBmbGFncykKK3sKKyAgICAvLyBUaGlzIG1pZ2h0IHJldHVybiBudWxs
LCBpZiB0aGUgc3lzdGVtIGlzIHVuYWJsZSB0byBwcm92aWRlIGEgbmV3IGdyYXBoaWNzIHN1cmZh
Y2UuCisgICAgLy8gSW4gdGhhdCBjYXNlLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiBudWxs
IGFuZCBhbGxvdyBmYWxsaW5nIGJhY2sgdG8gU2hhcmVhYmxlQml0bWFwLgorICAgIFJlZlB0cjxH
cmFwaGljc1N1cmZhY2U+IHN1cmZhY2UgPSBjcmVhdGVXaXRoR3JhcGhpY3NTdXJmYWNlKHNpemUs
IGZsYWdzKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgQVNT
RVJUKHN1cmZhY2UpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFkU2FmZUNvb3JkaW5h
dGVkU3VyZmFjZShzaXplLCBmbGFncywgc3VyZmFjZS5yZWxlYXNlKCkpKTsKK30KKworVGhyZWFk
U2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZShjb25z
dCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzLCBQYXNzUmVm
UHRyPEdyYXBoaWNzU3VyZmFjZT4gc3VyZmFjZSkKKyAgICA6IENvb3JkaW5hdGVkU3VyZmFjZShz
aXplLCBmbGFncywgc3VyZmFjZSkKK3sKK30KKyNlbmRpZgorCitUaHJlYWRTYWZlQ29vcmRpbmF0
ZWRTdXJmYWNlOjp+VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSgpCit7Cit9CisKK0dyYXBo
aWNzQ29udGV4dCogVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6YmVnaW5QYWludChjb25z
dCBJbnRSZWN0JiByZWN0KQoreworI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAgIGlmIChp
c0JhY2tlZEJ5R3JhcGhpY3NTdXJmYWNlKCkpCisgICAgICAgIHJldHVybiBtX2dyYXBoaWNzU3Vy
ZmFjZS0+YmVnaW5QYWludChyZWN0LCAwIC8qIFdyaXRlIHdpdGhvdXQgcmV0YWluaW5nIHBpeGVs
cyovKTsKKyNlbmRpZgorCisgICAgQVNTRVJUKG1faW1hZ2VCdWZmZXIpOworICAgIEdyYXBoaWNz
Q29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAg
IGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xpcChyZWN0
KTsKKyAgICBncmFwaGljc0NvbnRleHQtPnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkpOwor
ICAgIHJldHVybiBncmFwaGljc0NvbnRleHQ7Cit9CisKK3ZvaWQgVGhyZWFkU2FmZUNvb3JkaW5h
dGVkU3VyZmFjZTo6ZW5kUGFpbnQoKQoreworI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQorICAg
IGlmIChpc0JhY2tlZEJ5R3JhcGhpY3NTdXJmYWNlKCkpIHsKKyAgICAgICAgbV9ncmFwaGljc1N1
cmZhY2UtPmVuZFBhaW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAg
IEFTU0VSVChtX2ltYWdlQnVmZmVyKTsKKyAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnJl
c3RvcmUoKTsKK30KKworI2lmIFVTRShURVhUVVJFX01BUFBFUikKK3ZvaWQgVGhyZWFkU2FmZUNv
b3JkaW5hdGVkU3VyZmFjZTo6Y29weVRvVGV4dHVyZShQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+
IHBhc3NUZXh0dXJlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBzb3Vy
Y2VPZmZzZXQpCit7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUocGFzc1RleHR1
cmUpOworCisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCisgICAgaWYgKGNvcHlUb1RleHR1cmVV
c2luZ0dyYXBoaWNzU3VyZmFjZSh0ZXh0dXJlLmdldCgpLCB0YXJnZXQsIHNvdXJjZU9mZnNldCkp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgQVNTRVJUKG1faW1hZ2VCdWZmZXIpOwor
ICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2ltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENv
cHlCYWNraW5nU3RvcmUpOworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLmdldCgp
LCB0YXJnZXQsIHNvdXJjZU9mZnNldCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5T3Jp
Z2luYWxJbWFnZURhdGEpOworfQorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUikKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0
ZWRTdXJmYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UwZmYzYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmgKQEAgLTAsMCArMSw3
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRocmVhZFNhZmVDb29yZGluYXRlZFN1
cmZhY2VfaAorI2RlZmluZSBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlX2gKKworI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIK
KyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UgOiBwdWJsaWMgQ29vcmRpbmF0ZWRTdXJmYWNl
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlKCk7
CisKKyAgICAvLyBDcmVhdGUgYSBuZXcgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSBhbmQg
YWxsb2NhdGUgZWl0aGVyIGEgR3JhcGhpY3NTdXJmYWNlIG9yIGEgSW1hZ2VCdWZmZXIgYXMgYmFj
a2luZy4KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNl
PiBjcmVhdGUoY29uc3QgSW50U2l6ZSYsIEZsYWdzKTsKKworICAgIEdyYXBoaWNzQ29udGV4dCog
YmVnaW5QYWludChjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBlbmRQYWludCgpOworCisjaWYg
VVNFKFRFWFRVUkVfTUFQUEVSKQorICAgIHZpcnR1YWwgdm9pZCBjb3B5VG9UZXh0dXJlKFBhc3NS
ZWZQdHI8Qml0bWFwVGV4dHVyZT4sIGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9p
bnQmIHNvdXJjZU9mZnNldCkgT1ZFUlJJREU7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBUaHJl
YWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IEludFNpemUmLCBGbGFncywgUGFzc093blB0
cjxJbWFnZUJ1ZmZlcj4pOworCisgICAgLy8gQ3JlYXRlIGEgVGhyZWFkU2FmZUNvb3JkaW5hdGVk
U3VyZmFjZSByZWZlcmVuY2luZyBhbiBleGlzaXRpbmcgSW1hZ2VCdWZmZXIKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGUoY29uc3QgSW50
U2l6ZSYsIEZsYWdzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPik7CisKKyNpZiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKKyAgICBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IEludFNp
emUmLCBGbGFncywgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KTsKKyAgICAvLyBDcmVhdGUg
YSBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlIGJhY2tlZCBieSBhIGdyYXBoaWNzIHN1cmZh
Y2UKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlPiBj
cmVhdGVXaXRoU3VyZmFjZShjb25zdCBJbnRTaXplJiwgRmxhZ3MpOworI2VuZGlmCisKKyAgICBP
d25QdHI8SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7CisKKyNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKKyAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2dyYXBoaWNzQ29udGV4dDsKKyNl
bmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQorCisjZW5kaWYgLy8gVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFj
ZV9oCi0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205848</attachid>
            <date>2013-07-01 18:31:08 -0700</date>
            <delta_ts>2013-07-01 22:06:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109661-20130701183012.patch</filename>
            <type>text/plain</type>
            <size>13815</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc2NWIwZGUyZDEzMjE1
ZmRiYmQ0ZjUzYzlmMWE2Y2EwMDlmODIxMi4uMWQ2Zjg0ODM1ZDhlYzQ3N2U4MTM2OTZmZTVmYTVm
MmVmN2RkMzVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA3LTAxICBKYWUg
SHl1biBQYXJrICA8amFlLnBhcmtAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgSW1wbGVtZW50
IENvb3JkaW5hdGVkU3VyZmFjZSBmb3IgVGhyZWFkZWQgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTY2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBw
cmVwYXJhdGlvbiBwYXRjaCBmb3IgVGhyZWFkZWQgQ29vcmRpYW50ZWQgR3JhcGhpY3MuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2Ug
dXNpbmcgSW1hZ2VCdWZmZXIgYXMgYQorICAgICAgICBiYWNrZW5kLiBBbHNvLCB0aGlzIHBhdGNo
IG1vdmVzIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiB0byBDb29yZGluYXRlZFN1cmZhY2UgdG8KKyAg
ICAgICAgcHJldmVudCBkdXBsaWNhdGlvbiBvZiBjb2RlLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U6OkNvb3JkaW5hdGVkU3VyZmFjZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
U3VyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpzaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkU3VyZmFjZTo6ZmxhZ3MpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0
ZWRTdXJmYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRp
bmF0ZWRTdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkU2FmZUNvb3Jk
aW5hdGVkU3VyZmFjZTo6VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjp+VGhyZWFkU2FmZUNvb3JkaW5h
dGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJm
YWNlOjpwYWludFRvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRp
bmF0ZWRTdXJmYWNlOjpiZWdpblBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFNhZmVD
b29yZGluYXRlZFN1cmZhY2U6OmVuZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFNh
ZmVDb29yZGluYXRlZFN1cmZhY2U6OmNvcHlUb1RleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNl
Lmg6IEFkZGVkLgorCiAyMDEzLTA3LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5kb3dzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUg
bGlzdCBvZiBwbGF0Zm9ybXMgdGhhdCBjYW4gdXNlIE9wZW5HTCBFUyAyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDUzOWEyOTYyYzhjMzIzZWNiYjNjOGZlMWFkM2EyYTM1MTM3ZGEwM2EuLjg1NWI0ZTRjNTA2N2Ji
M2MzMGFkNjJmY2ZjNThhZWRjYWRlMDRmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxMy0wNy0wMSAgSmFlIEh5dW4gUGFyayAgPGphZS5wYXJrQGNvbXBhbnkxMDAubmV0PgorCisg
ICAgICAgIEltcGxlbWVudCBDb29yZGluYXRlZFN1cmZhY2UgZm9yIFRocmVhZGVkIENvb3JkaW5h
dGVkIEdyYXBoaWNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDk2NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gcGF0Y2ggZm9yIFRocmVhZGVkIENvb3JkaWFudGVk
IEdyYXBoaWNzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBUaHJlYWRTYWZlQ29v
cmRpbmF0ZWRTdXJmYWNlIHVzaW5nIEltYWdlQnVmZmVyIGFzIGEKKyAgICAgICAgYmFja2VuZC4g
QWxzbywgdGhpcyBwYXRjaCBtb3ZlcyBjb21tb24gaW1wbGVtZW50YXRpb24gdG8gQ29vcmRpbmF0
ZWRTdXJmYWNlIHRvCisgICAgICAgIHByZXZlbnQgZHVwbGljYXRpb24gb2YgY29kZS4KKworICAg
ICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29y
ZGluYXRlZFN1cmZhY2UuaDoKKwogMjAxMy0wNy0wMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24g
dHJhY2tpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5j
cHAKaW5kZXggZjlhOTQyMzcyNzQzNWE0NTg0ZDc1YmQwMDM4YWIzNmQ3MWYwYTM2Zi4uOWFhNjdh
NWUwNmE5NDFmZmJhNGQ1ODQyMDc3MmMyN2FiOGVjNjVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5jcHAKQEAgLTQzLDYgKzQzLDEyIEBAIFBhc3NS
ZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShjb25z
dCBJbnRTaXplJiBzaXplLCBGCiAgICAgcmV0dXJuIHNfZmFjdG9yeShzaXplLCBmbGFncyk7CiB9
CiAKK0Nvb3JkaW5hdGVkU3VyZmFjZTo6Q29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IEludFNpemUm
IHNpemUsIEZsYWdzIGZsYWdzKQorICAgIDogbV9zaXplKHNpemUpCisgICAgLCBtX2ZsYWdzKGZs
YWdzKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRTdXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRT
dXJmYWNlLmgKaW5kZXggZGIxYzI3ZWE4NTJjMjU1MTk0MzBiZmY2NzMwZjA3MjIwZWQ5NWJkNy4u
OTE0MjUyOGM2NGQyMjkyNzcxZDA5YTM4MjllNjk3ZTM1MTNiY2JmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2UuaApAQCAtMjMsNyArMjMsNiBAQAogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTUyLDcgKzUxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkU3VyZmFjZSgpIHsgfQogCiAgICAgYm9vbCBz
dXBwb3J0c0FscGhhKCkgY29uc3QgeyByZXR1cm4gZmxhZ3MoKSAmIFN1cHBvcnRzQWxwaGE7IH0K
LSAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0ID0gMDsKKyAgICBJbnRTaXplIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludFRvU3Vy
ZmFjZShjb25zdCBJbnRSZWN0JiwgQ2xpZW50KikgPSAwOwogCkBAIC02MSw3ICs2MCwxMSBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgRmxhZ3MgZmxhZ3MoKSBj
b25zdCA9IDA7CisgICAgQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IEludFNpemUmLCBGbGFncyk7
CisgICAgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CisKKyAgICBJbnRT
aXplIG1fc2l6ZTsKKyAgICBGbGFncyBtX2ZsYWdzOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBD
b29yZGluYXRlZFN1cmZhY2U6OkZhY3RvcnkqIHNfZmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZl
Q29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ZTI4YWYyMzk4NmJiNjI2YzdhOGUxNGEyYzY1ZTI0MDg3NDZlZDkwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCkBAIC0wLDAgKzEsOTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRocmVh
ZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuaCIKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKKworI2lmIFVTRShURVhUVVJFX01BUFBFUikKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFRocmVhZFNhZmVD
b29yZGluYXRlZFN1cmZhY2U+IFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShj
b25zdCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZShzaXpl
LCBmbGFncywgSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKSkpOworfQorCitUaHJlYWRTYWZlQ29v
cmRpbmF0ZWRTdXJmYWNlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IEludFNp
emUmIHNpemUsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MsIFBhc3NPd25QdHI8SW1h
Z2VCdWZmZXI+IGJ1ZmZlcikKKyAgICA6IENvb3JkaW5hdGVkU3VyZmFjZShzaXplLCBmbGFncykK
KyAgICAsIG1faW1hZ2VCdWZmZXIoYnVmZmVyKQoreworfQorCitUaHJlYWRTYWZlQ29vcmRpbmF0
ZWRTdXJmYWNlOjp+VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSgpCit7Cit9CisKK3ZvaWQg
VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6cGFpbnRUb1N1cmZhY2UoY29uc3QgSW50UmVj
dCYgcmVjdCwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpDbGllbnQqIGNsaWVudCkKK3sKKyAgICBBU1NF
UlQoY2xpZW50KTsKKworICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IGJlZ2luUGFpbnQo
cmVjdCk7CisgICAgY2xpZW50LT5wYWludFRvU3VyZmFjZUNvbnRleHQoY29udGV4dCk7CisgICAg
ZW5kUGFpbnQoKTsKK30KKworR3JhcGhpY3NDb250ZXh0KiBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRT
dXJmYWNlOjpiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgQVNTRVJUKG1f
aW1hZ2VCdWZmZXIpOworICAgIEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0ID0gbV9p
bWFnZUJ1ZmZlci0+Y29udGV4dCgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOworICAg
IGdyYXBoaWNzQ29udGV4dC0+Y2xpcChyZWN0KTsKKyAgICBncmFwaGljc0NvbnRleHQtPnRyYW5z
bGF0ZShyZWN0LngoKSwgcmVjdC55KCkpOworICAgIHJldHVybiBncmFwaGljc0NvbnRleHQ7Cit9
CisKK3ZvaWQgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6ZW5kUGFpbnQoKQoreworICAg
IEFTU0VSVChtX2ltYWdlQnVmZmVyKTsKKyAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnJl
c3RvcmUoKTsKK30KKworI2lmIFVTRShURVhUVVJFX01BUFBFUikKK3ZvaWQgVGhyZWFkU2FmZUNv
b3JkaW5hdGVkU3VyZmFjZTo6Y29weVRvVGV4dHVyZShQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+
IHBhc3NUZXh0dXJlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBzb3Vy
Y2VPZmZzZXQpCit7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUocGFzc1RleHR1
cmUpOworCisgICAgQVNTRVJUKG1faW1hZ2VCdWZmZXIpOworICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UgPSBtX2ltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAg
IHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLmdldCgpLCB0YXJnZXQsIHNvdXJjZU9mZnNl
dCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOworfQor
I2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUikKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RocmVhZFNhZmVD
b29yZGluYXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDgwYzFlOGVlNjRjMTY5MDMzMjVkMGFjZGZmOTNiY2ZlNmI2YzdlNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2VfaAorI2Rl
ZmluZSBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlX2gKKworI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRocmVhZFNhZmVD
b29yZGluYXRlZFN1cmZhY2UgOiBwdWJsaWMgQ29vcmRpbmF0ZWRTdXJmYWNlIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlKCk7CisKKyAgICAvLyBD
cmVhdGUgYSBuZXcgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSBhbmQgYWxsb2NhdGUgZWl0
aGVyIGEgR3JhcGhpY3NTdXJmYWNlIG9yIGEgSW1hZ2VCdWZmZXIgYXMgYmFja2luZy4KKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGUoY29u
c3QgSW50U2l6ZSYsIEZsYWdzKTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWludFRvU3VyZmFjZShj
b25zdCBJbnRSZWN0JiwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpDbGllbnQqKSBPVkVSUklERTsKKwor
I2lmIFVTRShURVhUVVJFX01BUFBFUikKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVGV4dHVyZShQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+LCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IElu
dFBvaW50JiBzb3VyY2VPZmZzZXQpIE9WRVJSSURFOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAg
VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJbnRTaXplJiwgRmxhZ3MsIFBhc3NP
d25QdHI8SW1hZ2VCdWZmZXI+KTsKKworICAgIEdyYXBoaWNzQ29udGV4dCogYmVnaW5QYWludChj
b25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBlbmRQYWludCgpOworCisgICAgT3duUHRyPEltYWdl
QnVmZmVyPiBtX2ltYWdlQnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorCisjZW5kaWYgLy8gVGhyZWFkU2Fm
ZUNvb3JkaW5hdGVkU3VyZmFjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNw
cAppbmRleCA5NTAxYTY3MWYzYTc5NWNkOTBkN2VhMGJiNTBmZjE1YmVkZDkxMzUwLi4xMTBhM2Rl
MTdjNjVkZDM0ZjQ1ZWZkMmRiMDU1ZDEyNDJiOTZhNzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3Jk
aW5hdGVkU3VyZmFjZS5jcHAKQEAgLTEyMywxNiArMTIzLDE0IEBAIFBhc3NSZWZQdHI8V2ViQ29v
cmRpbmF0ZWRTdXJmYWNlPiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShjb25zdCBJbnRT
aXplJiBzCiB9CiAKIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNl
KGNvbnN0IEludFNpemUmIHNpemUsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MsIFBh
c3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXApCi0gICAgOiBtX3NpemUoc2l6ZSkKLSAg
ICAsIG1fZmxhZ3MoZmxhZ3MpCisgICAgOiBDb29yZGluYXRlZFN1cmZhY2Uoc2l6ZSwgZmxhZ3Mp
CiAgICAgLCBtX2JpdG1hcChiaXRtYXApCiB7CiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNpemUsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlPiBzdXJmYWNlKQotICAgIDogbV9zaXpl
KHNpemUpCi0gICAgLCBtX2ZsYWdzKGZsYWdzKQorICAgIDogQ29vcmRpbmF0ZWRTdXJmYWNlKHNp
emUsIGZsYWdzKQogICAgICwgbV9ncmFwaGljc1N1cmZhY2Uoc3VyZmFjZSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3Jk
aW5hdGVkU3VyZmFjZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgKaW5kZXggYmU5ODFlMGIyZWY4MjE2NjQ2OTViNzZl
NDcyNTQxNzJmMTQzMzVlMi4uN2I1N2YxNjIwNjA1NjM2MTQ1ZDkzNzVhMGFiMjBiZjU2ZWU3MTMz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgKQEAgLTcxLDggKzcxLDYgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB+V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKCk7CiAKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgc2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
c2l6ZTsgfQotCiAgICAgdmlydHVhbCB2b2lkIHBhaW50VG9TdXJmYWNlKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U6OkNsaWVudCopIE9WRVJSSURF
OwogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQpAQCAtODIsOCArODAsNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFdlYkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgRmxhZ3MsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPik7CiAKLSAgICB2aXJ0dWFsIEZs
YWdzIGZsYWdzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9mbGFnczsgfQotCiAgICAgLy8g
Q3JlYXRlIGEgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFNo
YXJlYWJsZUJpdG1hcC4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZh
Y2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBhc3NSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPik7CiAKQEAgLTk4LDggKzk0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlz
QmFja2VkQnlHcmFwaGljc1N1cmZhY2UoKSBjb25zdCB7IHJldHVybiAhIW1fZ3JhcGhpY3NTdXJm
YWNlOyB9CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwotICAgIEZsYWdz
IG1fZmxhZ3M7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gbV9iaXRtYXA7CiAKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205863</attachid>
            <date>2013-07-01 22:06:20 -0700</date>
            <delta_ts>2013-07-02 12:17:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109661-20130701220524.patch</filename>
            <type>text/plain</type>
            <size>13066</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc2NWIwZGUyZDEzMjE1
ZmRiYmQ0ZjUzYzlmMWE2Y2EwMDlmODIxMi4uY2JiMmNjM2IzNTNmYWJlNWMyM2Q2N2RmZGIxYmJk
ZTAzMzYwY2M2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTA3LTAxICBKYWUg
SHl1biBQYXJrICA8amFlLnBhcmtAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgSW1wbGVtZW50
IENvb3JkaW5hdGVkU3VyZmFjZSBmb3IgVGhyZWFkZWQgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTY2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBw
cmVwYXJhdGlvbiBwYXRjaCBmb3IgVGhyZWFkZWQgQ29vcmRpYW50ZWQgR3JhcGhpY3MuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2Ug
dXNpbmcgSW1hZ2VCdWZmZXIgYXMgYQorICAgICAgICBiYWNrZW5kLiBBbHNvLCB0aGlzIHBhdGNo
IG1vdmVzIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiB0byBDb29yZGluYXRlZFN1cmZhY2UgdG8KKyAg
ICAgICAgcHJldmVudCBkdXBsaWNhdGlvbiBvZiBjb2RlLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U6OkNvb3JkaW5hdGVkU3VyZmFjZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
U3VyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpzaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkU3VyZmFjZTo6ZmxhZ3MpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaHJlYWRTYWZlQ29vcmRpbmF0
ZWRTdXJmYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRp
bmF0ZWRTdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkU2FmZUNvb3Jk
aW5hdGVkU3VyZmFjZTo6VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjp+VGhyZWFkU2FmZUNvb3JkaW5h
dGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJm
YWNlOjpwYWludFRvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRTYWZlQ29vcmRp
bmF0ZWRTdXJmYWNlOjpjb3B5VG9UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5oOiBBZGRl
ZC4KKwogMjAxMy0wNy0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkBhcHBsZS5j
b20+CiAKICAgICAgICAgV2luZG93cyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2Yg
cGxhdGZvcm1zIHRoYXQgY2FuIHVzZSBPcGVuR0wgRVMgMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MzlhMjk2
MmM4YzMyM2VjYmIzYzhmZTFhZDNhMmEzNTEzN2RhMDNhLi44NTViNGU0YzUwNjdiYjNjMzBhZDYy
ZmNmYzU4YWVkY2FkZTA0ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDct
MDEgIEphZSBIeXVuIFBhcmsgIDxqYWUucGFya0Bjb21wYW55MTAwLm5ldD4KKworICAgICAgICBJ
bXBsZW1lbnQgQ29vcmRpbmF0ZWRTdXJmYWNlIGZvciBUaHJlYWRlZCBDb29yZGluYXRlZCBHcmFw
aGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5
NjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyBhIHByZXBhcmF0aW9uIHBhdGNoIGZvciBUaHJlYWRlZCBDb29yZGlhbnRlZCBHcmFwaGlj
cy4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgVGhyZWFkU2FmZUNvb3JkaW5hdGVk
U3VyZmFjZSB1c2luZyBJbWFnZUJ1ZmZlciBhcyBhCisgICAgICAgIGJhY2tlbmQuIEFsc28sIHRo
aXMgcGF0Y2ggbW92ZXMgY29tbW9uIGltcGxlbWVudGF0aW9uIHRvIENvb3JkaW5hdGVkU3VyZmFj
ZSB0bworICAgICAgICBwcmV2ZW50IGR1cGxpY2F0aW9uIG9mIGNvZGUuCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFj
ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlLmg6CisKIDIwMTMtMDctMDEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgQ2xlYW4gdXAgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uIHRyYWNraW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2UuY3BwCmluZGV4
IGY5YTk0MjM3Mjc0MzVhNDU4NGQ3NWJkMDAzOGFiMzZkNzFmMGEzNmYuLjlhYTY3YTVlMDZhOTQx
ZmZiYTRkNTg0MjA3NzJjMjdhYjhlYzY1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZFN1cmZhY2UuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBQYXNzUmVmUHRyPENv
b3JkaW5hdGVkU3VyZmFjZT4gQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgRgogICAgIHJldHVybiBzX2ZhY3Rvcnkoc2l6ZSwgZmxhZ3MpOwogfQogCitDb29y
ZGluYXRlZFN1cmZhY2U6OkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBG
bGFncyBmbGFncykKKyAgICA6IG1fc2l6ZShzaXplKQorICAgICwgbV9mbGFncyhmbGFncykKK3sK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkU3VyZmFjZS5o
CmluZGV4IGRiMWMyN2VhODUyYzI1NTE5NDMwYmZmNjczMGYwNzIyMGVkOTViZDcuLjkxNDI1Mjhj
NjRkMjI5Mjc3MWQwOWEzODI5ZTY5N2UzNTEzYmNiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRTdXJmYWNlLmgKQEAgLTIzLDcgKzIzLDYgQEAKIAogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCkBAIC01Miw3ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5Db29yZGluYXRlZFN1cmZhY2UoKSB7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNB
bHBoYSgpIGNvbnN0IHsgcmV0dXJuIGZsYWdzKCkgJiBTdXBwb3J0c0FscGhhOyB9Ci0gICAgdmly
dHVhbCBJbnRTaXplIHNpemUoKSBjb25zdCA9IDA7CisgICAgSW50U2l6ZSBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9zaXplOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1N1cmZhY2UoY29u
c3QgSW50UmVjdCYsIENsaWVudCopID0gMDsKIApAQCAtNjEsNyArNjAsMTEgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIEZsYWdzIGZsYWdzKCkgY29uc3QgPSAw
OworICAgIENvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJbnRTaXplJiwgRmxhZ3MpOworICAgIEZs
YWdzIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQorCisgICAgSW50U2l6ZSBtX3Np
emU7CisgICAgRmxhZ3MgbV9mbGFnczsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgQ29vcmRpbmF0
ZWRTdXJmYWNlOjpGYWN0b3J5KiBzX2ZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGhyZWFkU2FmZUNvb3JkaW5h
dGVkU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTQ0OTdkZDg0NWJlYTM4OTU5Mjg5ZmUyNjU0ZDFlYjIyZDk0ZmMyNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9U
aHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIENvbXBhbnkgMTAwLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUaHJlYWRTYWZlQ29v
cmRpbmF0ZWRTdXJmYWNlLmgiCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisKKyNp
bmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1Jl
ZlB0cjxUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlPiBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRT
dXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpG
bGFncyBmbGFncykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZFNhZmVDb29yZGlu
YXRlZFN1cmZhY2Uoc2l6ZSwgZmxhZ3MsIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSkpKTsKK30K
KworVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6VGhyZWFkU2FmZUNvb3JkaW5hdGVkU3Vy
ZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdz
LCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIpCisgICAgOiBDb29yZGluYXRlZFN1cmZh
Y2Uoc2l6ZSwgZmxhZ3MpCisgICAgLCBtX2ltYWdlQnVmZmVyKGJ1ZmZlcikKK3sKK30KKworVGhy
ZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6flRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2Uo
KQoreworfQorCit2b2lkIFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2U6OnBhaW50VG9TdXJm
YWNlKGNvbnN0IEludFJlY3QmIHJlY3QsIENvb3JkaW5hdGVkU3VyZmFjZTo6Q2xpZW50KiBjbGll
bnQpCit7CisgICAgQVNTRVJUKGNsaWVudCk7CisgICAgQVNTRVJUKG1faW1hZ2VCdWZmZXIpOwor
CisgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgp
OworICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5jbGlwKHJlY3QpOworICAgIGNv
bnRleHQtPnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkpOworCisgICAgY2xpZW50LT5wYWlu
dFRvU3VyZmFjZUNvbnRleHQoY29udGV4dCk7CisKKyAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cit9
CisKK3ZvaWQgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6Y29weVRvVGV4dHVyZShQYXNz
UmVmUHRyPEJpdG1hcFRleHR1cmU+IHBhc3NUZXh0dXJlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQs
IGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQpCit7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1
cmU+IHRleHR1cmUocGFzc1RleHR1cmUpOworCisgICAgQVNTRVJUKG1faW1hZ2VCdWZmZXIpOwor
ICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX2ltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENv
cHlCYWNraW5nU3RvcmUpOworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLmdldCgp
LCB0YXJnZXQsIHNvdXJjZU9mZnNldCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5T3Jp
Z2luYWxJbWFnZURhdGEpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGhyZWFkU2FmZUNvb3JkaW5hdGVk
U3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDAzODE4
YWZlOWEwNmY1YmM1YTkwZjY1ODc0YjNkYzUxN2E4MDZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RocmVhZFNh
ZmVDb29yZGluYXRlZFN1cmZhY2UuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIENvbXBhbnkgMTAwLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZV9oCisjZGVmaW5lIFRocmVh
ZFNhZmVDb29yZGluYXRlZFN1cmZhY2VfaAorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQorI2luY2x1ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGhyZWFkU2FmZUNvb3JkaW5hdGVk
U3VyZmFjZSA6IHB1YmxpYyBDb29yZGluYXRlZFN1cmZhY2UgeworcHVibGljOgorICAgIHZpcnR1
YWwgflRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UoKTsKKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2U+IGNyZWF0ZShjb25zdCBJbnRTaXplJiwg
RmxhZ3MpOworCisgICAgdmlydHVhbCB2b2lkIHBhaW50VG9TdXJmYWNlKGNvbnN0IEludFJlY3Qm
LCBDb29yZGluYXRlZFN1cmZhY2U6OkNsaWVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBjb3B5VG9UZXh0dXJlKFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4sIGNvbnN0IEludFJlY3Qm
IHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCkgT1ZFUlJJREU7CisKK3ByaXZh
dGU6CisgICAgVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJbnRTaXplJiwgRmxh
Z3MsIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+KTsKKworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4g
bV9pbWFnZUJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2VuZGlmIC8vIFRocmVhZFNhZmVDb29yZGlu
YXRlZFN1cmZhY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKaW5kZXgg
OTUwMWE2NzFmM2E3OTVjZDkwZDdlYTBiYjUwZmYxNWJlZGQ5MTM1MC4uMTEwYTNkZTE3YzY1ZGQz
NGY0NWVmZDJkYjA1NWQxMjQyYjk2YTcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuY3BwCkBAIC0xMjMsMTYgKzEyMywxNCBAQCBQYXNzUmVmUHRyPFdlYkNvb3JkaW5hdGVk
U3VyZmFjZT4gV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6ZSYgcwog
fQogCiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJ
bnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzLCBQYXNzUmVmUHRy
PFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwKQotICAgIDogbV9zaXplKHNpemUpCi0gICAgLCBtX2Zs
YWdzKGZsYWdzKQorICAgIDogQ29vcmRpbmF0ZWRTdXJmYWNlKHNpemUsIGZsYWdzKQogICAgICwg
bV9iaXRtYXAoYml0bWFwKQogewogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiBXZWJD
b29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZT4gc3VyZmFjZSkKLSAgICA6IG1fc2l6ZShzaXplKQot
ICAgICwgbV9mbGFncyhmbGFncykKKyAgICA6IENvb3JkaW5hdGVkU3VyZmFjZShzaXplLCBmbGFn
cykKICAgICAsIG1fZ3JhcGhpY3NTdXJmYWNlKHN1cmZhY2UpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNv
b3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IGJlOTgxZTBiMmVmODIxNjY0Njk1Yjc2ZTQ3MjU0MTcy
ZjE0MzM1ZTIuLjdiNTdmMTYyMDYwNTYzNjE0NWQ5Mzc1YTBhYjIwYmY1NmVlNzEzMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3Jk
aW5hdGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCkBAIC03MSw4ICs3MSw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgfldlYkNvb3JkaW5hdGVkU3VyZmFjZSgpOwogCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3NpemU7IH0K
LQogICAgIHZpcnR1YWwgdm9pZCBwYWludFRvU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpDbGllbnQqKSBPVkVSUklERTsKIAogI2lm
IFVTRShURVhUVVJFX01BUFBFUikKQEAgLTgyLDggKzgwLDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBXZWJDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIEZsYWdz
LCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4pOwogCi0gICAgdmlydHVhbCBGbGFncyBmbGFn
cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fZmxhZ3M7IH0KLQogICAgIC8vIENyZWF0ZSBh
IFdlYkNvb3JkaW5hdGVkU3VyZmFjZSByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTaGFyZWFibGVC
aXRtYXAuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIEZsYWdzLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJp
dG1hcD4pOwogCkBAIC05OCw4ICs5NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0JhY2tlZEJ5
R3JhcGhpY3NTdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gISFtX2dyYXBoaWNzU3VyZmFjZTsgfQog
I2VuZGlmCiAKLSAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKLSAgICBGbGFncyBtX2ZsYWdz
OwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fYml0bWFwOwogCiAjaWYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>