<?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>62444</bug_id>
          
          <creation_ts>2011-06-10 02:34:36 -0700</creation_ts>
          <short_desc>[WK2] Move gtk/BackingStoreGtk.cpp to cairo/BackingStoreCairo.cpp to share with EFL port.</short_desc>
          <delta_ts>2011-11-17 01:28:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>61838</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>antognolli+webkit</cc>
    
    <cc>bfulgham</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joone.hur</cc>
    
    <cc>kenneth</cc>
    
    <cc>leandro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sangseok.lim</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>youngtaeck.song</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>418606</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-10 02:34:36 -0700</bug_when>
    <thetext>I added BackingStoreEfl for WebKit2 EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418607</commentid>
    <comment_count>1</comment_count>
      <attachid>96718</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-10 02:36:47 -0700</bug_when>
    <thetext>Created attachment 96718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419152</commentid>
    <comment_count>2</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-06-10 22:03:42 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=96718&amp;action=review

&gt; Source/WebKit2/UIProcess/BackingStore.h:78
&gt; -#elif PLATFORM(GTK)
&gt; +#elif PLATFORM(GTK) || PLATFORM(EFL)
&gt;      typedef cairo_t* PlatformGraphicsContext;
&gt;  #endif

Hello, Martin.
Could you give your opinion about changing it to #elif USE(CAIRO) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419348</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-12 15:55:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96718&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/BackingStore.h:78
&gt; &gt; -#elif PLATFORM(GTK)
&gt; &gt; +#elif PLATFORM(GTK) || PLATFORM(EFL)
&gt; &gt;      typedef cairo_t* PlatformGraphicsContext;
&gt; &gt;  #endif
&gt; 
&gt; Hello, Martin.
&gt; Could you give your opinion about changing it to #elif USE(CAIRO) ?

I don&apos;t think that&apos;s the right thing to do for WinCairo. CCing Brent Fulgham who probably knows better than I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420173</commentid>
    <comment_count>4</comment_count>
      <attachid>96718</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-13 20:09:06 -0700</bug_when>
    <thetext>Comment on attachment 96718
Patch

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

&gt; Source/WebKit2/ChangeLog:7
&gt; +

Missing summary for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420200</commentid>
    <comment_count>5</comment_count>
      <attachid>96718</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-06-13 21:43:33 -0700</bug_when>
    <thetext>Comment on attachment 96718
Patch

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

There is a lot of Cairo functionality here that is improperly limited to EFL.  Can this patch be combined with some of our GTK/WinCairo stuff for better reuse?

&gt; Source/WebKit2/UIProcess/BackingStore.h:44
&gt; +#if PLATFORM(GTK) || PLATFORM(EFL)

This needs to be based on the Cairo feature, not GTK/EFL.  A patch to this effect was already submitted IIRC by mrobinson, but I&apos;m not sure the state.

&gt; Source/WebKit2/UIProcess/BackingStore.h:76
&gt; +#elif PLATFORM(GTK) || PLATFORM(EFL)

Ditto:  This is PLATFORM(CAIRO) (or is it FEATURE(CAIRO) now?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421007</commentid>
    <comment_count>6</comment_count>
      <attachid>97229</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-14 21:56:07 -0700</bug_when>
    <thetext>Created attachment 97229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421008</commentid>
    <comment_count>7</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-14 22:04:38 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 96718 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96718&amp;action=review
&gt; 
&gt; There is a lot of Cairo functionality here that is improperly limited to EFL.  Can this patch be combined with some of our GTK/WinCairo stuff for better reuse?
&gt; 
I think that EFL&apos;s BackingStore and GTK&apos;s one can be combined if the EFL&apos;s BackingStore can use GtkWidgetBackingStoreCairo.
In order to do that, we have to change the GtkWidgetBackingStore to common one firstly.
I will investigate GtkWidgetBackingStore and try to make patch for that. 

&gt; &gt; Source/WebKit2/UIProcess/BackingStore.h:44
&gt; &gt; +#if PLATFORM(GTK) || PLATFORM(EFL)
&gt; 
&gt; This needs to be based on the Cairo feature, not GTK/EFL.  A patch to this effect was already submitted IIRC by mrobinson, but I&apos;m not sure the state.
&gt; 

Done. I&apos;ve change that to USE(CAIRO)

&gt; &gt; Source/WebKit2/UIProcess/BackingStore.h:76
&gt; &gt; +#elif PLATFORM(GTK) || PLATFORM(EFL)
&gt; 
&gt; Ditto:  This is PLATFORM(CAIRO) (or is it FEATURE(CAIRO) now?)

Done. Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421009</commentid>
    <comment_count>8</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-14 22:06:18 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 96718 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96718&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; Missing summary for this patch.

Done. I&apos;ve added summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421343</commentid>
    <comment_count>9</comment_count>
      <attachid>97229</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2011-06-15 09:07:55 -0700</bug_when>
    <thetext>Comment on attachment 97229
Patch

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

Informal r-.

&gt; Source/WebKit2/UIProcess/efl/BackingStoreEfl.cpp:40
&gt; +void BackingStore::paint(cairo_t* context, const IntRect&amp; rect)

Can&apos;t this be shared with other Cairo-using ports?

&gt; Source/WebKit2/UIProcess/efl/BackingStoreEfl.cpp:48
&gt; +void BackingStore::incorporateUpdate(ShareableBitmap* bitmap, const UpdateInfo&amp; updateInfo)

If the platform-independent part of this function is also similar to other Cairo-using ports, consider splitting this method into two, and doing something along the lines of:

   if (!m_backingStoreSurface)
      platformCreateBackingStoreSurface();

   scroll(...); ...

I&apos;d talk with WinCairo and GTK+ devs before attempting this, though.

&gt; Source/WebKit2/UIProcess/efl/BackingStoreEfl.cpp:77
&gt; +void BackingStore::scroll(const IntRect&amp; scrollRect, const IntSize&amp; scrollOffset)

This method could also be shared with GTK+ or other Cairo-using ports: the only part here that depends on Evas is obtaining the dimentions of the view object, so perhaps a little refactoring would make this platform-independent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421852</commentid>
    <comment_count>10</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-16 01:39:53 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 97229 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97229&amp;action=review
&gt; 
&gt; Informal r-.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/BackingStoreEfl.cpp:40
&gt; &gt; +void BackingStore::paint(cairo_t* context, const IntRect&amp; rect)
&gt; 
&gt; Can&apos;t this be shared with other Cairo-using ports?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/BackingStoreEfl.cpp:48
&gt; &gt; +void BackingStore::incorporateUpdate(ShareableBitmap* bitmap, const UpdateInfo&amp; updateInfo)
&gt; 
&gt; If the platform-independent part of this function is also similar to other Cairo-using ports, consider splitting this method into two, and doing something along the lines of:
&gt; 
&gt;    if (!m_backingStoreSurface)
&gt;       platformCreateBackingStoreSurface();
&gt; 
&gt;    scroll(...); ...
&gt; 
&gt; I&apos;d talk with WinCairo and GTK+ devs before attempting this, though.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/BackingStoreEfl.cpp:77
&gt; &gt; +void BackingStore::scroll(const IntRect&amp; scrollRect, const IntSize&amp; scrollOffset)
&gt; 
&gt; This method could also be shared with GTK+ or other Cairo-using ports: the only part here that depends on Evas is obtaining the dimentions of the view object, so perhaps a little refactoring would make this platform-independent?

I think it is not a little refactoring to make platform-independent.
Because, 
We use the cairo_surface directly from evas_object_image, 
but GTK+ uses the WebCore::GtkWidgetBackingStore and cairo operations are delegated to that class.
The functions in the BackingStoreEfl.cpp and BackingStoreGtk seem similar, but they have different implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504543</commentid>
    <comment_count>11</comment_count>
      <attachid>115519</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-11-16 21:40:26 -0800</bug_when>
    <thetext>Created attachment 115519
Patch for BackingStoreCairo.

I&apos;ve renamed gtk/BackingStoreGtk.cpp to cairo/BackingStoreCairo.cpp to use in the EFL port instead of adding BackingStoreEfl.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504653</commentid>
    <comment_count>12</comment_count>
      <attachid>115519</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 01:28:02 -0800</bug_when>
    <thetext>Comment on attachment 115519
Patch for BackingStoreCairo.

Clearing flags on attachment: 115519

Committed r100583: &lt;http://trac.webkit.org/changeset/100583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504654</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 01:28:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96718</attachid>
            <date>2011-06-10 02:36:47 -0700</date>
            <delta_ts>2011-06-14 21:55:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62444-20110610183645.patch</filename>
            <type>text/plain</type>
            <size>7040</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg1MjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjNWFjM2IxYTIxZGQ0YTNm
OGE0ZjNlYzc2YjQwYWQ3NzBmMzIwNDI2Li43NjgwMmRlNTU3N2MxN2EyMmUyMTRiMjc3NjA0YTA5
NTU4NzNjYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYtMTAgIEV1bm1p
IExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIEJhY2tpbmdTdG9yZUVmbCBm
b3IgV2ViS2l0MiBFRkwgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjI0NDQKKworICAgICAgICAqIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0JhY2tpbmdTdG9yZUVmbC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpCYWNraW5nU3RvcmU6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6QmFj
a2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdT
dG9yZTo6c2Nyb2xsKToKKwogMjAxMS0wNi0wOSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQmFja2luZ1N0b3JlLmgKaW5kZXggNWE2NTNmYzc5NmY2NmI5ODg1YzAyMzhmYmM1
NzBiOGIwNDM3MjBhMy4uNzU5OTA2NTRhNDZkMTkzYWE4MjhjMjgzNTFmNGMzMDhkY2Y3ZmYzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaApAQCAtNDEsOCArNDEsMTAg
QEAKICNpbmNsdWRlIDxRdEd1aS9RUGl4bWFwPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAjaW5jbHVkZSA8UmVmUHRyQ2Fp
cm8uaD4KKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxXZWJDb3JlL0d0a1dp
ZGdldEJhY2tpbmdTdG9yZS5oPgogI2VuZGlmCiAKQEAgLTcxLDcgKzczLDcgQEAgcHVibGljOgog
ICAgIHR5cGVkZWYgSERDIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2VsaWYgUExBVEZPUk0o
UVQpCiAgICAgdHlwZWRlZiBRUGFpbnRlciogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7Ci0jZWxp
ZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKICAg
ICB0eXBlZGVmIGNhaXJvX3QqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2VuZGlmCiAKQEAg
LTk4LDYgKzEwMCw5IEBAIHByaXZhdGU6CiAgICAgUVBpeG1hcCBtX3BpeG1hcDsKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBPd25QdHI8V2ViQ29yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBt
X2JhY2tpbmdTdG9yZTsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiBtX2JhY2tpbmdTdG9yZVN1cmZhY2U7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2Vf
dD4gbV9iYWNraW5nU3RvcmVTY3JvbGxTdXJmYWNlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0JhY2tpbmdTdG9yZUVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0JhY2tpbmdTdG9yZUVmbC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmRlNDBkMTU5MmUxZDIxYTkzOTgxMTJmZGU3MDhjZTY4YzgzZjhlMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmFja2luZ1N0b3JlRWZsLmNwcApAQCAt
MCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCYWNraW5nU3Rv
cmUuaCIKKworI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVwZGF0ZUlu
Zm8uaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxFdmFzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxjYWlyby9jYWlyby5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Zv
aWQgQmFja2luZ1N0b3JlOjpwYWludChjYWlyb190KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQoreworICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0LCBDQUlST19PUEVSQVRPUl9T
T1VSQ0UpOworICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjb250ZXh0LCBtX2JhY2tpbmdT
dG9yZVN1cmZhY2UuZ2V0KCksIDAsIDApOworICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LCBy
ZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fp
cm9fZmlsbChjb250ZXh0KTsKK30KKwordm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBk
YXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZv
KQoreworICAgIGlmICghbV9iYWNraW5nU3RvcmVTdXJmYWNlKSB7CisgICAgICAgIC8qIGdldCB2
aWV3T2JqZWN0KGV2YXNfb2JqZWN0X2ltYWdlKSBpbmZvICovCisgICAgICAgIEV2YXNfT2JqZWN0
KiB2aWV3T2JqZWN0ID0gbV93ZWJQYWdlUHJveHktPnZpZXdPYmplY3QoKTsKKyAgICAgICAgRXZh
c19Db29yZCBvdywgb2g7CisgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KHZpZXdP
YmplY3QsICZvdywgJm9oKTsKKworICAgICAgICAvKiBnZXQgY2Fpcm9fc3VyZmFjZSBmcm9tIHZp
ZXdPYmplY3QgKi8KKyAgICAgICAgdm9pZCogYmFja2luZ1N0b3JlUGl4ZWxzID0gZXZhc19vYmpl
Y3RfaW1hZ2VfZGF0YV9nZXQodmlld09iamVjdCwgMSk7CisgICAgICAgIG1fYmFja2luZ1N0b3Jl
U3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhCisg
ICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIqKWJhY2tpbmdTdG9yZVBpeGVscywgQ0FJUk9fRk9S
TUFUX0FSR0IzMiwgb3csIG9oLCBvdyAqIDQpKTsKKyAgICAgICAgZXZhc19vYmplY3RfaW1hZ2Vf
ZGF0YV9zZXQodmlld09iamVjdCwgYmFja2luZ1N0b3JlUGl4ZWxzKTsgLyogZGVjcmVhc2UgcmVm
ZXJlbmNlIGNvdW50ICovCisgICAgfQorCisgICAgc2Nyb2xsKHVwZGF0ZUluZm8uc2Nyb2xsUmVj
dCwgdXBkYXRlSW5mby5zY3JvbGxPZmZzZXQpOworCisgICAgLyogUGFpbnQgYWxsIHVwZGF0ZSBy
ZWN0cyAqLworICAgIEludFBvaW50IHVwZGF0ZVJlY3RMb2NhdGlvbiA9IHVwZGF0ZUluZm8udXBk
YXRlUmVjdEJvdW5kcy5sb2NhdGlvbigpOworICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0KGFk
b3B0UmVmKGNhaXJvX2NyZWF0ZShtX2JhY2tpbmdTdG9yZVN1cmZhY2UuZ2V0KCkpKSk7CisgICAg
R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHVwZGF0ZUluZm8udXBkYXRlUmVjdHMuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gdXBkYXRlSW5mby51cGRhdGVSZWN0c1tpXTsK
KyAgICAgICAgSW50UmVjdCBzcmNSZWN0ID0gdXBkYXRlUmVjdDsKKyAgICAgICAgc3JjUmVjdC5t
b3ZlKC11cGRhdGVSZWN0TG9jYXRpb24ueCgpLCAtdXBkYXRlUmVjdExvY2F0aW9uLnkoKSk7Cisg
ICAgICAgIGJpdG1hcC0+cGFpbnQoZ3JhcGhpY3NDb250ZXh0LCB1cGRhdGVSZWN0LmxvY2F0aW9u
KCksIHNyY1JlY3QpOworICAgIH0KK30KKwordm9pZCBCYWNraW5nU3RvcmU6OnNjcm9sbChjb25z
dCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7Cisg
ICAgaWYgKHNjcm9sbE9mZnNldC5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
Y3JlYXRlIGJ1ZmZlciBzdXJmYWNlIGZvciBzY3JvbGwgKi8KKyAgICBpZiAoIW1fYmFja2luZ1N0
b3JlU2Nyb2xsU3VyZmFjZSkgeworICAgICAgICBFdmFzX0Nvb3JkIG93LCBvaDsKKyAgICAgICAg
ZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9nZXQobV93ZWJQYWdlUHJveHktPnZpZXdPYmplY3QoKSwg
Jm93LCAmb2gpOworICAgICAgICBtX2JhY2tpbmdTdG9yZVNjcm9sbFN1cmZhY2UgPSBhZG9wdFJl
ZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBvdywgb2gp
KTsKKyAgICB9CisKKyAgICAvKiBnZXQgdGFyZ2V0UmVjdCAqLworICAgIEludFJlY3QgdGFyZ2V0
UmVjdChzY3JvbGxSZWN0KTsKKyAgICB0YXJnZXRSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0KTsKKyAg
ICB0YXJnZXRSZWN0LnNoaWZ0TWF4WEVkZ2VUbyh0YXJnZXRSZWN0Lm1heFgoKSAtIHNjcm9sbE9m
ZnNldC53aWR0aCgpKTsKKyAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WUVkZ2VUbyh0YXJnZXRSZWN0
Lm1heFkoKSAtIHNjcm9sbE9mZnNldC5oZWlnaHQoKSk7CisgICAgaWYgKHRhcmdldFJlY3QuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBjb3B5IG1fYmFja2luZ1N0b3JlU3Vy
ZmFjZSB0byBtX2JhY2tpbmdTdG9yZVNjcm9sbFN1cmZhY2UgKi8KKyAgICBSZWZQdHI8Y2Fpcm9f
dD4gc2Nyb2xsQ29udGV4dCA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShtX2JhY2tpbmdTdG9yZVNj
cm9sbFN1cmZhY2UuZ2V0KCkpKTsKKyAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2Uoc2Nyb2xs
Q29udGV4dC5nZXQoKSwgbV9iYWNraW5nU3RvcmVTdXJmYWNlLmdldCgpLCBzY3JvbGxPZmZzZXQu
d2lkdGgoKSwgc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKKyAgICBjYWlyb19yZWN0YW5nbGUoc2Ny
b2xsQ29udGV4dC5nZXQoKSwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRS
ZWN0LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX2ZpbGwoc2Nyb2xs
Q29udGV4dC5nZXQoKSk7CisKKyAgICAvKiBjb3B5IG1fYmFja2luZ1N0b3JlU2Nyb2xsU3VyZmFj
ZSB0byBtX2JhY2tpbmdTdG9yZVN1cmZhY2UgKi8KKyAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4
dCA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShtX2JhY2tpbmdTdG9yZVN1cmZhY2UuZ2V0KCkpKTsK
KyAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY29udGV4dC5nZXQoKSwgbV9iYWNraW5nU3Rv
cmVTY3JvbGxTdXJmYWNlLmdldCgpLCAwLCAwKTsKKyAgICBjYWlyb19yZWN0YW5nbGUoY29udGV4
dC5nZXQoKSwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRo
KCksIHRhcmdldFJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX2ZpbGwoY29udGV4dC5nZXQoKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97229</attachid>
            <date>2011-06-14 21:56:07 -0700</date>
            <delta_ts>2011-11-16 21:40:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62444-20110615135558.patch</filename>
            <type>text/plain</type>
            <size>7088</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg3OTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlZjczZDBlZjVjZTk4ZmMx
YWU4ODQ2MTA1YjY2ZWZjNTk5MWVhMjUyLi5mMjA0ZjRjYjMyYzQ5MTlhN2Q5NDM4NTMxNDE0ODZj
YTJmOWRlODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMTQgIEV1bm1p
IExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIEJhY2tpbmdTdG9yZUVmbCBm
b3IgV2ViS2l0MiBFRkwgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjI0NDQKKworICAgICAgICBBZGQgQmFja2luZ1N0b3JlRWZsIHdoaWNoIGRy
YXcgY29udGVudHMgdG8gdGhlIEV2YXNfT2JqZWN0IHVzaW5nIGNhaXJvLgorCisgICAgICAgICog
VUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvQmFja2lu
Z1N0b3JlRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6cGFp
bnQpOgorICAgICAgICAoV2ViS2l0OjpCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjpzY3JvbGwpOgorCiAyMDExLTA2LTEzICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaAppbmRl
eCA1YTY1M2ZjNzk2ZjY2Yjk4ODVjMDIzOGZiYzU3MGI4YjA0MzcyMGEzLi43MWM2NjRhYTYyOWIy
NDMwMjEyZTRkZjc2NDc2MDBiNmQ0MDliMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Jh
Y2tpbmdTdG9yZS5oCkBAIC00MSw4ICs0MSwxMSBAQAogI2luY2x1ZGUgPFF0R3VpL1FQaXhtYXA+
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSA8
UmVmUHRyQ2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdl
YkNvcmUvR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmg+CiAjZW5kaWYKIApAQCAtNzEsNyArNzQsNyBA
QCBwdWJsaWM6CiAgICAgdHlwZWRlZiBIREMgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CiAjZWxp
ZiBQTEFURk9STShRVCkKICAgICB0eXBlZGVmIFFQYWludGVyKiBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFVTRShDQUlSTykKICAgICB0eXBlZGVm
IGNhaXJvX3QqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2VuZGlmCiAKQEAgLTk4LDYgKzEw
MSw5IEBAIHByaXZhdGU6CiAgICAgUVBpeG1hcCBtX3BpeG1hcDsKICNlbGlmIFBMQVRGT1JNKEdU
SykKICAgICBPd25QdHI8V2ViQ29yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdT
dG9yZTsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBt
X2JhY2tpbmdTdG9yZVN1cmZhY2U7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9iYWNr
aW5nU3RvcmVTY3JvbGxTdXJmYWNlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0JhY2tpbmdTdG9yZUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL0JhY2tpbmdTdG9yZUVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRlNDBkMTU5
MmUxZDIxYTkzOTgxMTJmZGU3MDhjZTY4YzgzZjhlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmFja2luZ1N0b3JlRWZsLmNwcApAQCAtMCwwICsxLDEx
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKKwor
I2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxFdmFzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgQmFja2lu
Z1N0b3JlOjpwYWludChjYWlyb190KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQorewor
ICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0LCBDQUlST19PUEVSQVRPUl9TT1VSQ0UpOwor
ICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjb250ZXh0LCBtX2JhY2tpbmdTdG9yZVN1cmZh
Y2UuZ2V0KCksIDAsIDApOworICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LCByZWN0LngoKSwg
cmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fpcm9fZmlsbChj
b250ZXh0KTsKK30KKwordm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRlKFNoYXJl
YWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQoreworICAg
IGlmICghbV9iYWNraW5nU3RvcmVTdXJmYWNlKSB7CisgICAgICAgIC8qIGdldCB2aWV3T2JqZWN0
KGV2YXNfb2JqZWN0X2ltYWdlKSBpbmZvICovCisgICAgICAgIEV2YXNfT2JqZWN0KiB2aWV3T2Jq
ZWN0ID0gbV93ZWJQYWdlUHJveHktPnZpZXdPYmplY3QoKTsKKyAgICAgICAgRXZhc19Db29yZCBv
dywgb2g7CisgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KHZpZXdPYmplY3QsICZv
dywgJm9oKTsKKworICAgICAgICAvKiBnZXQgY2Fpcm9fc3VyZmFjZSBmcm9tIHZpZXdPYmplY3Qg
Ki8KKyAgICAgICAgdm9pZCogYmFja2luZ1N0b3JlUGl4ZWxzID0gZXZhc19vYmplY3RfaW1hZ2Vf
ZGF0YV9nZXQodmlld09iamVjdCwgMSk7CisgICAgICAgIG1fYmFja2luZ1N0b3JlU3VyZmFjZSA9
IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhCisgICAgICAgICAg
ICAoKHVuc2lnbmVkIGNoYXIqKWJhY2tpbmdTdG9yZVBpeGVscywgQ0FJUk9fRk9STUFUX0FSR0Iz
Miwgb3csIG9oLCBvdyAqIDQpKTsKKyAgICAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9zZXQo
dmlld09iamVjdCwgYmFja2luZ1N0b3JlUGl4ZWxzKTsgLyogZGVjcmVhc2UgcmVmZXJlbmNlIGNv
dW50ICovCisgICAgfQorCisgICAgc2Nyb2xsKHVwZGF0ZUluZm8uc2Nyb2xsUmVjdCwgdXBkYXRl
SW5mby5zY3JvbGxPZmZzZXQpOworCisgICAgLyogUGFpbnQgYWxsIHVwZGF0ZSByZWN0cyAqLwor
ICAgIEludFBvaW50IHVwZGF0ZVJlY3RMb2NhdGlvbiA9IHVwZGF0ZUluZm8udXBkYXRlUmVjdEJv
dW5kcy5sb2NhdGlvbigpOworICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0KGFkb3B0UmVmKGNh
aXJvX2NyZWF0ZShtX2JhY2tpbmdTdG9yZVN1cmZhY2UuZ2V0KCkpKSk7CisgICAgR3JhcGhpY3ND
b250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0LmdldCgpKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHVwZGF0ZUluZm8udXBkYXRlUmVjdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
SW50UmVjdCB1cGRhdGVSZWN0ID0gdXBkYXRlSW5mby51cGRhdGVSZWN0c1tpXTsKKyAgICAgICAg
SW50UmVjdCBzcmNSZWN0ID0gdXBkYXRlUmVjdDsKKyAgICAgICAgc3JjUmVjdC5tb3ZlKC11cGRh
dGVSZWN0TG9jYXRpb24ueCgpLCAtdXBkYXRlUmVjdExvY2F0aW9uLnkoKSk7CisgICAgICAgIGJp
dG1hcC0+cGFpbnQoZ3JhcGhpY3NDb250ZXh0LCB1cGRhdGVSZWN0LmxvY2F0aW9uKCksIHNyY1Jl
Y3QpOworICAgIH0KK30KKwordm9pZCBCYWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0
JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7CisgICAgaWYgKHNj
cm9sbE9mZnNldC5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyogY3JlYXRlIGJ1
ZmZlciBzdXJmYWNlIGZvciBzY3JvbGwgKi8KKyAgICBpZiAoIW1fYmFja2luZ1N0b3JlU2Nyb2xs
U3VyZmFjZSkgeworICAgICAgICBFdmFzX0Nvb3JkIG93LCBvaDsKKyAgICAgICAgZXZhc19vYmpl
Y3RfaW1hZ2Vfc2l6ZV9nZXQobV93ZWJQYWdlUHJveHktPnZpZXdPYmplY3QoKSwgJm93LCAmb2gp
OworICAgICAgICBtX2JhY2tpbmdTdG9yZVNjcm9sbFN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19p
bWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBvdywgb2gpKTsKKyAgICB9
CisKKyAgICAvKiBnZXQgdGFyZ2V0UmVjdCAqLworICAgIEludFJlY3QgdGFyZ2V0UmVjdChzY3Jv
bGxSZWN0KTsKKyAgICB0YXJnZXRSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0KTsKKyAgICB0YXJnZXRS
ZWN0LnNoaWZ0TWF4WEVkZ2VUbyh0YXJnZXRSZWN0Lm1heFgoKSAtIHNjcm9sbE9mZnNldC53aWR0
aCgpKTsKKyAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WUVkZ2VUbyh0YXJnZXRSZWN0Lm1heFkoKSAt
IHNjcm9sbE9mZnNldC5oZWlnaHQoKSk7CisgICAgaWYgKHRhcmdldFJlY3QuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvKiBjb3B5IG1fYmFja2luZ1N0b3JlU3VyZmFjZSB0byBt
X2JhY2tpbmdTdG9yZVNjcm9sbFN1cmZhY2UgKi8KKyAgICBSZWZQdHI8Y2Fpcm9fdD4gc2Nyb2xs
Q29udGV4dCA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0ZShtX2JhY2tpbmdTdG9yZVNjcm9sbFN1cmZh
Y2UuZ2V0KCkpKTsKKyAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2Uoc2Nyb2xsQ29udGV4dC5n
ZXQoKSwgbV9iYWNraW5nU3RvcmVTdXJmYWNlLmdldCgpLCBzY3JvbGxPZmZzZXQud2lkdGgoKSwg
c2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKKyAgICBjYWlyb19yZWN0YW5nbGUoc2Nyb2xsQ29udGV4
dC5nZXQoKSwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRo
KCksIHRhcmdldFJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX2ZpbGwoc2Nyb2xsQ29udGV4dC5n
ZXQoKSk7CisKKyAgICAvKiBjb3B5IG1fYmFja2luZ1N0b3JlU2Nyb2xsU3VyZmFjZSB0byBtX2Jh
Y2tpbmdTdG9yZVN1cmZhY2UgKi8KKyAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0
UmVmKGNhaXJvX2NyZWF0ZShtX2JhY2tpbmdTdG9yZVN1cmZhY2UuZ2V0KCkpKTsKKyAgICBjYWly
b19zZXRfc291cmNlX3N1cmZhY2UoY29udGV4dC5nZXQoKSwgbV9iYWNraW5nU3RvcmVTY3JvbGxT
dXJmYWNlLmdldCgpLCAwLCAwKTsKKyAgICBjYWlyb19yZWN0YW5nbGUoY29udGV4dC5nZXQoKSwg
dGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdl
dFJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX2ZpbGwoY29udGV4dC5nZXQoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="91107"
          type_id="1"
          status="-"
          setter="leandro"
    />
    <flag name="commit-queue"
          id="91108"
          type_id="3"
          status="-"
          setter="leandro"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115519</attachid>
            <date>2011-11-16 21:40:26 -0800</date>
            <delta_ts>2011-11-17 01:28:01 -0800</delta_ts>
            <desc>Patch for BackingStoreCairo.</desc>
            <filename>BackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>9385</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwMjlmZmM2Li42MTE1ZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMTEtMTYgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSzJdIE1vdmUg
Z3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAgdG8gY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwIHRv
IHNoYXJlIHdpdGggRUZMIHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MjQ0NAorCisgICAgICAgIFJlbmFtZSBndGsvQmFja2luZ1N0b3JlR3Rr
LmNwcCB0byBjYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAgdG8gc2hhcmUgd2l0aCBFRkwgcG9y
dC4KKyAgICAgICAgVGhlIGd0ay9CYWNraW5nU3RvcmVHdGsuY3BwIG9ubHkgaGFzIGNhaXJvIGRl
cGVuZGVuY3ksIHNvIGl0IGNhbiBiZSBzaGFyZWQgd2l0aCBvdGhlciBwb3J0CisgICAgICAgIHRo
YXQgdXNlcyBjYWlyby4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9CYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvY2Fpcm8vQmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9CYWNraW5nU3RvcmVHdGsuY3BwLgorICAgICAgICAoV2ViS2l0OjpCYWNraW5nU3RvcmU6OnBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6c2Nyb2xsKToKKwogMjAxMS0xMS0xNiAg
Q2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eu
b3JnPgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFmdGVyIFdUUiBBWCBzdXBwb3J0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmFtCmluZGV4IGEwZTRhZjMuLjg4NWMzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CkBAIC01NDUsNyArNTQ1LDcgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9W
RVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9TT1UKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0JhY2tp
bmdTdG9yZUd0ay5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9jYWlyby9CYWNraW5n
U3RvcmVDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNr
ZXJHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlH
dGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaAppbmRleCAwODQw
OWIxLi41NGVmOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2lu
Z1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5oCkBA
IC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8UXRHdWkvUVBpeG1hcD4KICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oR1RLKQorI2lmIFVTRShDQUlSTykKICNpbmNsdWRlIDxSZWZQdHJDYWlyby5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvV2lkZ2V0QmFja2luZ1N0b3JlLmg+CiAjZW5kaWYKQEAgLTcyLDcg
KzcyLDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgSERDIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
OwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgdHlwZWRlZiBRUGFpbnRlciogUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQ7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBVU0UoQ0FJUk8pCiAgICAg
dHlwZWRlZiBjYWlyb190KiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbmRpZgogCkBAIC05
OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEhCSVRNQVA+IG1fYml0bWFwOwogI2Vs
aWYgUExBVEZPUk0oUVQpCiAgICAgUVBpeG1hcCBtX3BpeG1hcDsKLSNlbGlmIFBMQVRGT1JNKEdU
SykKKyNlbGlmIFVTRShDQUlSTykKICAgICBPd25QdHI8V2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0
b3JlPiBtX2JhY2tpbmdTdG9yZTsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjUxNjA4YTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsNzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIKKworI2luY2x1ZGUgIlNo
YXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBCYWNraW5nU3RvcmU6OnBhaW50KGNhaXJvX3QqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKKwor
ICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0LCBDQUlST19PUEVSQVRPUl9TT1VSQ0UpOwor
ICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjb250ZXh0LCBtX2JhY2tpbmdTdG9yZS0+Y2Fp
cm9TdXJmYWNlKCksIDAsIDApOworICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LCByZWN0Lngo
KSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fpcm9fZmls
bChjb250ZXh0KTsKK30KKwordm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRlKFNo
YXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQorewor
ICAgIGlmICghbV9iYWNraW5nU3RvcmUpCisgICAgICAgIG1fYmFja2luZ1N0b3JlID0gV2lkZ2V0
QmFja2luZ1N0b3JlOjpjcmVhdGUobV93ZWJQYWdlUHJveHktPnZpZXdXaWRnZXQoKSwgc2l6ZSgp
KTsKKworICAgIHNjcm9sbCh1cGRhdGVJbmZvLnNjcm9sbFJlY3QsIHVwZGF0ZUluZm8uc2Nyb2xs
T2Zmc2V0KTsKKworICAgIC8vIFBhaW50IGFsbCB1cGRhdGUgcmVjdHMuCisgICAgSW50UG9pbnQg
dXBkYXRlUmVjdExvY2F0aW9uID0gdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRzLmxvY2F0aW9u
KCk7CisgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQoYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKG1f
YmFja2luZ1N0b3JlLT5jYWlyb1N1cmZhY2UoKSkpKTsKKyAgICBHcmFwaGljc0NvbnRleHQgZ3Jh
cGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dXBkYXRlSW5mby51cGRhdGVSZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICBJbnRSZWN0IHVw
ZGF0ZVJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzW2ldOworICAgICAgICBJbnRSZWN0IHNy
Y1JlY3QgPSB1cGRhdGVSZWN0OworICAgICAgICBzcmNSZWN0Lm1vdmUoLXVwZGF0ZVJlY3RMb2Nh
dGlvbi54KCksIC11cGRhdGVSZWN0TG9jYXRpb24ueSgpKTsKKyAgICAgICAgYml0bWFwLT5wYWlu
dChncmFwaGljc0NvbnRleHQsIHVwZGF0ZVJlY3QubG9jYXRpb24oKSwgc3JjUmVjdCk7CisgICAg
fQorfQorCit2b2lkIEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJl
Y3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3sKKyAgICBpZiAoc2Nyb2xsT2Zmc2V0
LmlzWmVybygpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9iYWNraW5nU3RvcmUp
OworICAgIG1fYmFja2luZ1N0b3JlLT5zY3JvbGwoc2Nyb2xsUmVjdCwgc2Nyb2xsT2Zmc2V0KTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGYyMzM5ODYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNr
aW5nU3RvcmVHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgotCi0jaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFw
LmgiCi0jaW5jbHVkZSAiVXBkYXRlSW5mby5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8Y2Fpcm8vY2Fp
cm8uaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBCYWNraW5nU3RvcmU6OnBhaW50KGNhaXJvX3Qq
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCi17Ci0gICAgQVNTRVJUKG1fYmFja2luZ1N0
b3JlKTsKLQotICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0LCBDQUlST19PUEVSQVRPUl9T
T1VSQ0UpOwotICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjb250ZXh0LCBtX2JhY2tpbmdT
dG9yZS0+Y2Fpcm9TdXJmYWNlKCksIDAsIDApOwotICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0
LCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAg
Y2Fpcm9fZmlsbChjb250ZXh0KTsKLX0KLQotdm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRl
VXBkYXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJ
bmZvKQotewotICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIG1fYmFja2luZ1N0b3Jl
ID0gV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUobV93ZWJQYWdlUHJveHktPnZpZXdXaWRnZXQo
KSwgc2l6ZSgpKTsKLQotICAgIHNjcm9sbCh1cGRhdGVJbmZvLnNjcm9sbFJlY3QsIHVwZGF0ZUlu
Zm8uc2Nyb2xsT2Zmc2V0KTsKLQotICAgIC8vIFBhaW50IGFsbCB1cGRhdGUgcmVjdHMuCi0gICAg
SW50UG9pbnQgdXBkYXRlUmVjdExvY2F0aW9uID0gdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRz
LmxvY2F0aW9uKCk7Ci0gICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQoYWRvcHRSZWYoY2Fpcm9f
Y3JlYXRlKG1fYmFja2luZ1N0b3JlLT5jYWlyb1N1cmZhY2UoKSkpKTsKLSAgICBHcmFwaGljc0Nv
bnRleHQgZ3JhcGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0KCkpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdXBkYXRlSW5mby51cGRhdGVSZWN0cy5zaXplKCk7ICsraSkgewotICAgICAgICBJ
bnRSZWN0IHVwZGF0ZVJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzW2ldOwotICAgICAgICBJ
bnRSZWN0IHNyY1JlY3QgPSB1cGRhdGVSZWN0OwotICAgICAgICBzcmNSZWN0Lm1vdmUoLXVwZGF0
ZVJlY3RMb2NhdGlvbi54KCksIC11cGRhdGVSZWN0TG9jYXRpb24ueSgpKTsKLSAgICAgICAgYml0
bWFwLT5wYWludChncmFwaGljc0NvbnRleHQsIHVwZGF0ZVJlY3QubG9jYXRpb24oKSwgc3JjUmVj
dCk7Ci0gICAgfQotfQotCi12b2lkIEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3Qm
IHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKLXsKLSAgICBpZiAoc2Ny
b2xsT2Zmc2V0LmlzWmVybygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQobV9iYWNr
aW5nU3RvcmUpOwotICAgIG1fYmFja2luZ1N0b3JlLT5zY3JvbGwoc2Nyb2xsUmVjdCwgc2Nyb2xs
T2Zmc2V0KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>